コード例 #1
0
        public static async Task Returns_previously_saved_reservations()
        {
            var activeDates = new[] { 15.February(2021), 16.February(2021), 18.February(2021) };

            var reservations = new[]
            {
                new Reservation("User1", 15.February(2021)),
                new Reservation("User2", 15.February(2021)),
                new Reservation("User3", 15.February(2021)),
            };

            var controller = new ReservationsController(
                CreateConfigurationRepository.WithDefaultConfiguration(),
                CreateDateCalculator.WithActiveDates(activeDates),
                CreateReservationRepository.WithReservations(activeDates, reservations),
                CreateUserRepository.WithUsers(DefaultUsers));

            var result = await controller.GetAsync();

            var resultValue = GetResultValue <ReservationsResponse>(result);

            var data = GetDailyData(resultValue.Reservations, 15.February(2021));

            Assert.Equal(new[] { "User1", "User2", "User3" }, data.UserIds);
        }
コード例 #2
0
        public static async Task Returns_sorted_list_of_users()
        {
            var activeDates = new[] { 15.February(2021) };

            var controller = new ReservationsController(
                CreateConfigurationRepository.WithDefaultConfiguration(),
                CreateDateCalculator.WithActiveDates(activeDates),
                CreateReservationRepository.WithReservations(activeDates, new List <Reservation>()),
                CreateUserRepository.WithUsers(DefaultUsers));

            var result = await controller.GetAsync();

            var resultValue = GetResultValue <ReservationsResponse>(result);

            Assert.NotNull(resultValue.Users);

            var actualUsers = resultValue.Users.ToArray();

            Assert.Equal(3, actualUsers.Length);

            Assert.Equal("User2", actualUsers[0].UserId);
            Assert.Equal("Kendricks Hawke", actualUsers[0].Name);

            Assert.Equal("User1", actualUsers[1].UserId);
            Assert.Equal("Silvester Probet", actualUsers[1].Name);

            Assert.Equal("User3", actualUsers[2].UserId);
            Assert.Equal("Rupert Trollope", actualUsers[2].Name);
        }
コード例 #3
0
        public void GetAsync_Return_All_Reservations()
        {
            //Arrange
            ReservationDomainModel reservationDomainModel = new ReservationDomainModel
            {
                Id           = Guid.NewGuid(),
                ProjectionId = Guid.NewGuid(),
                UserId       = Guid.NewGuid()
            };
            int expectedStatusCode  = 200;
            int expectedResultCount = 1;

            List <ReservationDomainModel> reservationDomainModels = new List <ReservationDomainModel>();

            reservationDomainModels.Add(reservationDomainModel);

            IEnumerable <ReservationDomainModel>         reservationsIEn = reservationDomainModels;
            Task <IEnumerable <ReservationDomainModel> > responseTask    = Task.FromResult(reservationsIEn);

            _reservationService = new Mock <IReservationService>();
            _reservationService.Setup(x => x.GetAllAsync()).Returns(responseTask);
            ReservationsController reservationsController = new ReservationsController(_reservationService.Object);

            //Act
            var result     = reservationsController.GetAsync().ConfigureAwait(false).GetAwaiter().GetResult().Result;
            var resultList = ((OkObjectResult)result).Value;
            List <ReservationDomainModel> reservationDomainModelsResult = (List <ReservationDomainModel>)resultList;

            //Assert
            Assert.IsNotNull(reservationDomainModelsResult);
            Assert.AreEqual(expectedResultCount, reservationDomainModelsResult.Count);
            Assert.AreEqual(reservationDomainModel.Id, reservationDomainModelsResult[0].Id);
            Assert.IsInstanceOfType(result, typeof(OkObjectResult));
            Assert.AreEqual(expectedStatusCode, ((OkObjectResult)result).StatusCode);
        }
コード例 #4
0
        public static async Task Returns_short_lead_time_spaces_count()
        {
            var configuration = CreateConfiguration.With(shortLeadTimeSpaces: 2);

            var activeDates = new[] { 15.February(2021) };

            var controller = new ReservationsController(
                CreateConfigurationRepository.WithConfiguration(configuration),
                CreateDateCalculator.WithActiveDates(activeDates),
                CreateReservationRepository.WithReservations(activeDates, new List <Reservation>()),
                CreateUserRepository.WithUsers(new List <User>()));

            var result = await controller.GetAsync();

            var resultValue = GetResultValue <ReservationsResponse>(result);

            Assert.Equal(2, resultValue.ShortLeadTimeSpaces);
        }
コード例 #5
0
        public static async Task Returns_empty_reservations_object_when_no_reservations_exist()
        {
            var activeDates = new[] { 15.February(2021) };

            var controller = new ReservationsController(
                CreateConfigurationRepository.WithDefaultConfiguration(),
                CreateDateCalculator.WithActiveDates(activeDates),
                CreateReservationRepository.WithReservations(activeDates, new List <Reservation>()),
                CreateUserRepository.WithUsers(new List <User>()));

            var result = await controller.GetAsync();

            var resultValue = GetResultValue <ReservationsResponse>(result);

            var data = GetDailyData(resultValue.Reservations, 15.February(2021));

            Assert.NotNull(data.UserIds);

            Assert.Empty(data.UserIds);
        }
コード例 #6
0
        public static async Task Returns_reservations_data_for_each_active_date()
        {
            var activeDates = new[] { 15.February(2021), 16.February(2021), 18.February(2021) };

            var controller = new ReservationsController(
                CreateConfigurationRepository.WithDefaultConfiguration(),
                CreateDateCalculator.WithActiveDates(activeDates),
                CreateReservationRepository.WithReservations(activeDates, new List <Reservation>()),
                CreateUserRepository.WithUsers(DefaultUsers));

            var result = await controller.GetAsync();

            var resultValue = GetResultValue <ReservationsResponse>(result);

            Assert.NotNull(resultValue.Reservations);

            var visibleDays = GetVisibleDays(resultValue.Reservations);

            Assert.Equal(activeDates, visibleDays.Select(d => d.LocalDate));

            Assert.All(visibleDays, d => Assert.NotNull(d.Data));
        }
コード例 #7
0
        public void GetAsync_Return_Empty_Reservation_List()
        {
            //Arrange

            int expectedStatusCode = 200;

            IEnumerable <ReservationDomainModel>         reservationsIEn = null;
            Task <IEnumerable <ReservationDomainModel> > responseTask    = Task.FromResult(reservationsIEn);

            _reservationService = new Mock <IReservationService>();
            _reservationService.Setup(x => x.GetAllAsync()).Returns(responseTask);
            ReservationsController reservationsController = new ReservationsController(_reservationService.Object);

            //Act
            var result     = reservationsController.GetAsync().ConfigureAwait(false).GetAwaiter().GetResult().Result;
            var resultList = ((OkObjectResult)result).Value;
            List <ReservationDomainModel> reservationDomainModelsResult = (List <ReservationDomainModel>)resultList;

            //Assert
            Assert.IsNotNull(reservationDomainModelsResult);
            Assert.IsInstanceOfType(result, typeof(OkObjectResult));
            Assert.AreEqual(expectedStatusCode, ((OkObjectResult)result).StatusCode);
        }