示例#1
0
        /// <summary>
        /// Create a random date and time in the given range
        /// </summary>
        /// <returns>Random value maximum of two years ago</returns>
        public static DateTime RandDatetime(DateTime minDate, DateTime maxDate)
        {
            var fixture = new Fixture();
            var dateTimeSequenceGenerator = new RandomDateTimeSequenceGenerator(minDate, maxDate);

            fixture.Customizations.Add(dateTimeSequenceGenerator);
            return(fixture.Create <DateTime>());
        }
示例#2
0
        /// <summary>
        /// Create a random date and time in the future
        /// </summary>
        /// <returns>Random value max of two years in the future</returns>
        public static DateTime RandFutureDateTime()
        {
            var fixture = new Fixture();
            var dateTimeSequenceGenerator = new RandomDateTimeSequenceGenerator(DateTime.Now.AddDays(1), DateTime.Now.AddYears(2));

            fixture.Customizations.Add(dateTimeSequenceGenerator);
            return(fixture.Create <DateTime>());
        }
示例#3
0
        public void CreateWithNullContextThrowsArgumentNullException()
        {
            // Arrange
            var sut = new RandomDateTimeSequenceGenerator();

            // Act & assert
            Assert.Throws <ArgumentNullException>(
                () => sut.Create(typeof(DateTime), null));
        }
示例#4
0
        public static DateTime GenerateDateInPast(IFixture fixture)
        {
            var prevDays = new RandomDateTimeSequenceGenerator(DateTime.Today.AddYears(-30), DateTime.Today.AddYears(-5));

            using (new CustomizationClosure(fixture, prevDays))
            {
                return(fixture.Create <DateTime>());
            }
        }
示例#5
0
        public void SutIsSpecimenBuilder()
        {
            // Arrange
            // Act
            var sut = new RandomDateTimeSequenceGenerator();

            // Assert
            Assert.IsAssignableFrom <ISpecimenBuilder>(sut);
        }
示例#6
0
        public static DateTime GenerateDateInFuture(IFixture fixture)
        {
            var nextDays = new RandomDateTimeSequenceGenerator(DateTime.Today.AddYears(5), DateTime.Today.AddYears(30));

            using (new CustomizationClosure(fixture, nextDays))
            {
                return(fixture.Create <DateTime>());
            }
        }
示例#7
0
        public void SutIsSpecimenBuilder()
        {
            // Fixture setup
            // Exercise system
            var sut = new RandomDateTimeSequenceGenerator();

            // Verify outcome
            Assert.IsAssignableFrom <ISpecimenBuilder>(sut);
            // Teardown
        }
示例#8
0
        public void CreateWithNullContextThrowsArgumentNullException()
        {
            // Fixture setup
            var sut = new RandomDateTimeSequenceGenerator();

            // Exercise system and verify outcome
            Assert.Throws <ArgumentNullException>(
                () => sut.Create(typeof(DateTime), null));
            // Teardown
        }
示例#9
0
        public void CreateWithDateTimeRequestReturnsDateTimeValue()
        {
            // Arrange
            var sut = new RandomDateTimeSequenceGenerator();
            // Act
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = sut.Create(typeof(DateTime), dummyContainer);

            // Assert
            Assert.IsAssignableFrom <DateTime>(result);
        }
示例#10
0
        public void CreateWithNonDateTimeTypeRequestReturnsNoSpecimen(Type request)
        {
            // Arrange
            var sut = new RandomDateTimeSequenceGenerator();
            // Act
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = sut.Create(request, dummyContainer);

            // Assert
            Assert.Equal(new NoSpecimen(), result);
        }
示例#11
0
        public void CreateWithNullRequestReturnsNoSpecimen()
        {
            // Fixture setup
            var sut = new RandomDateTimeSequenceGenerator();
            // Exercise system
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = sut.Create(null, dummyContainer);

            // Verify outcome
            Assert.Equal(new NoSpecimen(), result);
            // Teardown
        }
示例#12
0
        public void CreateWithDateTimeRequestReturnsDateTimeValue()
        {
            // Fixture setup
            var sut = new RandomDateTimeSequenceGenerator();
            // Exercise system
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = sut.Create(typeof(DateTime), dummyContainer);

            // Verify outcome
            Assert.IsAssignableFrom <DateTime>(result);
            // Teardown
        }
示例#13
0
        public void CreateWithDateTimeRequestAndDateRangeReturnsDateWithinThatRange()
        {
            // Arrange
            var minDate = DateTime.Now;
            var maxDate = minDate.AddDays(3);
            var sut     = new RandomDateTimeSequenceGenerator(minDate, maxDate);
            // Act
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = (DateTime)sut.Create(typeof(DateTime), dummyContainer);

            // Assert
            Assert.InRange(result, minDate, maxDate);
        }
示例#14
0
        public void CreateWithDateTimeRequestReturnsADateWithinARangeOfPlusMinusTwoYearsFromToday()
        {
            // Arrange
            var twoYearsAgo     = DateTime.Today.AddYears(-2);
            var twoYearsForward = DateTime.Today.AddYears(2);
            var sut             = new RandomDateTimeSequenceGenerator();
            // Act
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = (DateTime)sut.Create(typeof(DateTime), dummyContainer);

            // Assert
            Assert.InRange(result, twoYearsAgo, twoYearsForward);
        }
示例#15
0
        public void CreateWithNonDateTimeTypeRequestReturnsNoSpecimen(Type request)
        {
            // Fixture setup
            var sut = new RandomDateTimeSequenceGenerator();
            // Exercise system
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = sut.Create(request, dummyContainer);

            // Verify outcome
#pragma warning disable 618
            Assert.Equal(new NoSpecimen(request), result);
#pragma warning restore 618
            // Teardown
        }
示例#16
0
        public void CreateWithDateTimeRequestAndDateRangeReturnsDateWithinThatRange()
        {
            // Fixture setup
            var minDate = DateTime.Now;
            var maxDate = minDate.AddDays(3);
            var sut     = new RandomDateTimeSequenceGenerator(minDate, maxDate);
            // Exercise system
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = (DateTime)sut.Create(typeof(DateTime), dummyContainer);

            // Verify outcome
            Assert.InRange(result, minDate, maxDate);
            // Teardown
        }
示例#17
0
        public void CreateWithDateTimeRequestReturnsADateWithinARangeOfPlusMinusTwoYearsFromToday()
        {
            // Fixture setup
            var twoYearsAgo     = DateTime.Today.AddYears(-2);
            var twoYearsForward = DateTime.Today.AddYears(2);
            var sut             = new RandomDateTimeSequenceGenerator();
            // Exercise system
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = (DateTime)sut.Create(typeof(DateTime), dummyContainer);

            // Verify outcome
            Assert.InRange(result, twoYearsAgo, twoYearsForward);
            // Teardown
        }
示例#18
0
        public void CreateWithMultipleDateTimeRequestsReturnsDifferentDates()
        {
            // Arrange
            const int requestCount = 10;
            var       times        = Enumerable.Range(1, requestCount);
            var       sut          = new RandomDateTimeSequenceGenerator();
            // Act
            var dummyContainer = new DelegatingSpecimenContext();
            var results        = times
                                 .Select(t => sut.Create(typeof(DateTime), dummyContainer))
                                 .Cast <DateTime>();

            // Assert
            Assert.Equal(requestCount, results.Distinct().Count());
        }