Example #1
0
        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
            });
        }
Example #3
0
        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
            });
        }