public ProcessoCotacaoMaterialControllerTests()
        {
            _consultaProcessoCotacaoMaterialMock = new Mock <IConsultaProcessoDeCotacaoDeMaterial>(MockBehavior.Strict);
            _consultaProcessoCotacaoMaterialMock.Setup(x => x.ConsultaProcesso(It.IsAny <int>()))
            .Returns(new ProcessoCotacaoMaterialCadastroVm());
            _consultaStatusProcessoCotacao = new Mock <IConsultaStatusProcessoCotacao>(MockBehavior.Strict);
            _consultaStatusProcessoCotacao.Setup(x => x.Listar()).Returns(new List <StatusProcessoCotacaoVm>());

            _controller = new ProcessoCotacaoMaterialController(_consultaProcessoCotacaoMaterialMock.Object, _consultaStatusProcessoCotacao.Object);
            CommonMocks.MockControllerUrl(_controller);
        }
        public void QuandoLogarComUrlDeRetornoDeveRetornarParaUrlDeRetorno()
        {
            var accountServiceMock = new Mock <IAccountService>(MockBehavior.Strict);

            accountServiceMock.Setup(x => x.Login(It.IsAny <string>(), It.IsAny <string>())).Returns(new UsuarioConectado("user001", "comprador", new List <Enumeradores.Perfil>()));
            var accountController = new AccountController(accountServiceMock.Object);

            CommonMocks.MockControllerUrl(accountController);

            var result = (RedirectResult)accountController.Login(new LoginVm()
            {
                Usuario = "comprador", Senha = "123"
            }, "/Produto/Index");

            Assert.IsNotNull(result);
            Assert.AreEqual("/Produto/Index", result.Url);
        }
        public void QuandoEstaConectadoComOPerfilFornecedorViewBagContemActionDeEdicaoEsperada()
        {
            ObjectFactory.Configure(x => x.For <UsuarioConectado>()
                                    .HybridHttpOrThreadLocalScoped()
                                    .Use(new UsuarioConectado("fornecedor", "Usuário Fornecedor", new List <Enumeradores.Perfil> {
                Enumeradores.Perfil.Fornecedor
            })));

            var controller = new ProcessoCotacaoMaterialController(_consultaProcessoCotacaoMaterialMock.Object, _consultaStatusProcessoCotacao.Object);

            CommonMocks.MockControllerUrl(controller);
            controller.Index();
            Assert.IsNotNull(controller.ViewData["ActionEdicao"]);
            Assert.AreEqual("/CotacaoMaterial/EditarCadastro", controller.ViewData["ActionEdicao"]);

            ObjectFactory.Configure(x => x.For <UsuarioConectado>()
                                    .HybridHttpOrThreadLocalScoped()
                                    .Use(new UsuarioConectado("teste", "Usuário de Teste", new List <Enumeradores.Perfil> {
                Enumeradores.Perfil.CompradorSuprimentos
            })));
        }