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() }; }
public CotacaoDeMaterialAtualizarController(IAtualizadorDeCotacaoDeMaterial atualizadorDeCotacao) { _atualizadorDeCotacao = atualizadorDeCotacao; }