public void Configure_ShouldSetPropertiesAsExpected() { const decimal amount = 100; var date = DateTime.Today.AddDays(1); const string comments = "something"; var incomeAccount = new IncomeAccount(); var assetAccount = new AssetAccount(); var transaction = new IncomeTransaction(); transaction.Configure(amount) .ForDate(date) .WithComments(comments) .IncomeAccount(incomeAccount) .AccountToDebit(assetAccount); Assert.That(transaction.Date, Is.EqualTo(date)); Assert.That(transaction.Comments, Is.EqualTo(comments)); Assert.That(transaction.Entries.Count, Is.EqualTo(2)); Assert.That(transaction.Entries.Any(x => (x.Amount == amount) && (x.Type == EntryType.Credit) && (x.Account == incomeAccount)), Is.True); Assert.That(transaction.Entries.Any(x => (x.Amount == amount) && (x.Type == EntryType.Debit) && (x.Account == assetAccount)), Is.True); }
public void Edit_ShouldReturnViewWithModel() { var incomeAccount1 = new IncomeAccount(); var incomeAccount2 = new IncomeAccount(); var assetAccount1 = new AssetAccount(); var assetAccount2 = new AssetAccount(); var accounts = new Account[] { incomeAccount1, incomeAccount2, assetAccount1, assetAccount2 }; const string comments = "something"; const decimal amount = 100; var date = DateTime.Today.AddDays(1); var IncomeTransaction = new IncomeTransaction(); IncomeTransaction.Configure(amount) .ForDate(date) .WithComments(comments) .IncomeAccount(incomeAccount2) .AccountToDebit(assetAccount2); _repository.Stub(x => x.Find<IncomeTransaction>(IncomeTransaction.Id)).Return(IncomeTransaction); _repository.Stub(x => x.Get<Account>()).Repeat.Times(2).Return(accounts); var controller = GetController(); var result = (ViewResult)controller.Edit(IncomeTransaction.Id); Assert.That(result.ViewName, Is.EqualTo("Edit")); var viewModel = (EditModel)result.Model; Assert.That(viewModel.Id, Is.EqualTo(IncomeTransaction.Id)); Assert.That(viewModel.IncomeAccounts.Count(), Is.EqualTo(2)); Assert.That(viewModel.IncomeAccounts.Any(x => x.Id == incomeAccount1.Id), Is.True); Assert.That(viewModel.IncomeAccounts.Any(x => x.Id == incomeAccount2.Id), Is.True); Assert.That(viewModel.SelectedIncomeAccountId, Is.EqualTo(incomeAccount2.Id)); Assert.That(viewModel.AssetAccounts.Count(), Is.EqualTo(2)); Assert.That(viewModel.AssetAccounts.Any(x => x.Id == assetAccount1.Id), Is.True); Assert.That(viewModel.AssetAccounts.Any(x => x.Id == assetAccount2.Id), Is.True); Assert.That(viewModel.SelectedAssetAccountId, Is.EqualTo(assetAccount2.Id)); Assert.That(viewModel.Date, Is.EqualTo(date)); Assert.That(viewModel.Amount, Is.EqualTo(amount)); Assert.That(viewModel.Comments, Is.EqualTo(comments)); }