Ejemplo n.º 1
0
        public void Get_WhenCorrectData_ShouldGetProperly()
        {
            // Arrange
            var person = new Person {
                Id = 1, Name = "Test", DateBirth = DateTime.Now.Date, Gender = GenderType.Male, Address = "TestAddress", Email = "*****@*****.**"
            };

            Mapper.Reset();
            Mapper.Initialize(cfg => cfg.CreateMap <Person, PassengerDto>());

            var passenger = Mapper.Map <Person, PassengerDto>(person);

            var mockPersonRepository  = new Mock <IRepository <Person> >();
            var mockBookingRepository = new Mock <IRepository <Booking> >();
            var mockFlightRepository  = new Mock <IRepository <Flight> >();

            mockPersonRepository.Setup(x => x.Get(It.Is <int>(m => m == person.Id))).Returns(person);

            var passengerService = new PassengerService(Mapper.Instance, mockPersonRepository.Object, mockBookingRepository.Object, mockFlightRepository.Object);

            // Act
            var expectedPassenger = passengerService.GetPassengerById(person.Id);

            // Assert
            Assert.AreEqual(expectedPassenger.Id, passenger.Id);
            Assert.AreEqual(expectedPassenger.Name, passenger.Name);
            Assert.AreEqual(expectedPassenger.Address, passenger.Address);
            Assert.AreEqual(expectedPassenger.DateBirth, passenger.DateBirth);
            Assert.AreEqual(expectedPassenger.Email, passenger.Email);
            Assert.AreEqual(expectedPassenger.Gender, passenger.Gender);
        }
Ejemplo n.º 2
0
 public PassengersWindow(PassengerService passengerService, LoginService loginService)
 {
     this.passengerService = passengerService;
     this.loginService     = loginService;
     InitializeComponent();
     RefreshList();
 }
Ejemplo n.º 3
0
        public void When_Relaxed_Rule_Is_Used_Should_Proceed_With_Flight()
        {
            var passengerService = new PassengerService();
            var aircraftService  = new AircraftService();

            aircraftService.AddPlanes(TestData.SmallAntonovPlane);
            var calculationService = new CalculationService();

            calculationService.AddRules(new ProfitRule(), new RelaxedRule());
            var flightService   = new FlightService(TestData.LondonToParis);
            var scheduledFlight = new ScheduledFlight(
                flightService,
                passengerService,
                aircraftService,
                calculationService,
                new SummaryFormat(passengerService, aircraftService));

            scheduledFlight.SetAircraftForRoute(122);

            scheduledFlight.SetCurrentRule <RelaxedRule>();

            scheduledFlight.AddPassenger(TestData.JackLoyaltyPassenger);
            scheduledFlight.AddPassenger(TestData.TrevorAirlineEmployeePassenger);
            scheduledFlight.AddPassenger(TestData.SunnyAirlineEmployeePassenger);
            scheduledFlight.AddPassenger(TestData.SunnyAirlineEmployeePassenger);
            scheduledFlight.AddPassenger(TestData.MartinAirlineEmployeePassenger);
            scheduledFlight.AddPassenger(TestData.MartinAirlineEmployeePassenger);
            scheduledFlight.AddPassenger(TestData.MikeDiscountedPassenger);

            scheduledFlight.Process();

            Assert.True(flightService.CanFlightProceed);
            Assert.Equal(-200, flightService.ProfitSurplus);
        }
        public void Setup()
        {
            _personRepository = new PersonAsyncRepository();
            var loggerMock       = new Mock <ILogger <PassengerDTO> >();
            var passengerService = new PassengerService(_personRepository);

            _controller = new PassengersController(loggerMock.Object, passengerService);
        }
        public async Task GivenQuoteofOneVechicleExceedPassengerShouldReturn0()
        {
            _proxy.GetQuote().Returns(Task.FromResult(GetSingleQoute()));
            var passengerService = new PassengerService(_proxy);

            var result = await passengerService.GetQuote(4);

            result.Count().Should().Be(0);
        }
        public async Task GivenQuoteofOneVechicleShouldReturnValueBasedOnLowerPrice()
        {
            _proxy.GetQuote().Returns(Task.FromResult(GetSingleQoute()));
            var passengerService = new PassengerService(_proxy);

            var result = await passengerService.GetQuote(2);

            result.Count().Should().Be(1);
            result.First().TotalPrice.Should().Be(4);
        }
        public async Task GivenQuoteofOneVechicleExceedPassengerShouldReturnInProperOrder()
        {
            _proxy.GetQuote().Returns(Task.FromResult(GetTwoQoute()));
            var passengerService = new PassengerService(_proxy);

            var result = await passengerService.GetQuote(2);

            result.Count().Should().Be(2);
            result.First().Name.Should().Be("L2");
            result.First().TotalPrice.Should().Be(3);
            result.Last().Name.Should().Be("L1");
            result.Last().TotalPrice.Should().Be(4);
        }
