public SimpleTestContainer() { var domainEventPublisher = new SimpleEventPublisher(); var uoW = new MemoryCarRentalUoW( new MemoryRepository <Driver>(), new MemoryRepository <Car>(), new MemoryRepository <Rental>(), new MemoryRepository <Office>() ); var freeMinutesPolicyFactory = new FreeMinutesPolicy(); var rentalFactory = new RentalFactory(domainEventPublisher); var carMapper = new CarMapper(); var driverMapper = new DriverMapper(); var rentalMapper = new RentalMapper(); var officeMapper = new OfficeMapper(); DriverService = new DriverService(uoW, driverMapper, domainEventPublisher); CarService = new CarService(uoW, carMapper, domainEventPublisher); RentalService = new RentalService(uoW, rentalMapper, domainEventPublisher, rentalFactory, freeMinutesPolicyFactory); FinishRentalService = new StopRentalService(uoW, domainEventPublisher); OfficeService = new OfficeService(uoW, officeMapper, domainEventPublisher); }
public RentalService(ICarRentalUoW uoW, RentalMapper rentalMapper, IDomainEventPublisher domainEventPublisher, RentalFactory rentalFactory, FreeMinutesPolicy policyFactory) { _uoW = uoW; _rentalMapper = rentalMapper; _domainEventPublisher = domainEventPublisher; _rentalFactory = rentalFactory; _policyFactory = policyFactory; }
public RentalService(RentalFactory rentalFactory, ICarRentalUnitOfWork unitOfWork, RentalMapper rentalMapper, PositionService positionService) { _rentalFactory = rentalFactory; _unitOfWork = unitOfWork; _rentalMapper = rentalMapper; _positionService = positionService; }
public async Task <Entities.Rental> CreateRentalAsync(Guid userId, string name, CancellationToken cancellationToken) { var _ = await _userRepository.GetAsync(userId, cancellationToken) ?? throw new NullReferenceException(); var rental = RentalFactory.Create(userId, name); return(rental); }
public SimpleTestContainer() { // domain event publisher var domainEventPublisher = new SimpleEventPublisher(); // infrastructure service var emaildispatcher = new EmailDispatcher(); // event listeners var driverCreatedEventListener = new DriverCreatedEventListener(); domainEventPublisher.Subscribe <DriverCreatedEvent>(driverCreatedEventListener); //unitOfWork var unitOfWork = new MemoryCarRentalUnitOfWork( new MemoryRepository <Driver>(), new MemoryRepository <Car>(), new MemoryRepository <Rental>(), new MemoryRepository <Scooter>()); // factories var rentalFactory = new RentalFactory(domainEventPublisher); var carFactory = new CarFactory(domainEventPublisher); var freeMinutesFactory = new FreeMinutesFactory(); // mappers var carMapper = new CarMapper(); var driverMapper = new DriverMapper(); var scooterMapper = new ScooterMapper(); var rentalMapper = new RentalMapper(); this.CarService = new CarService( unitOfWork, carMapper, domainEventPublisher); this.ScooterService = new ScooterService( unitOfWork, scooterMapper, domainEventPublisher); this.DriverService = new DriverService( unitOfWork, driverMapper, domainEventPublisher); this.RentalService = new RentalService( unitOfWork, rentalFactory, rentalMapper, freeMinutesFactory, domainEventPublisher); }
public RentalService(ICarRentalUnitOfWork unitOfWork, RentalFactory rentalFactory, RentalMapper rentalMapper, FreeMinutesFactory freeMinutesFactory, IDomainEventPublisher domainEventPublisher) { this._unitOfWork = unitOfWork; this._rentalMapper = rentalMapper; this._rentalFactory = rentalFactory; this._freeMinutesFactory = freeMinutesFactory; this._domainEventPublisher = domainEventPublisher; }
public RentalService(ICarRentalUnitOfWork unitOfWork, RentalFactory rentalFactory, RentalMapper rentalMapper, FreeMinutespolicyFactory freeMinutespolicyFactory, PositionService positionService, HandlePassengerService handlePassengerService, IDomainEventPublisher domainEventPublisher) { this._unitOfWork = unitOfWork; this._rentalFactory = rentalFactory; this._rentalMapper = rentalMapper; this._freeMinutespolicyFactory = freeMinutespolicyFactory; this._positionService = positionService; this._handlePassengerService = handlePassengerService; this._domainEventPublisher = domainEventPublisher; }
public void Statement_WhenCustomerHaveSingleRental_Shouldpass() { const int daysRented = 3; const double expectedTotalAmount = 9; const int expectedFrequentRenterPoints = 2; RentalFactory.GetRentalInformation(Titles[0], TypeOfMovie.NewRelease, daysRented); var customerRentals = RentalFactory.Build(); StatementFactory.GetCustomerRental(CustomerName, customerRentals); var statement = StatementFactory.BuildStatement(); TestsHelper.SetCustomerInformation(CustomerName, expectedTotalAmount, expectedFrequentRenterPoints); TestsHelper.SetMovieInformation(TestsHelper.GetMoviesWithPrice(customerRentals)); Assert.True(TestsHelper.CheckStatement(statement)); Assert.True(TestsHelper.CheckStringStatement(StatementFactory.BuildStringStatement())); Assert.True(TestsHelper.CheckJsonStatement(StatementFactory.BuildJsonStatement())); Assert.True(TestsHelper.CheckUniversalStatement(StatementFactory.BuildUniversalStatement())); }
public void Statement__WhenCustomerHaveMultipleRentals_Shouldpass(int regularMovieDays, int childrensMovieDays, int newReleaseMovieDays, double expectedTotalAmount, int expectedFrequentRenterPoints) { var days = new[] { newReleaseMovieDays, regularMovieDays, childrensMovieDays }; RentalFactory.GetRentalInformation(Titles, Types, days); var customerRentals = RentalFactory.Build(); StatementFactory.GetCustomerRental(CustomerName, customerRentals); var statement = StatementFactory.BuildStatement(); TestsHelper.SetCustomerInformation(CustomerName, expectedTotalAmount, expectedFrequentRenterPoints); TestsHelper.SetMovieInformation(TestsHelper.GetMoviesWithPrice(customerRentals)); Assert.True(TestsHelper.CheckStatement(statement)); Assert.True(TestsHelper.CheckStringStatement(StatementFactory.BuildStringStatement())); Assert.True(TestsHelper.CheckJsonStatement(StatementFactory.BuildJsonStatement())); Assert.True(TestsHelper.CheckUniversalStatement(StatementFactory.BuildUniversalStatement())); }
public void AddNewRental(IAddNewRentalView inForm, IRentalRepository rentalRepository, IBoardGameRepository boardGameRepository) { if (inForm.ShowViewModal()) { try { Member member = inForm.Member; List <BoardGame> boardGames = inForm.BoardGames; User employee = GlobalVariables.CurrentUser; Rental newRental = RentalFactory.CreateRental(member, boardGames, DateTime.Now.Date, null, employee); rentalRepository.AddRental(newRental); boardGameRepository.BoardGamesRented(boardGames); } catch (Exception ex) { MessageBox.Show("EXCEPTION: " + ex.Message); throw; } } }
public TestContainer() { UnitOfWork = new MemoryCarRentalUnitOfWork(); var carFactory = new CarFactory(); var driverFactory = new DriverFactory(); _rentalFactory = new RentalFactory(); var rentalAreaFactory = new RentalAreaFactory(); var positionService = new PositionService(UnitOfWork); var carMapper = new CarMapper(); var driverMapper = new DriverMapper(); _rentalMapper = new RentalMapper(); var rentalAreaMapper = new RentalAreaMapper(); CarService = new CarService(carFactory, UnitOfWork, carMapper); DriverService = new DriverService(driverFactory, UnitOfWork, driverMapper); RentalService = new RentalService(_rentalFactory, UnitOfWork, _rentalMapper, positionService); RentalAreaService = new RentalAreaService(rentalAreaFactory, UnitOfWork, rentalAreaMapper); }