public void Adiciona_contacto_com_sucesso(FuncionariosController controlador, int id, int versao, string contacto, ActionResult resultado)
        {
            var funcionarioDto = new FuncionarioDto();
            var tipos          = new List <TipoFuncionario> {
                new TipoFuncionario(1, "teste")
            };

            "Quando recebemos um controlador"
            .Given(() => controlador = _container.Create <FuncionariosController>());

            "E um id e versão inicializados"
            .And(() => id = versao = 1);

            "E um contacto válido"
            .And(() => contacto = "123456789");

            "E um conjunto de mocks"
            .And(() => {
                var query = _container.GetMock <IQueryOver <TipoFuncionario, TipoFuncionario> >();
                var tran  = _container.GetMock <ITransaction>();
                _container.GetMock <ISession>()
                .Setup(s => s.BeginTransaction())
                .Returns(tran.Object);
                tran.Setup(t => t.Commit());
                _container.GetMock <ISession>()
                .Setup(s => s.QueryOver <TipoFuncionario>())
                .Returns(query.Object);
                query.Setup(q => q.List <TipoFuncionario>())
                .Returns(tipos);

                _container.GetMock <IProcessador>()
                .Setup(p => p.Trata(It.IsAny <ModificaContactosFuncionario>()))
                .Returns(new MsgGravacao {
                    Id = 1, Versao = 2
                });

                _container.GetMock <ISession>()
                .Setup(s => s.Load <FuncionarioDto>(1))
                .Returns(funcionarioDto);
                _container.GetMock <ITransaction>()
                .Setup(t => t.Dispose());
            });

            "Quando tentamos adicionar o contacto"
            .When(() => resultado = controlador.AdicionaContacto(id, versao, contacto));

            "Então devemos ser redirecionados para vista funcionários"
            .Then(() => ((ViewResult)resultado).ViewName.ToLower().Should().Be("funcionario"));

            "E devemos obter os valores corretos no modelo"
            .And(() => {
                var modelo = (DadosFormularioFuncionario)((ViewResult)resultado).Model;
                modelo.Funcionario.Should().BeSameAs(funcionarioDto);
                modelo.Novo.Should().BeFalse();
                modelo.TiposFuncionario.Should().BeEquivalentTo(tipos);
            });
        }
        public void Trata_erro_criacao_novo_funcionario(FuncionariosController controlador, int id, int versao, string nome, string nif, int tipoFuncionario, ActionResult resultado)
        {
            var funcionarioDto = new FuncionarioDto();
            var tipos          = new List <TipoFuncionario> {
                new TipoFuncionario(1, "teste")
            };

            "Dado um controlador"
            .Given(() => controlador = _container.Create <FuncionariosController>());

            "E um id, versao e tipoFuncionario"
            .And(() => {
                id = versao = 0;
                tipoFuncionario = 1;
            });

            "E um nome"
            .And(() => nome = "Luis");

            "E um NIF incorreto"
            .And(() => nif = "111");

            "E um conjunto de mocks"
            .And(() => {
                var query = _container.GetMock <IQueryOver <TipoFuncionario, TipoFuncionario> >();
                var tran  = _container.GetMock <ITransaction>();
                _container.GetMock <ISession>()
                .Setup(s => s.BeginTransaction())
                .Returns(tran.Object);
                tran.Setup(t => t.Commit());
                _container.GetMock <ISession>()
                .Setup(s => s.QueryOver <TipoFuncionario>())
                .Returns(query.Object);
                query.Setup(q => q.List <TipoFuncionario>())
                .Returns(tipos);

                _container.GetMock <ITransaction>()
                .Setup(t => t.Dispose());
            });

            "Quando tentarmos criar um novo funcionário"
            .When(() => resultado = controlador.DadosGerais(id, versao, nome, nif, tipoFuncionario));

            "Então devemos ter uma mensagem com dados esperados"
            .Then(() => {
                var rv = (ViewResult)resultado;
                rv.ViewName.Should().Be("Funcionario");
                var model = (DadosFormularioFuncionario)rv.Model;
                model.Novo.Should().BeTrue();
                model.TiposFuncionario.Should().BeEquivalentTo(tipos);
                controlador.ModelState.Should().ContainKey("total");
            });
        }
Пример #3
0
        public void Mapeamento_funcionario_correto()
        {
            var tipoFuncionario = new TipoFuncionario(100, "Teste");
            var funcionario     = new FuncionarioDto {
                Id        = 1,
                Contactos = new List <Contacto> {
                    Contacto.CriaExtensao("1234")
                },
                Nif             = "123456789",
                Nome            = "Luis",
                TipoFuncionario = tipoFuncionario
            };

            new GestorTransacoesTestes().ExecutaTransacao((sess, tran) => {
                sess.Save(tipoFuncionario);
                sess.Flush();
                new PersistenceSpecification <FuncionarioDto>(sess)
                .VerifyTheMappings(funcionario);
                Assert.True(true);
            });
        }
        public void Cria_novo_funcionario_com_sucesso(FuncionariosController controlador, int id, int versao, string nome, string nif, int tipoFuncionario, ActionResult resultado)
        {
            var funcionarioDto = new FuncionarioDto();
            var tipos          = new List <TipoFuncionario> {
                new TipoFuncionario(1, "teste")
            };

            "Dado um controlador"
            .Given(() => controlador = _container.Create <FuncionariosController>());

            "E um id, versao e tipoFuncionario"
            .And(() => {
                id = versao = 0;
                tipoFuncionario = 1;
            });

            "E um nome"
            .And(() => nome = "Luis");

            "E um NIF"
            .And(() => nif = "123456789");

            "E um conjunto de mocks"
            .And(() => {
                var query = _container.GetMock <IQueryOver <TipoFuncionario, TipoFuncionario> >();
                var tran  = _container.GetMock <ITransaction>();
                _container.GetMock <ISession>()
                .Setup(s => s.BeginTransaction())
                .Returns(tran.Object);
                tran.Setup(t => t.Commit());
                _container.GetMock <ISession>()
                .Setup(s => s.QueryOver <TipoFuncionario>())
                .Returns(query.Object);
                query.Setup(q => q.List <TipoFuncionario>())
                .Returns(tipos);

                _container.GetMock <IProcessador>()
                .Setup(p => p.Trata(It.IsAny <CriaFuncionario>()))
                .Returns(new MsgGravacao {
                    Id = 1, Versao = 1
                });

                _container.GetMock <ISession>()
                .Setup(s => s.Load <FuncionarioDto>(1))
                .Returns(funcionarioDto);
                _container.GetMock <ITransaction>()
                .Setup(t => t.Dispose());
            });

            "Quando tentarmos criar um novo funcionário"
            .When(() => resultado = controlador.DadosGerais(id, versao, nome, nif, tipoFuncionario));

            "Então devemos ter uma mensagem com dados esperados"
            .Then(() => {
                var rv = (ViewResult)resultado;
                rv.ViewName.Should().Be("Funcionario");
                var model = (DadosFormularioFuncionario)rv.Model;
                model.Funcionario.Should().BeSameAs(funcionarioDto);
                model.Novo.Should().BeFalse();
                model.TiposFuncionario.Should().BeEquivalentTo(tipos);
            });
        }