Ejemplo n.º 8
0
        public void Should_Return_Same_Data_When_Calling_Process_Twice()
        {
            var passengerService = new PassengerService();
            var aircraftService  = new AircraftService();

            aircraftService.AddPlanes(TestData.AntonovPlane);
            var calculationService = new CalculationService();

            calculationService.AddRules(new ProfitRule(), new RelaxedRule());
            var flightService   = new FlightService(TestData.LondonToParis);
            var scheduledFlight = new ScheduledFlight(
                flightService,
                passengerService,
                aircraftService,
                calculationService,
                new SummaryFormat(passengerService, aircraftService));

            scheduledFlight.SetAircraftForRoute(123);
            scheduledFlight.SetCurrentRule <ProfitRule>();

            scheduledFlight.AddPassenger(TestData.SteveGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.MarkGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.JamesGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.JaneGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.AlanGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.SuzyGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.AnthonyGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.MikeGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.JohnLoyaltyPassenger);
            scheduledFlight.AddPassenger(TestData.SarahLoyaltyPassenger);
            scheduledFlight.AddPassenger(TestData.JackLoyaltyPassenger);
            scheduledFlight.AddPassenger(TestData.TrevorAirlineEmployeePassenger);
            scheduledFlight.AddPassenger(TestData.MikeDiscountedPassenger);

            scheduledFlight.Process();
            scheduledFlight.Process();

            Assert.Equal(13, passengerService.GetCountForPassengerType <Passenger>());
            Assert.Equal(8, passengerService.GetCountForPassengerType <GeneralPassenger>());
            Assert.Equal(3, passengerService.GetCountForPassengerType <LoyaltyPassenger>());
            Assert.Equal(1, passengerService.GetCountForPassengerType <DiscountedPassenger>());
            Assert.Equal(1, passengerService.GetCountForPassengerType <AirlineEmployeePassenger>());

            Assert.Equal(15, flightService.TotalExpectedBaggage);
            Assert.Equal(1050, flightService.ProfitFromFlight);
            Assert.Equal(650, flightService.CostOfFlight);
            Assert.Equal(10, flightService.TotalLoyaltyPointsAccrued);
            Assert.Equal(100, flightService.TotalLoyaltyPointsRedeemed);
            Assert.Equal(400, flightService.ProfitSurplus);
        }
