@@ -20,7 +20,7 @@ class DateValidateTests: XCTestCase {
2020 func testDateValidation( ) {
2121
2222 let targetDate = " 2018-05-29T12:00+09:00 " . date ( format: . iso8601Auto) !. absoluteDate
23- let afterTargetDate = " 2018-05-29T12:00 +09:00 " . date ( format: . iso8601Auto) !. absoluteDate
23+ let afterTargetDate = " 2018-05-29T12:01 +09:00 " . date ( format: . iso8601Auto) !. absoluteDate
2424 let beforeTargetDate = " 2018-05-29T11:59+09:00 " . date ( format: . iso8601Auto) !. absoluteDate
2525 let sameTargetDate = " 2018-05-29T12:00+09:00 " . date ( format: . iso8601Auto) !. absoluteDate
2626
@@ -49,6 +49,53 @@ class DateValidateTests: XCTestCase {
4949 expect ( resultDate) . toEventually ( equal ( targetDate) )
5050 }
5151
52+ func testDateValidationShouldBeforeThenWithSameTargetDate( ) {
53+ // given
54+ let targetDate = " 2018-05-29T12:00+09:00 " . date ( format: . iso8601Auto) !. absoluteDate
55+ let sameTargetDate = " 2018-05-29T12:00+09:00 " . date ( format: . iso8601Auto) !. absoluteDate
56+ var resultDate : Date ?
57+ var resultError : RxValidatorResult = . valid
58+ let underTest = DateValidationTarget ( targetDate)
59+
60+ // when
61+ underTest
62+ . validate ( . shouldBeforeThen( date: sameTargetDate) )
63+ . asObservable ( )
64+ . subscribe ( onNext: { ( date) in
65+ resultDate = date
66+ } , onError: { ( error) in
67+ resultError = RxValidatorResult . determine ( error: error)
68+ } ) . disposed ( by: disposeBag)
69+
70+ // then
71+ // it should not before date
72+ expect ( resultError) . toEventually ( equal ( RxValidatorResult . notBeforeDate) )
73+ expect ( resultDate) . toEventually ( beNil ( ) )
74+ }
75+
76+ func testDateValidationShouldAfterThenWithSameTargetDate( ) {
77+ // given
78+ let targetDate = " 2018-05-29T12:00+09:00 " . date ( format: . iso8601Auto) !. absoluteDate
79+ let sameTargetDate = " 2018-05-29T12:00+09:00 " . date ( format: . iso8601Auto) !. absoluteDate
80+ var resultDate : Date ?
81+ var resultError : RxValidatorResult = . valid
82+ let underTest = DateValidationTarget ( targetDate)
83+
84+ // when
85+ underTest
86+ . validate ( . shouldAfterThen( date: sameTargetDate) )
87+ . asObservable ( )
88+ . subscribe ( onNext: { ( date) in
89+ resultDate = date
90+ } , onError: { ( error) in
91+ resultError = RxValidatorResult . determine ( error: error)
92+ } ) . disposed ( by: disposeBag)
93+
94+ // then
95+ // it should not after date
96+ expect ( resultError) . toEventually ( equal ( RxValidatorResult . notAfterDate) )
97+ expect ( resultDate) . toEventually ( beNil ( ) )
98+ }
5299
53100 func testDateValidationWithAllday( ) {
54101 let targetDate = " 2018-05-29T12:00:00+09:00 " . date ( format: . iso8601Auto) !. absoluteDate
0 commit comments