Example #1
0
        public async Task Registrar_ocorrencia_de_ferias_com_sucesso()
        {
            // Arrange
            var mockContrato             = Substitute.For <Contrato>();
            var mockOcorrenciaRepository = Substitute.For <IOcorrenciaDeDeriasRepository>();
            var validation = new RegistrarOcorrenciaDeFeriasCommandValidation(mockOcorrenciaRepository);

            mockOcorrenciaRepository.ObtenhaOcorrenciasDoPeriodoAquisitivo(Arg.Any <Guid>(), Arg.Any <DateTime>())
            .Returns(new List <OcorrenciaDeFerias>());
            var mockColaboradorRepository = Substitute.For <IColaboradorRepository>();

            mockColaboradorRepository.BusqueColaborador(Arg.Any <Guid>())
            .Returns(new Colaborador(Guid.NewGuid(), NomePessoa.Crie("Codeizi", "Treinamento"), DateTime.Now.AddYears(-33)));
            mockColaboradorRepository.ObtenhaContrato(Arg.Any <Guid>()).Returns(mockContrato);
            var mockUOW = Substitute.For <IUnitOfWork>();

            mockUOW.Commit().ReturnsForAnyArgs(true);

            var mockMediator     = Substitute.For <IMediatorHandler>();
            var mockNotification = Substitute.For <INotificationHandler <DomainNotification>, DomainNotificationHandler>();

            var feriasCommand = new FeriasCommandHandler(mockOcorrenciaRepository,
                                                         mockColaboradorRepository,
                                                         mockUOW,
                                                         mockMediator,
                                                         mockNotification);

            var request = CenarioOcorrenciaDeFeriasCommandBuilder.Crie(validation);

            // Act
            var result = await feriasCommand.Handle(request, CancellationToken.None);

            // Assert
            Assert.True(result);
        }
        public async Task Registre_ferias_com_sucesso()
        {
            // Arrange
            var context        = InMemoryDBContext.Crie();
            var colaboradorDAO = FabricGenericDAO <IColaboradorDAO> .Crie(context);

            var colaborador = new Colaborador(Guid.NewGuid(), NomePessoa.Crie("Codeizi", "Treinamento"), DateTime.Now.AddYears(-34));

            colaborador.AddContrato(DateTime.Now.AddYears(-1), 1000);

            await context.AddAsync(colaborador);

            await context.SaveChangesAsync();

            var colaboradorSalvo = colaboradorDAO.GetQueryable().FirstOrDefault(x => x.Id == colaborador.Id);

            var registroDeFerias = RegistrarOcorrenciaDeFeriasViewModelBuilder.CrieConsiderandoContrato(colaboradorSalvo.Contratos.First());

            // act
            var response = await Client.PostAsync("api/ocorrenciadeferias", registroDeFerias.ToJson());

            response.EnsureSuccessStatusCode();
            var resultado = await JsonToObject <Resposta> .Convert(response);

            // assert
            Assert.True(resultado.Success);
            Assert.Equal(System.Net.HttpStatusCode.OK, response.StatusCode);
        }
        public async Task Registro_de_ferias_sem_saldo_de_ferias()
        {
            // Arrange
            var context     = InMemoryDBContext.Crie();
            var contratoDAO = FabricGenericDAO <IContratoDao> .Crie(context);

            var contrato = new Contrato(
                new Colaborador(Guid.NewGuid(), NomePessoa.Crie("Codeizi", "Treinamento"), DateTime.Now.AddYears(-34)),
                DateTime.Now.AddYears(-1),
                1000);

            await contratoDAO.AddAsync(contrato);

            await context.SaveChangesAsync();

            var registroDeFeriasCadastrado = new OcorrenciaDeFerias(contrato, contrato.PeriodoAquisitivo, 30, 0);

            var feriasDAO = FabricGenericDAO <IOcorrenciaDeFeriasDao> .Crie(context);

            await feriasDAO.AddAsync(registroDeFeriasCadastrado);

            await context.SaveChangesAsync();

            var registroDeFerias = RegistrarOcorrenciaDeFeriasViewModelBuilder.CrieConsiderandoContrato(contrato);

            // Act
            var response = await Client.PostAsync("api/ocorrenciadeferias", registroDeFerias.ToJson());

            var resultado = await JsonToObject <Resposta> .Convert(response);

            // Assert
            Assert.False(resultado.Success);
            Assert.Equal(System.Net.HttpStatusCode.BadRequest, response.StatusCode);
            Assert.True(resultado.Errors.Any());
        }
        public void VerificaOperadorDiferenca(string nome1, string nome2, bool resultado)
        {
            var nomeCompleto1 = NomePessoa.Crie(nome1, "Treinamentos");
            var nomeCompleto2 = NomePessoa.Crie(nome2, "Treinamentos");

            Assert.True(nomeCompleto1 != nomeCompleto2 == resultado);
        }
        public void ToStringTest()
        {
            var nomeCompleto1 = NomePessoa.Crie("Codeizi", "Treinamento");
            var result        = nomeCompleto1.ToString();

            Assert.Equal("Codeizi Treinamento", result);
        }
        public void GetHashCodeTest(string nome1, string nome2, bool resultado)
        {
            var nomeCompleto1 = NomePessoa.Crie(nome1, "Treinamento");
            var nomeCompleto2 = NomePessoa.Crie(nome2, "Treinamento");

            Assert.True(nomeCompleto1.GetHashCode() == nomeCompleto2.GetHashCode() == resultado);
        }
        public void EqualsTest(string nome1, string nome2, bool resultado)
        {
            var nomeCompleto1 = NomePessoa.Crie(nome1, "Treinamentos");
            var nomeCompleto2 = NomePessoa.Crie(nome2, "Treinamentos");

            Assert.True(nomeCompleto1.Equals(nomeCompleto2) == resultado);
        }
        public void Crie()
        {
            var nome = NomePessoa.Crie("Codeizi", "Treinamentos");

            Assert.Equal("Codeizi", nome.Nome);
            Assert.Equal("Treinamentos", nome.Sobrenome);
        }
 public ColaboradorBuilder CrieColaboradorSucesso(Guid chave)
 {
     colaborador = new Colaborador(chave, NomePessoa.Crie("Codeizi", "Treinamento"), DateTime.Now.AddYears(-20));
     CrieContratos(colaborador).ForEach(c => colaborador.AddContrato(c.DataInicio, c.SalarioContratual));
     return(this);
 }
 public ColaboradorBuilder CrieColaboradorSucesso()
 {
     colaborador = new Colaborador(Guid.NewGuid(), NomePessoa.Crie("Codeizi", "Treinamento"), DateTime.Now.AddYears(-20));
     colaborador.AddContrato(DateTime.Now, 1000);
     return(this);
 }