Skip to content

Commit 3ea4719

Browse files
committed
test: add unit tests for the nil validation rule
1 parent 1aa237a commit 3ea4719

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
//
2+
// Validator
3+
// Copyright © 2025 Space Code. All rights reserved.
4+
//
5+
6+
@testable import ValidatorCore
7+
import XCTest
8+
9+
// MARK: - NilValidationRuleTests
10+
11+
final class NilValidationRuleTests: XCTestCase {
12+
// MARK: - Properties
13+
14+
private var sut: NilValidationRule<String>!
15+
16+
// MARK: - Setup
17+
18+
override func setUp() {
19+
super.setUp()
20+
sut = NilValidationRule<String>(error: String.error)
21+
}
22+
23+
override func tearDown() {
24+
sut = nil
25+
super.tearDown()
26+
}
27+
28+
// MARK: - Validation Tests
29+
30+
func testValidateWithNilInput_ReturnsTrue() {
31+
// Given
32+
let input: String? = nil
33+
34+
// When
35+
let result = sut.validate(input: input)
36+
37+
// Then
38+
XCTAssertTrue(result)
39+
}
40+
41+
func testValidateWithNonNilInput_ReturnsFalse() {
42+
// Given
43+
let input: String? = "Hello"
44+
45+
// When
46+
let result = sut.validate(input: input)
47+
48+
// Then
49+
XCTAssertFalse(result)
50+
}
51+
52+
func testErrorProperty_ReturnsProvidedError() {
53+
// Then
54+
XCTAssertEqual(sut.error as? String, String.error)
55+
}
56+
}
57+
58+
private extension String {
59+
static let error = "Value must be nil"
60+
}

0 commit comments

Comments
 (0)