public void TestCreateDeposit() { var aggregate = new DepositAggregate(); var accountGuid = Guid.NewGuid(); var depositGuid = Guid.NewGuid(); var eventGuid = Guid.NewGuid(); var createDepositEvent = new CreateDepositEvent { AccountGuid = accountGuid, ItemGuid = depositGuid, EventGuid = eventGuid }; aggregate.Apply(createDepositEvent); Assert.Equal(depositGuid, aggregate.Guid); Assert.Equal(accountGuid, aggregate.AccountGuid); }
public void TestHandle() { var depositGuid = Guid.NewGuid(); var accountGuid = Guid.NewGuid(); var eventGuid = Guid.NewGuid(); var createDepositEvent = new CreateDepositEvent { ItemGuid = depositGuid, AccountGuid = accountGuid, EventGuid = eventGuid }; var depositServiceMock = new Mock <IService <DepositModel> >(); depositServiceMock.Setup(m => m.Save(It.Is <DepositModel>(model => model.Guid == depositGuid && model.Account.Guid == accountGuid))); var eventHandler = new CreateDepositEventHandler(depositServiceMock.Object); eventHandler.Handle(createDepositEvent); depositServiceMock.VerifyAll(); }
public override void Handle(ICommand item) { var createDepositCommand = (CreateDepositCommand)item; var accountId = createDepositCommand.AccountId; if (accountId.Equals(Guid.Empty)) { var errorEvent = new ErrorEvent(Guid.NewGuid(), Guid.Empty, createDepositCommand, "Account Guid empty"); _eventPublisher.Publish(errorEvent); return; } var account = _accountAggregateService.Load(accountId); if (account.Guid.Equals(Guid.Empty)) { var errorEvent = new ErrorEvent(Guid.NewGuid(), accountId, account, "Account not found"); _eventPublisher.Publish(errorEvent); return; } var depositGuid = GetDepositGuid(); var createDepositEvent = new CreateDepositEvent { ItemGuid = depositGuid, AccountGuid = accountId }; _eventPublisher.Publish(createDepositEvent); var addDepositToAccountEvent = new AddDepositToAccountEvent { ItemGuid = accountId, DepositId = depositGuid }; _eventPublisher.Publish(addDepositToAccountEvent); }