Пример #1
0
        public async Task Deve_Adicionar_CadastrarFornecedorOutput_Corretamente_Quando_Fornecedor_Cadastrado()
        {
            var input          = CriarCadastrarFornecedorInput();
            var cnpj           = new CNPJ(input.CpfCnpj);
            var pessoaJuridica = _fornecedorFactory.NovaPessoaJuridica(input.Nome, input.CpfCnpj, null);
            var empresa        = _empresaFactory.NovaEmpresa("PR", "Engie", input.CpfCnpj);
            var fornecedor     = _fornecedorFactory.NovoFornecedor(empresa, pessoaJuridica);

            var outputMock = new CadastrarFornecedorOutput(fornecedor.Id, pessoaJuridica.Nome, pessoaJuridica.CNPJ.ToString(), pessoaJuridica.DataCadastro);
            var sut        = CriarSUT(fornecedorFactoryMock: _fornecedorFactoryMock);

            _empresaRepositorioMock.Setup(x => x.ObterEmpresa(input.EmpresaId)).Returns(Task.FromResult(empresa));
            _fornecedorFactoryMock.Setup(f => f.NovaPessoaJuridica(input.Nome, input.CpfCnpj, new List <string>())).Returns(pessoaJuridica);
            _fornecedorFactoryMock.Setup(f => f.NovoFornecedor(empresa, pessoaJuridica)).Returns(fornecedor);
            _outputPortMock.Setup(p => p.Valid).Returns(true);

            CadastrarFornecedorOutput result = null;

            _outputPortMock.Setup(presenter => presenter.AddResult(It.IsAny <CadastrarFornecedorOutput>()))
            .Callback((CadastrarFornecedorOutput r) => result = r);

            await sut.Execute(input);

            Assert.Equal(outputMock.Id, result?.Id);
            Assert.Equal(outputMock.CpfCnpj, result?.CpfCnpj);
            Assert.Equal(outputMock.Nome, result?.Nome);
            Assert.Equal(outputMock.DataCadastro, result?.DataCadastro);
        }
        public async Task Deve_Adicionar_CadastrarEmpresaOutput_Corretamente_Se_Empresa_Cadastrada_Com_Sucesso()
        {
            var input   = new CadastrarEmpresaInput("any_uf", "any_empresa", "33.194.965/0001-11");
            var empresa = _empresaFactory.NovaEmpresa(input.UF, input.NomeFantasia, input.CNPJ);

            _empresaFactoryMock.Setup(f => f.NovaEmpresa(input.UF, input.NomeFantasia, input.CNPJ)).Returns(empresa);

            CadastrarEmpresaOutput result = null;

            _empresaPresenterMock.Setup(presenter => presenter.AddResult(It.IsAny <CadastrarEmpresaOutput>()))
            .Callback((CadastrarEmpresaOutput r) => result = r);

            var sut = CriarSUT(empresaFactoryMock: _empresaFactoryMock);
            await sut.Execute(input);

            Assert.Equal(empresa.Id, result?.Id);
            Assert.Equal(empresa.UF, result?.UF);
            Assert.Equal(empresa.NomeFantasia, result?.NomeFantasia);
            Assert.Equal(empresa.CNPJ.ToString(), result?.CNPJ);
        }
Пример #3
0
        public async Task Execute(CadastrarEmpresaInput input)
        {
            var empresa = _empresaFactory.NovaEmpresa(input.UF, input.NomeFantasia, input.CNPJ);

            if (empresa.Invalido)
            {
                _outputPort.AddNotifications(empresa.Notificacoes);
                return;
            }

            if (await _empresaRepositorio.EmpresaJaCadastrada(empresa.CNPJ))
            {
                _outputPort.AddNotification("CNPJ já cadastrado");
                return;
            }

            await _empresaRepositorio.Save(empresa).ConfigureAwait(false);

            await _unitOfWork.Commit();

            _outputPort.AddResult(new CadastrarEmpresaOutput(empresa.Id, empresa.UF, empresa.NomeFantasia, empresa.CNPJ.ToString()));
        }