public void Context() { _unitOfWork = new NhibernateUnitOfWork(new CoreDddSharedNhibernateConfigurator()); _unitOfWork.BeginTransaction(); var createNewShipCommand = new CreateNewShipCommand { ShipName = "ship name", Tonnage = 23.45678m, ImoNumber = "IMO 765432" }; var internationalMaritimeOrganizationVerifier = A.Fake <IInternationalMaritimeOrganizationVerifier>(); A.CallTo(() => internationalMaritimeOrganizationVerifier.IsImoNumberValid("IMO 765432")).Returns(true); var createNewShipCommandHandler = new CreateNewShipCommandHandler( new NhibernateRepository <Ship>(_unitOfWork), internationalMaritimeOrganizationVerifier ); createNewShipCommandHandler.CommandExecuted += args => _createdShipId = (int)args.Args; createNewShipCommandHandler.Execute(createNewShipCommand); _unitOfWork.Flush(); _unitOfWork.Clear(); _persistedShip = _unitOfWork.Get <Ship>(_createdShipId); }
public void Context() { DomainEvents.Initialize(A.Fake <IDomainEventHandlerFactory>()); var createNewShipCommand = new CreateNewShipCommand { ShipName = "ship name", Tonnage = 23.45678m, ImoNumber = "IMO 12345" }; _shipRepository = A.Fake <IRepository <Ship> >(); A.CallTo(() => _shipRepository.SaveAsync(A <Ship> ._)).Invokes(x => { // when shipRepository.Save() is called, simulate NHibernate assigning Id to the Ship entity var shipPassedAsParameter = x.GetArgument <Ship>(0); shipPassedAsParameter.SetPrivateProperty("Id", 23); }); var createNewShipCommandHandler = new CreateNewShipCommandHandler(_shipRepository); createNewShipCommandHandler.CommandExecuted += args => _createdShipId = (int)args.Args; createNewShipCommandHandler.ExecuteAsync(createNewShipCommand).Wait(); }
public async Task Context() { var domainEventHandlerFactory = new FakeDomainEventHandlerFactory(domainEvent => _raisedDomainEvent = domainEvent as IDomainEvent); DomainEvents.Initialize(domainEventHandlerFactory); _unitOfWork = new NhibernateUnitOfWork(new CoreDddSharedNhibernateConfigurator()); _unitOfWork.BeginTransaction(); var createNewShipCommand = new CreateNewShipCommand { ShipName = "ship name", Tonnage = 23.45678m, ImoNumber = "IMO 12345" }; var createNewShipCommandHandler = new CreateNewShipCommandHandler(new NhibernateRepository <Ship>(_unitOfWork)); createNewShipCommandHandler.CommandExecuted += args => _createdShipId = (int)args.Args; await createNewShipCommandHandler.ExecuteAsync(createNewShipCommand); _unitOfWork.Flush(); _unitOfWork.Clear(); _persistedShip = _unitOfWork.Get <Ship>(_createdShipId); }