Example #1
0
        public void GetPossibleTimeSlotsOverMonthChange()
        {
            // Arrange
            var availability = new TableAvailability()
            {
                FirstTimeSlotDayOfWeek = 1, LastTimeSlotDayOfWeek = 2, FirstTimeSlot = new DateTime(2014, 1, 31, 19, 00, 00), LastTimeSlot = new DateTime(2014, 12, 12, 1, 00, 00)
            };
            var sourceDate = new DateTime(2014, 1, 31);

            // Act
            List <DateTime> possibleTimeSlots = TimeSlotFactory.GetPossibleTimeSlots(sourceDate, availability);

            // Assert
            // 19:00 / 19:30 / 20:00 / 20:30 / 21:00 / 21:30 / 22:00 / 22:30 / 23:00 / 23:30 / 00:00 / 00:30 / 01:00
            Assert.AreEqual(13, possibleTimeSlots.Count);
            for (int i = 0; i < possibleTimeSlots.Count; i++)
            {
                if (i < 10)
                {
                    Assert.AreEqual(31, possibleTimeSlots[i].Day);
                    Assert.AreEqual(1, possibleTimeSlots[i].Month);
                }
                else
                {
                    Assert.AreEqual(1, possibleTimeSlots[i].Day);
                    Assert.AreEqual(2, possibleTimeSlots[i].Month);
                }
            }
        }
Example #2
0
        public void GetPossibleTimeSlotsEvening()
        {
            // Arrange
            var availability = new TableAvailability()
            {
                FirstTimeSlotDayOfWeek = 1, LastTimeSlotDayOfWeek = 1, FirstTimeSlot = new DateTime(2014, 12, 12, 19, 00, 00), LastTimeSlot = new DateTime(2014, 12, 12, 23, 00, 00)
            };
            var sourceDate = new DateTime(2014, 2, 20);

            // Act
            List <DateTime> possibleTimeSlots = TimeSlotFactory.GetPossibleTimeSlots(sourceDate, availability);

            // Assert
            // 19:00 / 19:30 / 20:00 / 20:30 / 21:00 / 21:30 / 22:00 / 22:30 / 23:00
            Assert.AreEqual(9, possibleTimeSlots.Count);
        }
Example #3
0
        public void SaturdayToSundayTimeSlots()
        {
            // Arrange
            var availability = new TableAvailability()
            {
                FirstTimeSlotDayOfWeek = 6, LastTimeSlotDayOfWeek = 0, FirstTimeSlot = new DateTime(2014, 12, 12, 19, 00, 00), LastTimeSlot = new DateTime(2014, 12, 12, 02, 00, 00)
            };
            var sourceDate = new DateTime(2014, 2, 20);

            // Act
            List <DateTime> possibleTimeSlots = TimeSlotFactory.GetPossibleTimeSlots(sourceDate, availability);

            // Assert
            // 19:00 / 19:30 / 20:00 / 20:30 / 21:00 / 21:30 / 22:00 / 22:30 / 23:00 / 23:30 / 00:00 / 00:30 / 01:00 / 01:30 / 02:00
            Assert.AreEqual(15, possibleTimeSlots.Count);
        }