public async Task CreateBudgetAccount_WhenBudgetAccountViewModelIsValidWithBudgetInfosOnlyContainingDataForYearToDate_AssertPublishAsyncWasCalledOnCommandBusWithCreateBudgetAccountCommandContainingBudgetInfoCollectionWithOneBudgetInfo() { Controller sut = CreateSut(); BudgetInfoDictionaryViewModel budgetInfoDictionaryViewModel = CreateBudgetInfoDictionaryViewModel(CreateBudgetInfoViewModelCollectionForYearToDate()); BudgetAccountViewModel budgetAccountViewModel = CreateBudgetAccountViewModel(budgetInfoDictionaryViewModel: budgetInfoDictionaryViewModel); await sut.CreateBudgetAccount(budgetAccountViewModel); _commandBusMock.Verify(m => m.PublishAsync(It.Is <ICreateBudgetAccountCommand>(command => command != null && command.BudgetInfoCollection.Count() == 1)), Times.Once); }
public async Task CreateBudgetAccount_WhenBudgetAccountViewModelIsValidWithBudgetInfosOnlyContainingDataForYearToDate_AssertPublishAsyncWasCalledOnCommandBusWithCreateBudgetAccountCommandContainingBudgetInfoCollectionWithBudgetInfoForCurrentMonth() { Controller sut = CreateSut(); BudgetInfoDictionaryViewModel budgetInfoDictionaryViewModel = CreateBudgetInfoDictionaryViewModel(CreateBudgetInfoViewModelCollectionForYearToDate()); BudgetAccountViewModel budgetAccountViewModel = CreateBudgetAccountViewModel(budgetInfoDictionaryViewModel: budgetInfoDictionaryViewModel); await sut.CreateBudgetAccount(budgetAccountViewModel); _commandBusMock.Verify(m => m.PublishAsync(It.Is <ICreateBudgetAccountCommand>(command => command != null && command.BudgetInfoCollection.All(budgetInfo => budgetInfo.Year == (short)DateTime.Today.Year && budgetInfo.Month == (short)DateTime.Today.Month))), Times.Once); }
public async Task UpdateBudgetAccount_WhenBudgetAccountViewModelIsValidWithBudgetInfosOnlyContainingDataForLastYear_AssertPublishAsyncWasCalledOnCommandBusWithUpdateBudgetAccountCommandContainingEmptyBudgetInfoCollection() { Controller sut = CreateSut(); BudgetInfoDictionaryViewModel budgetInfoDictionaryViewModel = CreateBudgetInfoDictionaryViewModel(CreateBudgetInfoViewModelCollectionForLastYear()); BudgetAccountViewModel budgetAccountViewModel = CreateBudgetAccountViewModel(budgetInfoDictionaryViewModel: budgetInfoDictionaryViewModel); await sut.UpdateBudgetAccount(budgetAccountViewModel); _commandBusMock.Verify(m => m.PublishAsync(It.Is <IUpdateBudgetAccountCommand>(command => command != null && command.BudgetInfoCollection.Any() == false)), Times.Once); }
public async Task CreateBudgetAccount_WhenBudgetAccountViewModelIsValidWithBudgetInfosOnlyContainingDataForNext11Months_AssertPublishAsyncWasCalledOnCommandBusWithCreateBudgetAccountCommandContainingBudgetInfoCollectionWithBudgetInfoForNext11Months() { Controller sut = CreateSut(); BudgetInfoViewModel[] budgetInfoViewModelCollection = CreateBudgetInfoViewModelCollectionForNext11Months().ToArray(); BudgetInfoDictionaryViewModel budgetInfoDictionaryViewModel = CreateBudgetInfoDictionaryViewModel(budgetInfoViewModelCollection); BudgetAccountViewModel budgetAccountViewModel = CreateBudgetAccountViewModel(budgetInfoDictionaryViewModel: budgetInfoDictionaryViewModel); await sut.CreateBudgetAccount(budgetAccountViewModel); _commandBusMock.Verify(m => m.PublishAsync(It.Is <ICreateBudgetAccountCommand>(command => command != null && command.BudgetInfoCollection.All(budgetInfo => budgetInfoViewModelCollection.SingleOrDefault(budgetInfoViewModel => budgetInfoViewModel.Year == budgetInfo.Year && budgetInfoViewModel.Month == budgetInfo.Month) != null))), Times.Once); }
private BudgetAccountViewModel CreateBudgetAccountViewModel(AccountingIdentificationViewModel accountingIdentificationViewModel = null, string accountNumber = null, string accountName = null, bool hasDescription = true, string description = null, bool hasNote = true, string note = null, BudgetAccountGroupViewModel budgetAccountGroupViewModel = null, BudgetInfoDictionaryViewModel budgetInfoDictionaryViewModel = null) { return(_fixture.Build <BudgetAccountViewModel>() .With(m => m.Accounting, accountingIdentificationViewModel ?? CreateAccountingIdentificationViewModel()) .With(m => m.AccountNumber, accountNumber ?? _fixture.Create <string>()) .With(m => m.AccountName, accountName ?? _fixture.Create <string>()) .With(m => m.Description, hasDescription ? description ?? _fixture.Create <string>() : null) .With(m => m.Note, hasNote ? note ?? _fixture.Create <string>() : null) .With(m => m.BudgetAccountGroup, budgetAccountGroupViewModel ?? CreateBudgetAccountGroupViewModel()) .With(m => m.BudgetInfos, budgetInfoDictionaryViewModel ?? CreateBudgetInfoDictionaryViewModel()) .Create()); }