예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
 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());
 }