Ejemplo n.º 9
0
        public PassengerViewModel()
        {
            try
            {
                Passenger         = new PassengerDTO();
                _passengerService = new PassengerService();
                _countryList      = new List <CountryDTO>();
                _lookService      = new LookupsService();

                _countryList = _lookService.GetCountry();
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
Ejemplo n.º 10
0
        public void GetAll_WhenGenderIsSet_ShouldReturnPassengersByGender()
        {
            // Arrange
            var getPassengersRequest = new GetPassengersRequest
            {
                Gender = Gender.Male
            };

            var passengersByGender = new List <Person>
            {
                new Person {
                    Id = 1, Name = "Test1", DateBirth = DateTime.Now.Date, Gender = GenderType.Male, Address = "TestAddress", Email = "*****@*****.**"
                },
                new Person {
                    Id = 2, Name = "Test2", DateBirth = DateTime.Now.Date, Gender = GenderType.Female, Address = "TestAddress", Email = "*****@*****.**"
                },
                new Person {
                    Id = 3, Name = "Test3", DateBirth = DateTime.Now.Date, Gender = GenderType.Male, Address = "TestAddress", Email = "*****@*****.**"
                }
            };

            Mapper.Reset();
            Mapper.Initialize(cfg => cfg.CreateMap <Person, PassengerDto>());

            var malePassengers = Mapper.Map <List <Person>, List <PassengerDto> >(passengersByGender.Where(pas => pas.Gender == GenderType.Male).ToList());

            var mockPersonRepository  = new Mock <IRepository <Person> >();
            var mockBookingRepository = new Mock <IRepository <Booking> >();
            var mockFlightRepository  = new Mock <IRepository <Flight> >();

            mockPersonRepository.Setup(x => x.GetAll()).Returns(passengersByGender);

            var passengerService = new PassengerService(Mapper.Instance, mockPersonRepository.Object, mockBookingRepository.Object, mockFlightRepository.Object);

            // Act
            var passengers = passengerService.GetPassengers(getPassengersRequest);

            // Assert
            Assert.AreEqual(malePassengers.Count, passengers.Count);
            Assert.AreEqual(malePassengers.Select(pas => pas.Id).ToList(), passengers.Select(pas => pas.Id).ToList());
        }
Ejemplo n.º 11
0
        public void GetAll_WhenNoPassengers_ShouldThrowAppropriateException()
        {
            // Arrange
            var getPassengersRequest = new GetPassengersRequest();

            Mapper.Reset();
            Mapper.Initialize(cfg => cfg.CreateMap <Person, PassengerDto>());

            var mockPersonRepository  = new Mock <IRepository <Person> >();
            var mockBookingRepository = new Mock <IRepository <Booking> >();
            var mockFlightRepository  = new Mock <IRepository <Flight> >();

            mockPersonRepository.Setup(x => x.GetAll()).Returns((IEnumerable <Person>)null);

            var passengerService = new PassengerService(Mapper.Instance, mockPersonRepository.Object, mockBookingRepository.Object, mockFlightRepository.Object);

            // Act & Assert
            var exception = Assert.Throws <WingsOnNotFoundException>(() => passengerService.GetPassengers(getPassengersRequest));

            Assert.AreEqual(exception.Message, "Passengers are not found.");
        }
Ejemplo n.º 12
0
        public ActionResult DisplayPassenger(int?ID)
        {
            if (Session[UtilContants.USER_LOGIN] == null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                if (ID == null || ID.ToString().Length == 0)
                {
                    return(RedirectToAction("Error", "Home", new { message = "Trang không tồn tại" }));
                }
                else
                {
                    ViewBag.isActive = UtilContants.PLACE_NAV;

                    IPassengerService _passengerService = new PassengerService();
                    return(View(_passengerService.getAllPassengerByBookingID(ID.GetValueOrDefault())));
                }
            }
        }
Ejemplo n.º 13
0
        public void Get_WhenIncorrectData_ShouldThrowAppropriateException()
        {
            // Arrange
            var person = new Person {
                Id = 1, Name = "Test", DateBirth = DateTime.Now.Date, Gender = GenderType.Male, Address = "TestAddress", Email = "*****@*****.**"
            };

            Mapper.Reset();
            Mapper.Initialize(cfg => cfg.CreateMap <Person, PassengerDto>());

            var mockPersonRepository  = new Mock <IRepository <Person> >();
            var mockBookingRepository = new Mock <IRepository <Booking> >();
            var mockFlightRepository  = new Mock <IRepository <Flight> >();

            mockPersonRepository.Setup(x => x.Get(It.Is <int>(m => m == person.Id))).Returns((Person)null);

            var passengerService = new PassengerService(Mapper.Instance, mockPersonRepository.Object, mockBookingRepository.Object, mockFlightRepository.Object);

            // Act & Assert
            var exception = Assert.Throws <WingsOnNotFoundException>(() => passengerService.GetPassengerById(person.Id));

            Assert.AreEqual(exception.Message, "Passenger with specified ID is not found.");
        }
Ejemplo n.º 14
0
        public void Ensure_That_Original_Use_Case_Works()
        {
            var passengerService = new PassengerService();
            var aircraftService  = new AircraftService();

            aircraftService.AddPlanes(TestData.AntonovPlane);
            var calculationService = new CalculationService();

            calculationService.AddRules(new ProfitRule(), new RelaxedRule());
            var flightService   = new FlightService(TestData.LondonToParis);
            var scheduledFlight = new ScheduledFlight(
                flightService,
                passengerService,
                aircraftService,
                calculationService,
                new SummaryFormat(passengerService, aircraftService));

            scheduledFlight.SetAircraftForRoute(123);
            scheduledFlight.SetCurrentRule <ProfitRule>();

            scheduledFlight.AddPassenger(TestData.SteveGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.MarkGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.JamesGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.JaneGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.AlanGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.SuzyGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.JohnLoyaltyPassenger);
            scheduledFlight.AddPassenger(TestData.SarahLoyaltyPassenger);
            scheduledFlight.AddPassenger(TestData.JackLoyaltyPassenger);
            scheduledFlight.AddPassenger(TestData.TrevorAirlineEmployeePassenger);

            scheduledFlight.Process();


            Assert.Equal(10, passengerService.GetCountForPassengerType <Passenger>());
            Assert.Equal(6, passengerService.GetCountForPassengerType <GeneralPassenger>());
            Assert.Equal(3, passengerService.GetCountForPassengerType <LoyaltyPassenger>());
            Assert.Equal(1, passengerService.GetCountForPassengerType <AirlineEmployeePassenger>());

            Assert.Equal(13, flightService.TotalExpectedBaggage);
            Assert.Equal(800, flightService.ProfitFromFlight);
            Assert.Equal(500, flightService.CostOfFlight);
            Assert.Equal(10, flightService.TotalLoyaltyPointsAccrued);
            Assert.Equal(100, flightService.TotalLoyaltyPointsRedeemed);
            Assert.Equal(300, flightService.ProfitSurplus);
            Assert.Equal(
                @"Flight summary for London to Paris

Total passengers: 10
    General sales: 6
    Loyalty member sales: 3
    Airline employee comps: 1

Total expected baggage: 13

Total revenue from flight: 800
Total costs from flight: 500
Flight generating profit of: 300

Total loyalty points given away: 10
Total loyalty points redeemed: 100


THIS FLIGHT MAY PROCEED",
                scheduledFlight.GetSummary());
        }
Ejemplo n.º 15
0
 public PassengerListViewModel(long journeyId)
 {
     _passengerService = new PassengerService();
     _journeyId        = journeyId;
 }
Ejemplo n.º 16
0
 public PassengerController(PassengerService passengerService)
 {
     _passengerService = passengerService;
 }
Ejemplo n.º 17
0
        public void Should_Choose_Bigger_Airplane()
        {
            var passengerService = new PassengerService();
            var aircraftService  = new AircraftService();

            aircraftService
            .AddPlanes(TestData.SmallAntonovPlane,
                       TestData.BombardierPlane,
                       TestData.ATRPlane);
            var calculationService = new CalculationService();

            calculationService.AddRules(new ProfitRule(), new RelaxedRule());
            var flightService   = new FlightService(TestData.LondonToParis);
            var scheduledFlight = new ScheduledFlight(
                flightService,
                passengerService,
                aircraftService,
                calculationService,
                new SummaryFormat(passengerService, aircraftService));

            scheduledFlight.SetAircraftForRoute(122);
            scheduledFlight.SetCurrentRule <ProfitRule>();

            scheduledFlight.AddPassenger(TestData.SteveGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.MarkGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.JamesGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.JaneGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.AlanGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.SuzyGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.AnthonyGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.MikeGeneralPassenger);
            scheduledFlight.AddPassenger(TestData.JohnLoyaltyPassenger);
            scheduledFlight.AddPassenger(TestData.SarahLoyaltyPassenger);
            scheduledFlight.AddPassenger(TestData.JackLoyaltyPassenger);
            scheduledFlight.AddPassenger(TestData.TrevorAirlineEmployeePassenger);

            scheduledFlight.Process();
            _output.WriteLine(scheduledFlight.GetSummary());

            Assert.Equal(12, passengerService.GetCountForPassengerType <Passenger>());
            Assert.Equal(8, passengerService.GetCountForPassengerType <GeneralPassenger>());
            Assert.Equal(3, passengerService.GetCountForPassengerType <LoyaltyPassenger>());
            Assert.Equal(1, passengerService.GetCountForPassengerType <AirlineEmployeePassenger>());

            Assert.Equal(15, flightService.TotalExpectedBaggage);
            Assert.Equal(1000, flightService.ProfitFromFlight);
            Assert.Equal(600, flightService.CostOfFlight);
            Assert.Equal(10, flightService.TotalLoyaltyPointsAccrued);
            Assert.Equal(100, flightService.TotalLoyaltyPointsRedeemed);
            Assert.Equal(400, flightService.ProfitSurplus);
            Assert.Equal(
                @"Flight summary for London to Paris

Total passengers: 12
    General sales: 8
    Loyalty member sales: 3
    Airline employee comps: 1

Total expected baggage: 15

Total revenue from flight: 1000
Total costs from flight: 600
Flight generating profit of: 400

Total loyalty points given away: 10
Total loyalty points redeemed: 100


FLIGHT MAY NOT PROCEED
Other more suitable aircraft are:
Bombardier Q400 could handle this flight
ATR 640 could handle this flight
",
                scheduledFlight.GetSummary());
        }
 public void Setup()
 {
     _passengerService = new PassengerService(_databaseSettings, null);
 }