public void PostValidDtoWhenSoldOut(int capacity, int quantity) { var repository = new FakeReservationsRepository(); var now = new DateTime(2019, 9, 27); var sut = new ReservationsController( TimeSpan.FromHours(2.5), new[] { new Table(capacity) }, repository, new ConstantClock(now)); var dto = new ReservationDto { Date = now.AddDays(2).ToString(), Quantity = quantity }; var actual = sut.Post(dto); var c = Assert.IsAssignableFrom <ObjectResult>(actual); Assert.Equal(StatusCodes.Status500InternalServerError, c.StatusCode); }
public void PostValidDtoWhenNoPriorReservationsExist( int capacity, int quantity) { var repository = new FakeReservationsRepository(); var now = new DateTime(2019, 9, 24); var sut = new ReservationsController( TimeSpan.FromHours(2.5), new[] { new Table(capacity) }, repository, new ConstantClock(now)); var dto = new ReservationDto { Date = now.AddDays(1).ToString(), Quantity = quantity }; var actual = sut.Post(dto); Assert.IsAssignableFrom <OkResult>(actual); Assert.NotEmpty(repository); }
public void PostPastReservationWhenNoPriorReservationsExist( int capacity, int quantity) { var repository = new FakeReservationsRepository(); var now = new DateTime(2019, 8, 21); var sut = new ReservationsController( TimeSpan.FromHours(2.5), new[] { new Table(capacity) }, repository, new ConstantClock(now)); var dto = new ReservationDto { Date = now.Subtract(TimeSpan.FromDays(1)).ToString(), Quantity = quantity }; var actual = sut.Post(dto); var br = Assert.IsAssignableFrom <BadRequestObjectResult>(actual); var msg = Assert.IsAssignableFrom <string>(br.Value); Assert.NotEmpty(msg); }