public async Task <Result <EntityId> > Handle(OpenBankAccountCommand command) { var newBankAccount = new BankAccount(); newBankAccount.Open(command.Name); await entityStore.Save(newBankAccount); return(Result <EntityId> .Ok(newBankAccount.Id)); }
public async void WhenAOpenAccountCommandIsSentOnTheCommandBus_ThenTheCorrectHandlerShouldBeCalled() { var command = new OpenBankAccountCommand { Name = "Jane Doe" }; await commandBus.Handle(command); mockOpenBankAccountHandler.Verify(mock => mock.Handle(command)); }
public async void ShouldOpenBankAccountAndSaveEntity() { var entityStore = new Mock <IEntityStore>(); var handler = new OpenBankAccountHandler(entityStore.Object); var command = new OpenBankAccountCommand { Name = "Bob Smith" }; await handler.Handle(command); entityStore.Verify(m => m.Save(It.IsAny <BankAccount>())); }
public async void ShouldReturnAccountIdOnSuccess() { var entityStore = new Mock <IEntityStore>(); var handler = new OpenBankAccountHandler(entityStore.Object); var command = new OpenBankAccountCommand { Name = "Jane Smith" }; var result = await handler.Handle(command); result.Success.Should().Be(true); result.Value.Value.GetType().Should().Be(typeof(Guid)); }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = "account")] HttpRequest req, ILogger log) { var validationResult = await req.ValidateRequest <CreateAccountRequest, CreateAccountRequestValidator>(); if (!validationResult.IsValid) { log.LogInformation("Invalid request."); return(validationResult.ToBadRequest()); } var validatedRequest = validationResult.Value; var command = new OpenBankAccountCommand { Name = validatedRequest.Name }; var result = await commandBus.Handle(command); return(new OkObjectResult(new CreateAccountResponse(result.Value.Value))); }