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);
        }
コード例 #2
0
 public Colaborador(Guid id, NomePessoa nome, DateTime dataDeNascimento)
     : this()
 {
     Id               = id;
     Nome             = nome;
     DataDeNascimento = dataDeNascimento;
 }
コード例 #3
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 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());
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        public void ToStringTest()
        {
            var nomeCompleto1 = NomePessoa.Crie("Codeizi", "Treinamento");
            var result        = nomeCompleto1.ToString();

            Assert.Equal("Codeizi Treinamento", result);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        public void Crie()
        {
            var nome = NomePessoa.Crie("Codeizi", "Treinamentos");

            Assert.Equal("Codeizi", nome.Nome);
            Assert.Equal("Treinamentos", nome.Sobrenome);
        }
コード例 #10
0
 public Cliente(NomePessoa nome, string cPF, Telefone telefone, Email email)
 {
     Nome     = nome;
     CPF      = cPF;
     Telefone = telefone;
     Email    = email;
     validator.ValidateAndThrow(this);
 }
コード例 #11
0
 /// <summary>
 /// Cria um usuário candidato garantindo seu estado válido
 /// </summary>
 /// <param name="usuarioCriacao">Usuário responsável pelo registro</param>
 /// <param name="email">E-mail do usuário da aplicação</param>
 /// <param name="nome">Nome do usuário da aplicação</param>
 /// <exception cref="ArgumentNullException">Lançado quando não for informado <paramref name="email"/></exception>
 /// <exception cref="ArgumentException">Lançado quando o <paramref name="email"/> informado náo é válido</exception>
 /// <exception cref="ArgumentNullException">Lançado quando não for informado <paramref name="nome"/></exception>
 /// <exception cref="ArgumentException">Lançado quando o <paramref name="nome"/> informado náo é válido</exception>
 protected UsuarioBase(UsuarioBase usuarioCriacao, Email email, NomePessoa nome) : base(usuarioCriacao, email)
 {
     Nome = nome ?? throw new ArgumentNullException(nameof(nome), "Nome do usuário não informado");
     if (nome.Invalid)
     {
         throw new ArgumentException(nome.Notifications.ToString(), nameof(nome));
     }
 }
コード例 #12
0
 /// <summary>
 /// Cria usuário para efetuar login na aplicação
 /// </summary>
 /// <param name="usuarioCriacao">Usuário responsável pelo registro</param>
 /// <param name="email">E-mail do usuário da aplicação</param>
 /// <param name="nome">Nome do usuário da aplicação</param>
 /// <param name="login">Login do usuário para acessar a aplicação</param>
 /// <param name="senha">Senha do usuário para acessar a aplicação</param>
 /// <exception cref="ArgumentNullException">Lançado quando não for informado <paramref name="email"/></exception>
 /// <exception cref="ArgumentException">Lançado quando o <paramref name="email"/> informado náo é válido</exception>
 /// <exception cref="ArgumentNullException">Lançado quando não for informado <paramref name="nome"/></exception>
 /// <exception cref="ArgumentException">Lançado quando o <paramref name="nome"/> informado náo é válido</exception>
 /// <exception cref="ArgumentNullException">Lançado quando não for informado <paramref name="login"/></exception>
 /// <exception cref="ArgumentNullException">Lançado quando não for informada <paramref name="senha"/></exception>
 /// <exception cref="ArgumentException">Lançado quando a <paramref name="senha"/> informada náo é válida</exception>
 public UsuarioAutenticacao(UsuarioBase usuarioCriacao, Email email, NomePessoa nome, string login, SenhaSecreta senha) : base(usuarioCriacao, email, nome)
 {
     Login = login ?? throw new ArgumentNullException(nameof(login), "Não informado login do usuário");
     Senha = senha ?? throw new ArgumentNullException(nameof(senha), "Não informada senha");
     if (senha.Invalid)
     {
         throw new ArgumentException(senha.Notifications.ToString(), nameof(senha));
     }
 }
コード例 #13
0
 public bool InserirNomes(NomePessoa i)
 {
     if (string.IsNullOrWhiteSpace(i.Nome))
     {
         return(false);
     }
     contextDB.NomePessoas.Add(i);
     contextDB.SaveChanges();
     return(true);
 }
コード例 #14
0
 public Colaborador(NomePessoa nome, Email email)
 {
 }
コード例 #15
0
 public ColaboradorBuilder CrieColaboradorSucesso()
 {
     colaborador = new Colaborador(Guid.NewGuid(), NomePessoa.Crie("Codeizi", "Treinamento"), DateTime.Now.AddYears(-20));
     colaborador.AddContrato(DateTime.Now, 1000);
     return(this);
 }
コード例 #16
0
 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);
 }
