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 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);
        }