public void GetWeek_ShouldReturnEmptyDaysWithNotWorkingApiCalls(DateTime dateTime)
        {
            ISchedule roomSchedule = new RoomSchedule(apiConfig, logger, failingApiCalls);
            string    roomName     = "H.1.308";

            var reservations = roomSchedule.GetWeek(dateTime, roomName);

            Assert.All(reservations.Values, day => Assert.All(day.Values, reservation => Assert.Null(reservation)));
        }
        public void GetDatesInSameWeek_ShouldWorkWithValidDate(DateTime dateTime)
        {
            ISchedule roomSchedule = new RoomSchedule(apiConfig, logger, apiCalls);

            List <DateTime> datesInSameWeek = roomSchedule.GetDatesInSameWeek(dateTime);

            Assert.True(datesInSameWeek.Count == 7);
            Assert.Contains <DateTime>(dateTime, datesInSameWeek);
        }
        public void AddReservation_ShouldFailWithNotWorkingApiCalls()
        {
            ISchedule             roomSchedule = new RoomSchedule(apiConfig, logger, failingApiCalls);
            UploadableReservation reservation  = new UploadableReservation();
            Boolean expected = false;

            Boolean actual = roomSchedule.AddReservation(reservation);

            Assert.Equal(expected, actual);
        }
        public void AddReservation_ShouldWorkWithValidReservation()
        {
            ISchedule             roomSchedule = new RoomSchedule(apiConfig, logger, apiCalls);
            UploadableReservation reservation  = new UploadableReservation();
            Boolean expected = true;

            Boolean actual = roomSchedule.AddReservation(reservation);

            Assert.Equal(expected, actual);
        }
        public void GetDay_ShouldBeSubsetOfGetWeek(DateTime dateTime)
        {
            ISchedule roomSchedule = new RoomSchedule(apiConfig, logger, apiCalls);
            string    roomName     = "H.1.308";

            var reservationsForWeek = roomSchedule.GetWeek(dateTime, roomName);
            var reservationsForDay  = roomSchedule.GetDay(dateTime, roomName);

            Assert.Contains(reservationsForDay, reservationsForWeek.Values);
        }
        public void GetWeek_ShouldWorkWithValidDates(DateTime dateTime)
        {
            ISchedule roomSchedule = new RoomSchedule(apiConfig, logger, apiCalls);
            string    roomName     = "H.1.308";

            var reservations = roomSchedule.GetWeek(dateTime, roomName);

            Assert.True(reservations.Count == 7);
            Assert.All(reservations.Values, day => Assert.True(day.Values.Count == 15));
        }
        public void GetNumberOfFreeTimeslots_ShouldWork(DateTime dateTime)
        {
            ISchedule roomSchedule = new RoomSchedule(apiConfig, logger, apiCalls);
            string    roomName     = "H.1.308";
            var       reservations = roomSchedule.GetDay(dateTime, roomName);
            int       expected     = reservations.Where(r => r.Value == null).Count();

            int actual = roomSchedule.GetNumberOfFreeTimeslots(dateTime, roomName);

            Assert.Equal(expected, actual);
        }