private async Task <Guid> CreateExpense(V1.Commands.Create command) { var response = await post_to_sut_api_with_response <V1.Commands.Create, V1.Commands.CreateResponse>( "api/v1/expenses/create", command); return(response.ExpenseId); }
public async Task <V1.Commands.CreateResponse> CreateExpense( [FromBody] V1.Commands.Create command) { var expenseId = Guid.NewGuid(); await _bus.Send(new V1.Messages.CreateExpenseCommand() { Title = command.Title, Date = command.Date, Id = expenseId, TotalAmountInPLN = command.TotalAmountInPLN }); return(new V1.Commands.CreateResponse() { ExpenseId = expenseId }); }
public async Task can_create_expense(V1.Commands.Create createCommand) { var plnToEurExchangeRate = 0.22m; ExchangeServiceApi.start_with(plnToEurExchangeRate); var id = await CreateExpense(createCommand); await assert_message_in_queue <V1.Messages.ExpenseCreatedEvent>( x => x.Id.Should().Be(id)); var result = await GetSingleExpenseFromAPI(id); result.Should().BeEquivalentTo(new V1.Queries.Expense() { Id = id, Date = createCommand.Date, Title = createCommand.Title, TotalAmountInPLN = createCommand.TotalAmountInPLN, TotalAmountInEUR = createCommand.TotalAmountInPLN * plnToEurExchangeRate }); }