Exemplo n.º 1
0
        public async Task CreateContactAccount_WhenCalledWithAccountingNumberForExistingAccounting_ReturnsPartialViewResultWhereModelIsContactAccountViewModelWithBalanceInfosContainingDataForNextYear()
        {
            Controller sut = CreateSut();

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

            ContactAccountViewModel contactAccountViewModel = (ContactAccountViewModel)result.Model;

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

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

                return;
            }

            Assert.That(contactAccountViewModel.BalanceInfos.ContainsKey(nextYear), Is.True);

            BalanceInfoCollectionViewModel balanceInfoCollectionViewModel = contactAccountViewModel.BalanceInfos[nextYear];

            Assert.That(balanceInfoCollectionViewModel, Is.Not.Null);
            Assert.That(balanceInfoCollectionViewModel.Count, Is.EqualTo(currentMonth - 1));
            for (short month = 1; month < currentMonth; month++)
            {
                BalanceInfoViewModel balanceInfoViewModel = balanceInfoCollectionViewModel.Single(m => m.Year == nextYear && m.Month == month);
                Assert.That(balanceInfoViewModel.EditMode, Is.EqualTo(EditMode.Create));
                Assert.That(balanceInfoViewModel.Balance, Is.EqualTo(0M));
            }
        }
        public async Task UpdateContactAccount_WhenCalledWithAccountingNumberAndAccountNumberForExistingContactAccount_ReturnsPartialViewResultWhereModelIsContactAccountViewModelWithBalanceInfosContainingDataFromContactInfoCollectionOnContactAccountFromQueryBus()
        {
            IContactInfo[]         contactInfos          = _fixture.BuildContactInfoCollectionMock().Object.ToArray();
            IContactInfoCollection contactInfoCollection = _fixture.BuildContactInfoCollectionMock(contactInfoCollection: contactInfos).Object;
            IContactAccount        contactAccount        = _fixture.BuildContactAccountMock(contactInfoCollection: contactInfoCollection).Object;
            Controller             sut = CreateSut(contactAccount: contactAccount);

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

            ContactAccountViewModel contactAccountViewModel = (ContactAccountViewModel)result.Model;

            foreach (IGrouping <short, IContactInfo> group in contactInfos.GroupBy(contactInfo => contactInfo.Year))
            {
                Assert.That(contactAccountViewModel.BalanceInfos.ContainsKey(group.Key), Is.True);

                BalanceInfoCollectionViewModel balanceInfoCollectionViewModel = contactAccountViewModel.BalanceInfos[group.Key];
                Assert.That(balanceInfoCollectionViewModel, Is.Not.Null);
                Assert.That(balanceInfoCollectionViewModel.All(balanceInfoViewModel => group.SingleOrDefault(m => m.Month == balanceInfoViewModel.Month) != null), Is.True);
            }
        }