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); } }