1+ namespace ObjectFiller . Test
2+ {
3+ using System ;
4+ using System . Linq ;
5+
6+ using Microsoft . VisualStudio . TestTools . UnitTesting ;
7+
8+ using Tynamix . ObjectFiller ;
9+
10+ public class DateRangeTestClass
11+ {
12+ public DateTime Date { get ; set ; }
13+ }
14+
15+ [ TestClass ]
16+ public class DateTimeRangeTest
17+ {
18+ [ TestMethod ]
19+ public void WhenGettingDatesBetweenNowAnd31DaysAgo ( )
20+ {
21+ Filler < DateRangeTestClass > filler = new Filler < DateRangeTestClass > ( ) ;
22+
23+ filler . Setup ( ) . OnType < DateTime > ( ) . Use (
24+ new DateTimeRange ( DateTime . Now . AddDays ( - 31 ) ) ) ;
25+
26+ var d = filler . Create ( 1000 ) ;
27+
28+ Assert . IsTrue ( d . All ( x => x . Date < DateTime . Now && x . Date > DateTime . Now . AddDays ( - 31 ) ) ) ;
29+ }
30+
31+ [ TestMethod ]
32+ public void WhenStartDateIsBiggerThenEndDateTheDatesShouldBeSwitched ( )
33+ {
34+ Filler < DateRangeTestClass > filler = new Filler < DateRangeTestClass > ( ) ;
35+
36+ filler . Setup ( ) . OnType < DateTime > ( ) . Use (
37+ new DateTimeRange ( DateTime . Now , DateTime . Now . AddDays ( - 31 ) ) ) ;
38+
39+ var d = filler . Create ( 1000 ) ;
40+
41+ Assert . IsTrue ( d . All ( x => x . Date < DateTime . Now && x . Date > DateTime . Now . AddDays ( - 31 ) ) ) ;
42+ }
43+
44+ [ TestMethod ]
45+ public void WhenStartDateAndEndDateIsSetItShouldFindOnlyDatesInBetweenThisTwoDates ( )
46+ {
47+ var startDate = new DateTime ( 2000 , 11 , 10 ) ;
48+ var endDate = new DateTime ( 2006 , 1 , 30 ) ;
49+
50+ Filler < DateRangeTestClass > filler = new Filler < DateRangeTestClass > ( ) ;
51+
52+ filler . Setup ( ) . OnType < DateTime > ( ) . Use ( new DateTimeRange ( startDate , endDate ) ) ;
53+
54+ var d = filler . Create ( 1000 ) ;
55+ d . ToList ( ) . ForEach ( x => Console . WriteLine ( x . Date ) ) ;
56+ Assert . IsTrue ( d . All ( x => x . Date < endDate && x . Date > startDate ) ) ;
57+ }
58+ }
59+ }
0 commit comments