Example #1
0
        public void ToStringReturnsId()
        {
            var id       = "KLM 12345 BCA";
            var flightId = FlightId.From(id);

            flightId.ToString().Should().Be(id);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #7
0
 public void ShouldThrowUnsupportedFlightIdExceptionGivenNotSupportedId()
 {
     FluentActions.Invoking(() => FlightId.From("KLM 12345 BCAx"))
     .Should().Throw <UnsupportedFlightIdException>();
 }