public void ExecuteAsync_WhenCommandIsNull_ThrowsArgumentNullException()
        {
            CommandHandler sut = CreateSut();

            ArgumentNullException result = Assert.ThrowsAsync<ArgumentNullException>(async () => await sut.ExecuteAsync(null));

            Assert.That(result.ParamName, Is.EqualTo("command"));
        }
        public async Task ExecuteAsync_WhenCalled_AssertToDomainWasCalledOnCreateBudgetAccountCommand()
        {
            CommandHandler sut = CreateSut();

            Mock<ICreateBudgetAccountCommand> commandMock = CreateCommandMock();
            await sut.ExecuteAsync(commandMock.Object);

            commandMock.Verify(m => m.ToDomain(It.Is<IAccountingRepository>(value => value == _accountingRepositoryMock.Object)), Times.Once);
        }
        public async Task ExecuteAsync_WhenCalled_AssertCreateBudgetAccountAsyncWasCalledOnAccountingRepository()
        {
            CommandHandler sut = CreateSut();

            IBudgetAccount budgetAccount = _fixture.BuildBudgetAccountMock().Object;
            ICreateBudgetAccountCommand command = CreateCommand(budgetAccount);
            await sut.ExecuteAsync(command);

            _accountingRepositoryMock.Verify(m => m.CreateBudgetAccountAsync(It.Is<IBudgetAccount>(value => value == budgetAccount)), Times.Once);
        }