public async Task CreateAccount_WhenCalledWithAccountingNumberForExistingAccounting_ReturnsPartialViewResultWhereModelIsAccountViewModelWithCreditInfosContainingDataForNextYear() { Controller sut = CreateSut(); PartialViewResult result = (PartialViewResult)await sut.CreateAccount(_fixture.Create <int>()); AccountViewModel accountViewModel = (AccountViewModel)result.Model; short nextYear = (short)(DateTime.Today.Year + 1); short currentMonth = (short)DateTime.Today.Month; if (currentMonth == 1) { Assert.That(accountViewModel.CreditInfos.ContainsKey(nextYear), Is.False); return; } Assert.That(accountViewModel.CreditInfos.ContainsKey(nextYear), Is.True); CreditInfoCollectionViewModel creditInfoCollectionViewModel = accountViewModel.CreditInfos[nextYear]; Assert.That(creditInfoCollectionViewModel, Is.Not.Null); Assert.That(creditInfoCollectionViewModel.Count, Is.EqualTo(currentMonth - 1)); for (short month = 1; month < currentMonth; month++) { CreditInfoViewModel creditInfoViewModel = creditInfoCollectionViewModel.Single(m => m.Year == nextYear && m.Month == month); Assert.That(creditInfoViewModel.EditMode, Is.EqualTo(EditMode.Create)); Assert.That(creditInfoViewModel.Credit, Is.EqualTo(0M)); Assert.That(creditInfoViewModel.Balance, Is.EqualTo(0M)); Assert.That(creditInfoViewModel.Available, Is.EqualTo(0M)); } }
public async Task CreateAccount_WhenCalledWithAccountingNumberForExistingAccounting_ReturnsPartialViewResultWhereModelIsAccountViewModel() { Controller sut = CreateSut(); PartialViewResult result = (PartialViewResult)await sut.CreateAccount(_fixture.Create <int>()); Assert.That(result.Model, Is.TypeOf <AccountViewModel>()); }
public async Task CreateAccount_WhenCalledWithAccountingNumber_AssertQueryAsyncWasCalledOnQueryBusWithEmptyQueryForAccountGroupCollection() { Controller sut = CreateSut(); await sut.CreateAccount(_fixture.Create <int>()); _queryBusMock.Verify(m => m.QueryAsync <EmptyQuery, IEnumerable <IAccountGroup> >(It.IsNotNull <EmptyQuery>()), Times.Once); }
public async Task CreateAccount_WhenCalledWithAccountingNumberForExistingAccounting_ReturnsPartialViewResult() { Controller sut = CreateSut(); IActionResult result = await sut.CreateAccount(_fixture.Create <int>()); Assert.That(result, Is.TypeOf <PartialViewResult>()); }
public async Task CreateAccount_WhenCalledWithAccountingNumberForExistingAccounting_ReturnsPartialViewResultWhereViewNameIsEqualToEditAccountPartial() { Controller sut = CreateSut(); PartialViewResult result = (PartialViewResult)await sut.CreateAccount(_fixture.Create <int>()); Assert.That(result.ViewName, Is.EqualTo("_EditAccountPartial")); }
public async Task CreateAccount_WhenCalledWithAccountingNumberForNonExistingAccounting_ReturnsBadRequestResult() { Controller sut = CreateSut(false); IActionResult result = await sut.CreateAccount(_fixture.Create <int>()); Assert.That(result, Is.TypeOf <BadRequestResult>()); }
public async Task CreateAccount_WhenCalledWithAccountingNumberForExistingAccounting_ReturnsNotNull() { Controller sut = CreateSut(); IActionResult result = await sut.CreateAccount(_fixture.Create <int>()); Assert.That(result, Is.Not.Null); }
public async Task CreateAccount_WhenCalledWithAccountingNumber_AssertQueryAsyncWasCalledOnQueryBusWithGetAccountingQuery() { Controller sut = CreateSut(); int accountingNumber = _fixture.Create <int>(); await sut.CreateAccount(accountingNumber); _queryBusMock.Verify(m => m.QueryAsync <IGetAccountingQuery, IAccounting>(It.Is <IGetAccountingQuery>(query => query != null && query.AccountingNumber == accountingNumber)), Times.Once); }
public async Task CreateAccount_WhenAccountViewModelIsValid_ReturnsRedirectToActionResult() { Controller sut = CreateSut(); AccountViewModel accountViewModel = CreateAccountViewModel(); IActionResult result = await sut.CreateAccount(accountViewModel); Assert.That(result, Is.TypeOf <RedirectToActionResult>()); }
public async Task CreateAccount_WhenAccountViewModelIsValid_ReturnsRedirectToActionResultWhereActionNameIsEqualToAccountings() { Controller sut = CreateSut(); AccountViewModel accountViewModel = CreateAccountViewModel(); RedirectToActionResult result = (RedirectToActionResult)await sut.CreateAccount(accountViewModel); Assert.That(result.ActionName, Is.EqualTo("Accountings")); }
public async Task CreateAccount_WhenAccountViewModelIsValid_ReturnsRedirectToActionResultWhereRouteValuesIsNotNull() { Controller sut = CreateSut(); AccountViewModel accountViewModel = CreateAccountViewModel(); RedirectToActionResult result = (RedirectToActionResult)await sut.CreateAccount(accountViewModel); Assert.That(result.RouteValues, Is.Not.Null); }
public async Task CreateAccount_WhenAccountViewModelIsValid_ReturnsNotNull() { Controller sut = CreateSut(); AccountViewModel accountViewModel = CreateAccountViewModel(); IActionResult result = await sut.CreateAccount(accountViewModel); Assert.That(result, Is.Not.Null); }
public async Task CreateAccount_WhenCalledWithAccountingNumberForExistingAccounting_ReturnsPartialViewResultWhereModelIsAccountViewModelWithAccountGroupsNotEqualToNull() { Controller sut = CreateSut(); PartialViewResult result = (PartialViewResult)await sut.CreateAccount(_fixture.Create <int>()); AccountViewModel accountViewModel = (AccountViewModel)result.Model; Assert.That(accountViewModel.AccountGroups, Is.Not.Null); }
public async Task CreateAccount_WhenCalledWithAccountingNumberForExistingAccounting_ReturnsPartialViewResultWhereModelIsAccountViewModelWithEditModeEqualToCreate() { Controller sut = CreateSut(); PartialViewResult result = (PartialViewResult)await sut.CreateAccount(_fixture.Create <int>()); AccountViewModel accountViewModel = (AccountViewModel)result.Model; Assert.That(accountViewModel.EditMode, Is.EqualTo(EditMode.Create)); }
public async Task CreateAccount_WhenCalledWithAccountingNumberForExistingAccounting_ReturnsPartialViewResultWhereModelIsAccountViewModelWithValuesAtEndOfLastYearFromStatusDateEqualToNull() { Controller sut = CreateSut(); PartialViewResult result = (PartialViewResult)await sut.CreateAccount(_fixture.Create <int>()); AccountViewModel accountViewModel = (AccountViewModel)result.Model; Assert.That(accountViewModel.ValuesAtEndOfLastYearFromStatusDate, Is.Null); }
public async Task CreateAccount_WhenAccountViewModelIsValid_ReturnsRedirectToActionResultWhereRouteValuesContainsAccountingNumber() { Controller sut = CreateSut(); AccountViewModel accountViewModel = CreateAccountViewModel(); RedirectToActionResult result = (RedirectToActionResult)await sut.CreateAccount(accountViewModel); Assert.That(result.RouteValues.ContainsKey("accountingNumber"), Is.True); }
public async Task CreateAccount_WhenAccountViewModelIsValidWithCreditInfosOnlyContainingDataForYearToDate_AssertPublishAsyncWasCalledOnCommandBusWithCreateAccountCommandContainingCreditInfoCollectionWithCreditInfoForCurrentMonth() { Controller sut = CreateSut(); CreditInfoDictionaryViewModel creditInfoDictionaryViewModel = CreateCreditInfoDictionaryViewModel(CreateCreditInfoViewModelCollectionForYearToDate()); AccountViewModel accountViewModel = CreateAccountViewModel(creditInfoDictionaryViewModel: creditInfoDictionaryViewModel); await sut.CreateAccount(accountViewModel); _commandBusMock.Verify(m => m.PublishAsync(It.Is <ICreateAccountCommand>(command => command != null && command.CreditInfoCollection.All(creditInfo => creditInfo.Year == (short)DateTime.Today.Year && creditInfo.Month == (short)DateTime.Today.Month))), Times.Once); }
public async Task CreateAccount_WhenAccountViewModelIsValidWithCreditInfosOnlyContainingDataForLastYear_AssertPublishAsyncWasCalledOnCommandBusWithCreateAccountCommandContainingEmptyCreditInfoCollection() { Controller sut = CreateSut(); CreditInfoDictionaryViewModel creditInfoDictionaryViewModel = CreateCreditInfoDictionaryViewModel(CreateCreditInfoViewModelCollectionForLastYear()); AccountViewModel accountViewModel = CreateAccountViewModel(creditInfoDictionaryViewModel: creditInfoDictionaryViewModel); await sut.CreateAccount(accountViewModel); _commandBusMock.Verify(m => m.PublishAsync(It.Is <ICreateAccountCommand>(command => command != null && command.CreditInfoCollection.Any() == false)), Times.Once); }
public async Task CreateAccount_WhenAccountViewModelIsValid_AssertPublishAsyncWasCalledOnCommandBusWithCreateAccountCommandContainingAccountNumberFromAccountViewModel() { Controller sut = CreateSut(); string accountNumber = _fixture.Create <string>(); AccountViewModel accountViewModel = CreateAccountViewModel(accountNumber: accountNumber); await sut.CreateAccount(accountViewModel); _commandBusMock.Verify(m => m.PublishAsync(It.Is <ICreateAccountCommand>(command => command != null && string.CompareOrdinal(command.AccountNumber, accountNumber.ToUpper()) == 0)), Times.Once); }
public async Task CreateAccount_WhenCalledWithAccountingNumberForExistingAccounting_ReturnsPartialViewResultWhereModelIsAccountViewModelWithAccountGroupsMatchingAccountGroupCollectionFromQueryBus() { IEnumerable <IAccountGroup> accountGroupCollection = _fixture.CreateMany <IAccountGroup>(_random.Next(5, 10)).ToArray(); Controller sut = CreateSut(accountGroupCollection: accountGroupCollection); PartialViewResult result = (PartialViewResult)await sut.CreateAccount(_fixture.Create <int>()); AccountViewModel accountViewModel = (AccountViewModel)result.Model; Assert.That(accountGroupCollection.All(accountGroup => accountViewModel.AccountGroups.SingleOrDefault(m => m.Number == accountGroup.Number) != null), Is.True); }
public async Task CreateAccount_WhenAccountViewModelIsValidWithNote_AssertPublishAsyncWasCalledOnCommandBusWithCreateAccountCommandContainingNoteFromAccountViewModel() { Controller sut = CreateSut(); string note = _fixture.Create <string>(); AccountViewModel accountViewModel = CreateAccountViewModel(note: note); await sut.CreateAccount(accountViewModel); _commandBusMock.Verify(m => m.PublishAsync(It.Is <ICreateAccountCommand>(command => command != null && string.CompareOrdinal(command.Note, note) == 0)), Times.Once); }
public async Task CreateAccount_WhenAccountViewModelIsValid_ReturnsRedirectToActionResultWhereRouteValuesContainsAccountingNumberWithAccountingNumberFromAccountViewModel() { Controller sut = CreateSut(); int accountingNumber = _fixture.Create <int>(); AccountingIdentificationViewModel accountingIdentificationViewModel = CreateAccountingIdentificationViewModel(accountingNumber); AccountViewModel accountViewModel = CreateAccountViewModel(accountingIdentificationViewModel); RedirectToActionResult result = (RedirectToActionResult)await sut.CreateAccount(accountViewModel); Assert.That(result.RouteValues["accountingNumber"], Is.EqualTo(accountingNumber)); }
public async Task CreateAccount_WhenAccountViewModelIsValid_AssertPublishAsyncWasCalledOnCommandBusWithCreateAccountCommandContainingAccountingNumberFromAccountViewModel() { Controller sut = CreateSut(); int accountingNumber = _fixture.Create <int>(); AccountingIdentificationViewModel accountingIdentificationViewModel = CreateAccountingIdentificationViewModel(accountingNumber); AccountViewModel accountViewModel = CreateAccountViewModel(accountingIdentificationViewModel); await sut.CreateAccount(accountViewModel); _commandBusMock.Verify(m => m.PublishAsync(It.Is <ICreateAccountCommand>(command => command != null && command.AccountingNumber == accountingNumber)), Times.Once); }
public async Task CreateAccount_WhenCalledWithAccountingNumberForExistingAccounting_ReturnsPartialViewResultWhereModelIsAccountViewModelWithAccountingMatchingAccountingFromQueryBus() { int accountingNumber = _fixture.Create <int>(); IAccounting accounting = _fixture.BuildAccountingMock(accountingNumber).Object; Controller sut = CreateSut(accounting: accounting); PartialViewResult result = (PartialViewResult)await sut.CreateAccount(_fixture.Create <int>()); AccountViewModel accountViewModel = (AccountViewModel)result.Model; Assert.That(accountViewModel.Accounting.AccountingNumber, Is.EqualTo(accountingNumber)); }
public async Task CreateAccount_WhenAccountViewModelIsValidWithoutNote_AssertPublishAsyncWasCalledOnCommandBusWithCreateAccountCommandWhereNoteIsEqualToNull() { Controller sut = CreateSut(); AccountViewModel accountViewModel = CreateAccountViewModel(hasNote: false); await sut.CreateAccount(accountViewModel); // ReSharper disable MergeIntoPattern _commandBusMock.Verify(m => m.PublishAsync(It.Is <ICreateAccountCommand>(command => command != null && command.Note == null)), Times.Once); // ReSharper restore MergeIntoPattern }
public async Task CreateAccount_WhenAccountViewModelIsValid_AssertPublishAsyncWasCalledOnCommandBusWithCreateAccountCommandContainingCreditInfoCollectionNotEqualToNull() { Controller sut = CreateSut(); AccountViewModel accountViewModel = CreateAccountViewModel(); await sut.CreateAccount(accountViewModel); // ReSharper disable MergeIntoPattern _commandBusMock.Verify(m => m.PublishAsync(It.Is <ICreateAccountCommand>(command => command != null && command.CreditInfoCollection != null)), Times.Once); // ReSharper restore MergeIntoPattern }
public async Task CreateAccount_WhenAccountViewModelIsValidWithCreditInfosOnlyContainingDataForNext11Months_AssertPublishAsyncWasCalledOnCommandBusWithCreateAccountCommandContainingCreditInfoCollectionWithCreditInfoForNext11Months() { Controller sut = CreateSut(); CreditInfoViewModel[] creditInfoViewModelCollection = CreateCreditInfoViewModelCollectionForNext11Months().ToArray(); CreditInfoDictionaryViewModel creditInfoDictionaryViewModel = CreateCreditInfoDictionaryViewModel(creditInfoViewModelCollection); AccountViewModel accountViewModel = CreateAccountViewModel(creditInfoDictionaryViewModel: creditInfoDictionaryViewModel); await sut.CreateAccount(accountViewModel); _commandBusMock.Verify(m => m.PublishAsync(It.Is <ICreateAccountCommand>(command => command != null && command.CreditInfoCollection.All(creditInfo => creditInfoViewModelCollection.SingleOrDefault(creditInfoViewModel => creditInfoViewModel.Year == creditInfo.Year && creditInfoViewModel.Month == creditInfo.Month) != null))), Times.Once); }
public void CreateAccount_WhenAccountViewModelIsInvalid_ThrowsIntranetSystemExceptionWhereInnerExceptionIsNull() { Controller sut = CreateSut(false); IntranetSystemException result = Assert.ThrowsAsync <IntranetSystemException>(async() => await sut.CreateAccount(CreateAccountViewModel())); // ReSharper disable PossibleNullReferenceException Assert.That(result.InnerException, Is.Null); // ReSharper restore PossibleNullReferenceException }
public void CreateAccount_WhenAccountViewModelIsInvalid_ThrowsIntranetSystemExceptionWhereMessageEndsWithErrorMessagesFromModelState() { string errorMessage = _fixture.Create <string>(); Controller sut = CreateSut(false, errorMessage: errorMessage); IntranetSystemException result = Assert.ThrowsAsync <IntranetSystemException>(async() => await sut.CreateAccount(CreateAccountViewModel())); // ReSharper disable PossibleNullReferenceException Assert.That(result.Message.EndsWith(errorMessage), Is.True); // ReSharper restore PossibleNullReferenceException }
public void CreateAccount_WhenAccountViewModelIsInvalid_ThrowsIntranetSystemExceptionWhereErrorCodeIsEqualToInternalError() { Controller sut = CreateSut(false); IntranetSystemException result = Assert.ThrowsAsync <IntranetSystemException>(async() => await sut.CreateAccount(CreateAccountViewModel())); // ReSharper disable PossibleNullReferenceException Assert.That(result.ErrorCode, Is.EqualTo(ErrorCode.InternalError)); // ReSharper restore PossibleNullReferenceException }