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); }
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); }
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); }
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); }
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); }
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)); }
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); }