コード例 #17
0
        static void Main(string[] args)
        {
            //Bora tentar criar um programa aos poucos e poucos em que se use todos os comandos que aprendemos
            //assim funciona como um tutorial para nós!
            #region NomesDosUtilizadores
            #region Variaveis
            string NomePessoa;
            string IdadePessoa;
            #endregion

            #region Questões
            Console.Write("Qual o teu nome: ");
            NomePessoa = Console.ReadLine();
            Console.WriteLine();
            Console.Write("Qual é a tua idade: ");
            IdadePessoa = Console.ReadLine();
            Console.WriteLine();
            #endregion

            #region CondiçoesDoNome
            // If-Else
            if (NomePessoa == "Quico")
            {
                Console.WriteLine("O QUICO É FIXE E TEM " + IdadePessoa + " ANOS.");
            }

            else if (NomePessoa == "MaKuiLoP")
            {
                Console.WriteLine("O joão é topo, alem de Diamond é topo, e tem " + IdadePessoa + " ANOS");
            }

            else
            {
                Console.WriteLine("O " + NomePessoa.ToUpper() + " É GAY E TEM " + IdadePessoa + " ANOS.");
            }
            #endregion
            #endregion

            #region PassagemDosAdotados

            Console.WriteLine("-----------------------------------");
            Console.WriteLine("Agora que sabemos o teu nome, vamos fazer operações matemáticas! seu adotado!");
            Console.WriteLine("Enter para Continuar");
            Console.ReadKey();
            Console.Clear();
            #endregion

            #region Calculadora
            //Calculadora
            #region VariaveisDaCalculadora

            double numero1;
            double numero2;
            double Total;
            String operação;
            #endregion

            Console.Write("Introduza o primeiro valor: ");
            numero1 = Convert.ToDouble(Console.ReadLine());

            Console.Write("Introduza a operação: ");
            operação = Console.ReadLine();

            Console.Write("Introduza o segundo valor: ");
            numero2 = Convert.ToDouble(Console.ReadLine());

            Total = 0;


            switch (operação)
            {
            case "+": Total = numero1 + numero2;
                Console.WriteLine("A soma é" + Total);
                break;

            case "-": Total = numero1 - numero2;
                Console.WriteLine("A Divisao é" + Total);
                break;

            case "*": Total = numero1 * numero2;
                Console.WriteLine("A multiplicação é" + Total);
                break;

            case "/": Total = numero1 / numero2;
                Console.WriteLine("A divisão é" + Total);
                break;
            }


            Console.WriteLine();

            #endregion

            #region  array! e for

            // Array

            String[] lista;

            lista = new string[3];

            lista[0] = "Joao";
            lista[1] = "Tiago";
            lista[2] = "Rodrigo";

            for (int i = 0; i < 3; i++)
            {
                Console.Write(lista[i] + " ");
            }



            #endregion



            Console.ReadKey();
        }
コード例 #18
0
 public static void SobrecargaOperadorTest(NomePessoa p1, NomePessoa p2, Func <NomePessoa, NomePessoa, bool> func, bool result)
 => Assert.True(func(p1, p2) == result);
コード例 #19
0
        public void IniciaisApartirDoNomeCom3SobreNomes()
        {
            NomePessoa nome = new NomePessoa("AUGUSTO", "CORDEIRO CORREA PINTO");

            Assert.AreEqual("AP", nome.Iniciais);
        }
コード例 #20
0
 public Funcionario(NomePessoa nome, string cPF)
 {
     Nome = nome;
     CPF  = cPF;
     validator.ValidateAndThrow(this);
 }
コード例 #21
0
        public void DeveRetornarNomeValido(string primeiroNome, string segundoNome)
        {
            var nome = new NomePessoa(primeiroNome, segundoNome);

            Assert.IsTrue(!nome.Invalid);
        }
コード例 #22
0
        public void IniciaisApartirDoNomeSemSobrenome()
        {
            NomePessoa nome = new NomePessoa("AUGUSTO", "");

            Assert.AreEqual("A", nome.Iniciais);
        }
コード例 #23
0
        public void NomeCompletoCom3SobreNomes()
        {
            NomePessoa nome = new NomePessoa("AUGUSTO", "CORDEIRO CORREA PINTO");

            Assert.AreEqual("AUGUSTO CORDEIRO CORREA PINTO", nome.NomeCompleto);
        }
コード例 #24
0
        public void Criar_Sobrenome_Valido()
        {
            var nomeInvalido = new NomePessoa("Ricardo", "Vicentini");

            Assert.True(nomeInvalido.NomeCompleto == "Ricardo Vicentini");
        }
コード例 #25
0
 /// <summary>
 /// Cria um usuário candidato garantindo seu estado válido
 /// </summary>
 /// <param name="usuarioCriacao">Usuário responsável pelo registro</param>
 /// <param name="email"></param>
 /// <param name="nome"></param>
 /// <exception cref="ArgumentNullException">Lançado quando não for informado <paramref name="email"/></exception>
 /// <exception cref="ArgumentException">Lançado quando o <paramref name="email"/> informado náo é válido</exception>
 /// <exception cref="ArgumentNullException">Lançado quando não for informado <paramref name="nome"/></exception>
 /// <exception cref="ArgumentException">Lançado quando o <paramref name="nome"/> informado náo é válido</exception>
 public UsuarioMaster(UsuarioBase usuarioCriacao, Email email, NomePessoa nome) : base(usuarioCriacao, email, nome)
 {
 }