Пример #1
0
        public async Task CreateBudgetAccount_WhenCalledWithAccountingNumberForExistingAccounting_ReturnsPartialViewResultWhereModelIsBudgetAccountViewModelWithBudgetInfosContainingDataForNextYear()
        {
            Controller sut = CreateSut();

            PartialViewResult result = (PartialViewResult)await sut.CreateBudgetAccount(_fixture.Create <int>());

            BudgetAccountViewModel budgetAccountViewModel = (BudgetAccountViewModel)result.Model;

            short nextYear     = (short)(DateTime.Today.Year + 1);
            short currentMonth = (short)DateTime.Today.Month;

            if (currentMonth == 1)
            {
                Assert.That(budgetAccountViewModel.BudgetInfos.ContainsKey(nextYear), Is.False);

                return;
            }

            Assert.That(budgetAccountViewModel.BudgetInfos.ContainsKey(nextYear), Is.True);

            BudgetInfoCollectionViewModel budgetInfoCollectionViewModel = budgetAccountViewModel.BudgetInfos[nextYear];

            Assert.That(budgetInfoCollectionViewModel, Is.Not.Null);
            Assert.That(budgetInfoCollectionViewModel.Count, Is.EqualTo(currentMonth - 1));
            for (short month = 1; month < currentMonth; month++)
            {
                BudgetInfoViewModel budgetInfoViewModel = budgetInfoCollectionViewModel.Single(m => m.Year == nextYear && m.Month == month);
                Assert.That(budgetInfoViewModel.EditMode, Is.EqualTo(EditMode.Create));
                Assert.That(budgetInfoViewModel.Income, Is.EqualTo(0M));
                Assert.That(budgetInfoViewModel.Expenses, Is.EqualTo(0M));
                Assert.That(budgetInfoViewModel.Budget, Is.EqualTo(0M));
                Assert.That(budgetInfoViewModel.Posted, Is.EqualTo(0M));
                Assert.That(budgetInfoViewModel.Available, Is.EqualTo(0M));
            }
        }
        public async Task UpdateBudgetAccount_WhenCalledWithAccountingNumberAndAccountNumberForExistingBudgetAccount_ReturnsPartialViewResultWhereModelIsBudgetAccountViewModelWithBudgetInfosContainingDataFromBudgetInfoCollectionOnBudgetAccountFromQueryBus()
        {
            IBudgetInfo[]         budgetInfos          = _fixture.BuildBudgetInfoCollectionMock().Object.ToArray();
            IBudgetInfoCollection budgetInfoCollection = _fixture.BuildBudgetInfoCollectionMock(budgetInfoCollection: budgetInfos).Object;
            IBudgetAccount        budgetAccount        = _fixture.BuildBudgetAccountMock(budgetInfoCollection: budgetInfoCollection).Object;
            Controller            sut = CreateSut(budgetAccount: budgetAccount);

            PartialViewResult result = (PartialViewResult)await sut.UpdateBudgetAccount(_fixture.Create <int>(), _fixture.Create <string>());

            BudgetAccountViewModel budgetAccountViewModel = (BudgetAccountViewModel)result.Model;

            foreach (IGrouping <short, IBudgetInfo> group in budgetInfos.GroupBy(budgetInfo => budgetInfo.Year))
            {
                Assert.That(budgetAccountViewModel.BudgetInfos.ContainsKey(group.Key), Is.True);

                BudgetInfoCollectionViewModel budgetInfoCollectionViewModel = budgetAccountViewModel.BudgetInfos[group.Key];
                Assert.That(budgetInfoCollectionViewModel, Is.Not.Null);
                Assert.That(budgetInfoCollectionViewModel.All(budgetInfoViewModel => group.SingleOrDefault(m => m.Month == budgetInfoViewModel.Month) != null), Is.True);
            }
        }