public void ToStringReturnsId() { var id = "KLM 12345 BCA"; var flightId = FlightId.From(id); flightId.ToString().Should().Be(id); }
public async Task ShouldPersistNewFlightInDbContext() { // arrange Context.Tenants.Add(new Tenant { Id = 1, Name = "test", TenantGroup = Domain.Enums.TenantGroup.A }); Context.SaveChanges(); //act var requesHandler = new CreateFlightCommandHandler(Context); await requesHandler.Handle(new CreateFlightCommand { FlightId = FlightId.From("KLM 12345 BCA"), Days = new List <DayOfWeek> { DayOfWeek.Monday }, DefaultPrice = 24, From = "Europe", To = "Africa", Hour = 10, Minute = 30, TenantId = 1 }, CancellationToken.None); //assert Assert.IsTrue(Context.Flights.Count() == 1); }
public void ShouldReturnCorrectFlightIdSegments() { var id = "KLM 12345 BCA"; var flightId = FlightId.From(id); flightId.Segment1.Should().Be("KLM"); flightId.Segment2.Should().Be("12345"); flightId.Segment3.Should().Be("BCA"); }
public async Task ShouldReturnOneFlightWithCustomPrice() { var from = DateTimeOffset.Parse("2021-02-02T10:00:00Z"); var tenant = new Tenant { Id = 1, Name = "test", TenantGroup = Domain.Enums.TenantGroup.A }; Context.Tenants.Add(tenant); Context.Flights.Add(new Flight { FlightId = FlightId.From("KLM 12345 BCA"), Monday = true, DefaultPrice = 24, From = "Europe", To = "Africa", Hour = 10, Minute = 30, CreatedBy = tenant, CustomPrices = new List <FlightPrice> { new FlightPrice { From = from, To = from.AddDays(10), Value = 30 } } }); Context.SaveChanges(); var availableFlightsQuery = new GetAvailableFlightQueryHandler(Context, _mapper); var result = await availableFlightsQuery.Handle(new GetAvailableFlightQuery { FlightId = FlightId.From("KLM 12345 BCA"), From = from, To = from.AddDays(7) }, CancellationToken.None); Assert.True(result.Count == 1); Assert.AreEqual("2021-02-08 10:30:00", result.First().DepartureDateTime.ToString("yyyy-MM-dd HH:mm:ss")); Assert.AreEqual(30, result.First().Price); }
public async Task ShouldPersistNewFlightPurchaseInDbContext() { var tenant = new Tenant { Id = 1, Name = "test", TenantGroup = Domain.Enums.TenantGroup.A }; Context.Tenants.Add(tenant); Context.Flights.Add(new Flight { FlightId = FlightId.From("KLM 12345 BCA"), Monday = true, DefaultPrice = 24, From = "Europe", To = "Africa", Hour = 10, Minute = 30, CreatedBy = tenant }); Context.SaveChanges(); var from = DateTimeOffset.Parse("2021-02-02T10:00:00Z"); var availableFlightsQuery = new GetAvailableFlightQueryHandler(Context, _mapper); var result = await availableFlightsQuery.Handle(new GetAvailableFlightQuery { FlightId = FlightId.From("KLM 12345 BCA"), From = from, To = from.AddDays(7) }, CancellationToken.None); var createFlightPurchaseCommand = new CreateFlightPurchaseCommandHandler(Context, _mapper); var purchase = await createFlightPurchaseCommand.Handle(new CreateFlightPurchaseCommand { Flight = result.First(), TenantId = 1 }, CancellationToken.None); //assert Assert.IsTrue(Context.FlightPurchases.Count() == 1); }
public async Task ShouldReturnZeroResults() { var tenant = new Tenant { Id = 1, Name = "test", TenantGroup = Domain.Enums.TenantGroup.A }; Context.Tenants.Add(tenant); Context.Flights.Add(new Flight { FlightId = FlightId.From("KLM 12345 BCA"), Monday = true, DefaultPrice = 24, From = "Europe", To = "Africa", Hour = 10, Minute = 30, CreatedBy = tenant }); Context.SaveChanges(); var from = DateTimeOffset.Parse("2021-02-02T10:00:00Z"); var availableFlightsQuery = new GetAvailableFlightQueryHandler(Context, _mapper); var result = await availableFlightsQuery.Handle(new GetAvailableFlightQuery { FlightId = FlightId.From("KLM 12345 BCA"), From = from, To = from.AddDays(4) }, CancellationToken.None); Assert.True(result.Count == 0); }
public void ShouldThrowUnsupportedFlightIdExceptionGivenNotSupportedId() { FluentActions.Invoking(() => FlightId.From("KLM 12345 BCAx")) .Should().Throw <UnsupportedFlightIdException>(); }