コード例 #1
0
        public void GetAllEventDatesByMonth_ValidResult_ReturnsUniqueEventDatesFromMonth()
        {
            DateTime now = DateTime.Today;
            /*  Return values for mock EventRepository */
            List<DateTime> mockEventDates = new List<DateTime>
            {
                new DateTime(now.Year, now.Month, 1),
                new DateTime(now.Year, now.Month, 1),
                new DateTime(now.Year, now.Month, 3),
                new DateTime(now.Year, now.Month, 4),
                new DateTime(now.Year, now.Month, 4),
                new DateTime(now.Year, now.Month, 6),
                new DateTime(now.Year, now.Month, 17),
                new DateTime(now.Year, now.Month, 17)
            };

            /*  Initialize Mocks */
            var operationResult = new Mock<IOperationResult>();
            var eventRepository = new Mock<IEventRepository>();

            /*  Setup Mocks */
            eventRepository
                .Setup(x => x.GetAllEventDatesFromMonth(now.Year, now.Month))
                .Returns(mockEventDates.Distinct());

            eventRepository
                .Setup(x => x.Result.IsError)
                .Returns(false);

            /*  Initialize Service */
            EventService service = new EventService(
                operationResult.Object,
                eventRepository.Object
            );

            /*  Test Method */
            List<DateTime> results = service.GetAllEventDatesFromMonth(now.Year, now.Month);

            /*  Test to see returned events and mock events have the same number of elements */
            Assert.AreEqual(5, results.Count);

            /*  Test to see returned events are the same as mock events */
            foreach (DateTime ev in results)
            {
                Assert.IsTrue(mockEventDates.Contains(ev));
            }
        }