public void Details_Deve_Retornar_Um_Funcionario_Dado_Um_id(int validId, int invalidId)
        {
            var mock = new Mock <IUnitOfWork>();
            FuncionariosController controller = new FuncionariosController(mock.Object, _calculadoraDeBonusService);

            #region valid id
            mock.Setup <Funcionario>(s => s.Funcionario.GetById(validId)).Returns(FuncionariosMockData.GetTestFuncionarioItems().FirstOrDefault(n => n.Id == validId));

            var result = controller.Details(validId);

            var viewResult      = Assert.IsType <ViewResult>(result);
            var viewResultValue = Assert.IsAssignableFrom <Funcionario>(viewResult.ViewData.Model);

            Assert.Equal("Victor Wilson", viewResultValue.Nome);
            Assert.Equal(Departamento.Diretoria, viewResultValue.Departamento);
            Assert.Equal("Diretor Financeiro", viewResultValue.Cargo);
            Assert.Equal(new decimal(12696.20), viewResultValue.SalarioBruto);
            Assert.Equal(new DateTime(2012, 01, 05), viewResultValue.DataDeAdmissao);
            #endregion

            #region invalid id
            mock.Setup(s => s.Funcionario.GetById(invalidId)).Returns(FuncionariosMockData.GetTestFuncionarioItems().FirstOrDefault(n => n.Id == invalidId));
            var notFoundResult = controller.Details(invalidId);

            Assert.IsType <NotFoundResult>(notFoundResult);
            #endregion
            mock.Verify();
        }
        public void Index_Deve_Retornar_Todos_Os_Funcionarios()
        {
            var mock       = new Mock <IUnitOfWork>();
            var controller = new FuncionariosController(mock.Object, _calculadoraDeBonusService);

            mock.Setup(s => s.Funcionario.GetAll(null, null, null)).Returns(FuncionariosMockData.GetTestFuncionarioItems());
            var result = controller.Index();

            var viewResult      = Assert.IsType <ViewResult>(result);
            var viewResultValue = Assert.IsAssignableFrom <List <Funcionario> >(viewResult.ViewData.Model);

            Assert.Equal(4, viewResultValue.Count);
            mock.Verify();
        }