public void QuandoBloqueioRequisicaoDeCompraComSucessoOcorrePersistencia()
        {
            var alterador = new AlteradorDeRequisicaoDeCompra(_unitOfWorkMock.Object, _requisicoesDeCompraMock.Object, _processosDeCotacaoDeMaterialMock.Object);

            alterador.Bloquear(10);
            CommonVerifications.VerificaCommitDeTransacao(_unitOfWorkMock);
        }
        public void NaoDevePermtirBloquearUmaRequisicaDeCompraQueJaEstejaVinculadaComUmProcessoDeCotacaoDeMateriais()
        {
            //configuro count para retornar 1. Com isso consulta que verifica o número de processo vinculados a requisicaodecompra retorna 1.
            _processosDeCotacaoDeMaterialMock.Setup(x => x.Count()).Returns(1);
            var alterador = new AlteradorDeRequisicaoDeCompra(_unitOfWorkMock.Object, _requisicoesDeCompraMock.Object, _processosDeCotacaoDeMaterialMock.Object);

            alterador.Bloquear(10);
            _processosDeCotacaoDeMaterialMock.Verify(x => x.Count(), Times.Once());
            CommonVerifications.VerificaRollBackDeTransacao(_unitOfWorkMock);
        }
        public void QuandoBloqueioRequisicaoDeCompraFicaBloqueada()
        {
            _requisicoesDeCompraMock.Setup(x => x.Save(It.IsAny <RequisicaoDeCompra>()))
            .Callback((RequisicaoDeCompra req) => Assert.AreEqual(Enumeradores.StatusRequisicaoCompra.Bloqueado, req.Status));

            var alterador = new AlteradorDeRequisicaoDeCompra(_unitOfWorkMock.Object, _requisicoesDeCompraMock.Object, _processosDeCotacaoDeMaterialMock.Object);

            alterador.Bloquear(10);
            _requisicoesDeCompraMock.Verify(x => x.Save(It.IsAny <RequisicaoDeCompra>()), Times.Once());
        }
 public void QuandoOcorreAlgumErroAoBloquearRequisicaoDeCompraNaoOcorrePersistencia()
 {
     //faço disparar uma exceção no método save do repositório
     _requisicoesDeCompraMock.Setup(x => x.Save(It.IsAny <RequisicaoDeCompra>()))
     .Throws(new ExcecaoDeTeste("erro ao salvar requisição"));
     try
     {
         var alterador = new AlteradorDeRequisicaoDeCompra(_unitOfWorkMock.Object, _requisicoesDeCompraMock.Object, _processosDeCotacaoDeMaterialMock.Object);
         alterador.Bloquear(10);
         Assert.Fail("Deveria ter gerado exceção");
     }
     catch (Exception)
     {
         CommonVerifications.VerificaRollBackDeTransacao(_unitOfWorkMock);
     }
 }