public async Task CreateDepositiveExpenditure()
        {
            var command = new DepositToExistingAccountCommand
            {
                UserId          = new Guid("05541516-ccf1-41f4-b6ac-b2aa7d807b8c"),
                CultureId       = new Guid("b295e0bc-96e9-41b2-9973-8fed2ce25599"),
                Amount          = 1000,
                AccountId       = new Guid("714b19c9-7c5b-47f9-9a99-46639db1595d"),
                Description     = "Description",
                ExpenditureDate = DateTime.Today
            };

            _db.Setup(x => x.SaveChangesAsync()).ReturnsAsync(1);
            var result = await _handler.Execute(command);

            Assert.IsNotNull(result);

            Assert.AreEqual(result.EffectiveRows, 1);
            Assert.AreEqual(_expenditures.Count, 1);

            var expenditure = _expenditures.First();

            Assert.AreEqual(expenditure.AccountId, new Guid("714b19c9-7c5b-47f9-9a99-46639db1595d"));
            Assert.AreEqual(expenditure.Description, "Description");
            Assert.AreEqual(expenditure.ExpenditureDate, DateTime.Today);
            Assert.AreEqual(expenditure.Amount, 1000);
            Assert.AreEqual(expenditure.UserId, new Guid("05541516-ccf1-41f4-b6ac-b2aa7d807b8c"));
        }
        public async Task DontCreateExpenditureWithoutAccount()
        {
            var command = new DepositToExistingAccountCommand
            {
                UserId          = new Guid("05541516-ccf1-41f4-b6ac-b2aa7d807b8c"),
                CultureId       = new Guid("b295e0bc-96e9-41b2-9973-8fed2ce25599"),
                Amount          = 1000,
                AccountId       = Guid.NewGuid(),
                Description     = "Description",
                ExpenditureDate = DateTime.Today
            };

            _db.Setup(x => x.SaveChangesAsync()).ReturnsAsync(0);
            var result = await _handler.Execute(command);

            Assert.IsNotNull(result);

            Assert.AreEqual(result.EffectiveRows, 0);
        }
예제 #3
0
        public async Task <ExpenditureViewModel> Put(DepositToExistingAccountCommand command)
        {
            var result = await _commandDispatcher.Execute <DepositToExistingAccountCommand, DepositToExistingAccountCommand.Result>(command);

            var accounts = await _queryDispatcher.Execute <GetAccountQuery, GetAccountQuery.Result>(new GetAccountQuery
            {
                UserId    = command.UserId,
                CultureId = command.CultureId
            });

            var expenditures = await _queryDispatcher.Execute <GetExpenditureQuery, GetExpenditureQuery.Result>(new GetExpenditureQuery
            {
                UserId    = command.UserId,
                CultureId = command.CultureId
            });

            return(new ExpenditureViewModel
            {
                AccountPresentations = accounts.AccountPresentations,
                ExpenditurePresentations = expenditures.ExpenditurePresentations,
                EffectiveRows = result.EffectiveRows
            });
        }