public AtualizadorDeCotacaoTests()
        {
            _unitOfWorkMock         = CommonMocks.DefaultUnitOfWorkMock();
            _processoDeCotacao      = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialComCotacaoDoFornecedor();
            _processosDeCotacaoMock = new Mock <IProcessosDeCotacao>(MockBehavior.Strict);
            _processosDeCotacaoMock.Setup(x => x.Save(It.IsAny <ProcessoDeCotacao>()))
            .Callback(
                (ProcessoDeCotacao processoDeCotacao) =>
            {
                _unitOfWorkMock.Verify(x => x.BeginTransaction(), Times.Once());
                _unitOfWorkMock.Verify(x => x.Commit(), Times.Never());
                Assert.IsNotNull(processoDeCotacao);
                foreach (var fornecedorParticipante in processoDeCotacao.FornecedoresParticipantes)
                {
                    Assert.IsNotNull(fornecedorParticipante);
                }
            });

            _processosDeCotacaoMock.Setup(x => x.BuscaPorId(It.IsAny <int>()))
            .Returns(_processosDeCotacaoMock.Object)
            .Callback((int id) =>
            {
                _unitOfWorkMock.Verify(x => x.BeginTransaction(), Times.Once());
                _unitOfWorkMock.Verify(x => x.Commit(), Times.Never());
            });
            _processosDeCotacaoMock.Setup(x => x.Single())
            .Returns(_processoDeCotacao);

            _incotermsMock = new Mock <IIncoterms>(MockBehavior.Strict);
            _incotermsMock.Setup(x => x.BuscaPeloCodigo(It.IsAny <string>()))
            .Returns(_incotermsMock.Object)
            .Callback((string codigo) =>
            {
                _unitOfWorkMock.Verify(x => x.BeginTransaction(), Times.Once());
                _unitOfWorkMock.Verify(x => x.Commit(), Times.Never());
                _incotermRetorno = Incoterm.Codigo == codigo ? Incoterm : null;
            });
            _incotermsMock.Setup(x => x.Single())
            .Returns(() => _incotermRetorno);

            _condicoesDePagamentoMock = new Mock <ICondicoesDePagamento>(MockBehavior.Strict);
            _condicoesDePagamentoMock.Setup(x => x.BuscaPeloCodigo(It.IsAny <string>()))
            .Returns((string codigo) => codigo == CondicaoDePagamento.Codigo ? CondicaoDePagamento : null)
            .Callback((string codigo) =>
            {
                _unitOfWorkMock.Verify(x => x.BeginTransaction(), Times.Once());
                _unitOfWorkMock.Verify(x => x.Commit(), Times.Never());
            });

            _atualizadorDeCotacao = new AtualizadorDeCotacaoDeMaterial(_unitOfWorkMock.Object, _processosDeCotacaoMock.Object, _incotermsMock.Object, _condicoesDePagamentoMock.Object);


            _cotacaoAtualizarVm = new CotacaoMaterialInformarVm()
            {
                IdProcessoCotacao       = _processoDeCotacao.Id,
                CodigoFornecedor        = _processoDeCotacao.FornecedoresParticipantes.First().Fornecedor.Codigo,
                CodigoCondicaoPagamento = CondicaoDePagamento.Codigo,
                CodigoIncoterm          = Incoterm.Codigo,
                DescricaoIncoterm       = "Desc Incoterm",
            };

            _cotacaoItemAtualizarVm = new CotacaoMaterialItemInformarVm
            {
                IdProcessoCotacao     = _processoDeCotacao.Id,
                IdCotacao             = 0,
                IdProcessoCotacaoItem = _processoDeCotacao.Itens.First().Id,
                Preco = 110,
                Mva   = 0,
                QuantidadeDisponivel = 150,
                Impostos             = new CotacaoImpostosVm
                {
                    IcmsAliquota      = 17,
                    IcmsValor         = 12,
                    IcmsStAliquota    = 0,
                    IcmsStValor       = 0,
                    IpiAliquota       = 5,
                    IpiValor          = 4,
                    PisCofinsAliquota = 3
                },
                ObservacoesDoFornecedor = "observações do fornecedor",
                PrazoDeEntrega          = DateTime.Today.AddDays(15).ToShortDateString()
            };
        }
Exemplo n.º 2
0
 public CotacaoDeMaterialAtualizarController(IAtualizadorDeCotacaoDeMaterial atualizadorDeCotacao)
 {
     _atualizadorDeCotacao = atualizadorDeCotacao;
 }