1+ namespace MADE . Data . Validation . Tests . Tests
2+ {
3+ using System ;
4+ using System . Diagnostics . CodeAnalysis ;
5+ using System . Globalization ;
6+ using MADE . Data . Validation . Extensions ;
7+ using NUnit . Framework ;
8+ using Shouldly ;
9+
10+ [ ExcludeFromCodeCoverage ]
11+ [ TestFixture ]
12+ public class DateTimeExtensionsTests
13+ {
14+ public class WhenDeterminingWhetherDateIsInRange
15+ {
16+ [ TestCase ( "07/01/2021" , "01/01/2021" , "12/31/2021" ) ]
17+ [ TestCase ( "07/01/2021 12:00:00" , "07/01/2021 09:00:00" , "07/01/2021 15:00:00" ) ]
18+ public void ShouldBeTrueIfInRange ( string dateVal , string fromVal , string toVal )
19+ {
20+ // Arrange
21+ var date = DateTime . Parse ( dateVal , new CultureInfo ( "en-US" ) ) ;
22+ var from = DateTime . Parse ( fromVal , new CultureInfo ( "en-US" ) ) ;
23+ var to = DateTime . Parse ( toVal , new CultureInfo ( "en-US" ) ) ;
24+
25+ // Act
26+ bool isInRange = date . IsInRange ( from , to ) ;
27+
28+ // Assert
29+ isInRange . ShouldBeTrue ( ) ;
30+ }
31+
32+ [ TestCase ( "07/01/2021" , "01/01/2020" , "12/31/2020" ) ]
33+ [ TestCase ( "07/01/2021 00:00:00" , "07/01/2021 09:00:00" , "07/01/2021 15:00:00" ) ]
34+ public void ShouldBeFalseIfNotInRange ( string dateVal , string fromVal , string toVal )
35+ {
36+ // Arrange
37+ var date = DateTime . Parse ( dateVal , new CultureInfo ( "en-US" ) ) ;
38+ var from = DateTime . Parse ( fromVal , new CultureInfo ( "en-US" ) ) ;
39+ var to = DateTime . Parse ( toVal , new CultureInfo ( "en-US" ) ) ;
40+
41+ // Act
42+ bool isInRange = date . IsInRange ( from , to ) ;
43+
44+ // Assert
45+ isInRange . ShouldBeFalse ( ) ;
46+ }
47+ }
48+
49+ public class WhenDeterminingWeekdays
50+ {
51+ [ TestCase ( "05/10/2021" ) ]
52+ [ TestCase ( "05/11/2021" ) ]
53+ [ TestCase ( "05/12/2021" ) ]
54+ [ TestCase ( "05/13/2021" ) ]
55+ [ TestCase ( "05/14/2021" ) ]
56+ public void ShouldBeTrueIfWeekday ( string dateVal )
57+ {
58+ // Arrange
59+ var date = DateTime . Parse ( dateVal , new CultureInfo ( "en-US" ) ) ;
60+
61+ // Act
62+ bool isWeekday = date . IsWeekday ( ) ;
63+
64+ // Assert
65+ isWeekday . ShouldBeTrue ( ) ;
66+ }
67+
68+ [ TestCase ( "05/15/2021" ) ]
69+ [ TestCase ( "05/16/2021" ) ]
70+ public void ShouldBeFalseIfNotWeekday ( string dateVal )
71+ {
72+ // Arrange
73+ var date = DateTime . Parse ( dateVal , new CultureInfo ( "en-US" ) ) ;
74+
75+ // Act
76+ bool isWeekday = date . IsWeekday ( ) ;
77+
78+ // Assert
79+ isWeekday . ShouldBeFalse ( ) ;
80+ }
81+ }
82+
83+ public class WhenDeterminingWeekends
84+ {
85+ [ TestCase ( "05/15/2021" ) ]
86+ [ TestCase ( "05/16/2021" ) ]
87+ public void ShouldBeTrueIfWeekend ( string dateVal )
88+ {
89+ // Arrange
90+ var date = DateTime . Parse ( dateVal , new CultureInfo ( "en-US" ) ) ;
91+
92+ // Act
93+ bool isWeekend = date . IsWeekend ( ) ;
94+
95+ // Assert
96+ isWeekend . ShouldBeTrue ( ) ;
97+ }
98+
99+ [ TestCase ( "05/10/2021" ) ]
100+ [ TestCase ( "05/11/2021" ) ]
101+ [ TestCase ( "05/12/2021" ) ]
102+ [ TestCase ( "05/13/2021" ) ]
103+ [ TestCase ( "05/14/2021" ) ]
104+ public void ShouldBeFalseIfNotWeekend ( string dateVal )
105+ {
106+ // Arrange
107+ var date = DateTime . Parse ( dateVal , new CultureInfo ( "en-US" ) ) ;
108+
109+ // Act
110+ bool isWeekend = date . IsWeekend ( ) ;
111+
112+ // Assert
113+ isWeekend . ShouldBeFalse ( ) ;
114+ }
115+ }
116+ }
117+ }
0 commit comments