public void PerfilHabilidades_ObterHabilidadesPorEsporte_DeveRetornarHabilidadesProcurandoPorEsporte()
        {
            //Arrange
            PerfilHabilidades perfil  = _fixtureWrapper.PerfilHabilidades.CriarPerfilHabilidadeValido();
            Esporte           esporte = _fixtureWrapper.Esporte.CriarEsporteValido();

            IEnumerable <HabilidadeUsuario> habilidades = new HabilidadeUsuario[]
            {
                _fixtureWrapper.HabilidadeUsuario.CriarHabilidadeUsuarioValido(),
                                            _fixtureWrapper.HabilidadeUsuario.CriarHabilidadeUsuarioValido()
            };

            foreach (HabilidadeUsuario habilidade in habilidades)
            {
                habilidade.Esporte = esporte;
            }

            perfil.AdicionarHabilidadesUsuario(habilidades);

            //Act
            IEnumerable <HabilidadeUsuario> habilidadesEncontradas = perfil.ObterHabilidadesPorEsporte(esporte.TipoEsporte);

            //Assert
            perfil.HabilidadesUsuario.Should().HaveCount(2);
        }
        public void HabilidadeUsuario_Validate_DeveCriarHabilidadeUsuarioValida()
        {
            //Arrange & Act
            HabilidadeUsuario habilidadeUsuario = _fixtureWrapper.HabilidadeUsuario.CriarHabilidadeUsuarioValido();

            //Assert
            habilidadeUsuario.Should().NotBeNull();
        }
        public void PerfilHabilidades_AdicionarHabilidadeUsuario_DeveAdicionarUmaHabilidadeDeUsuarioAoPerfil()
        {
            //Arrange
            PerfilHabilidades perfil = _fixtureWrapper.PerfilHabilidades.CriarPerfilHabilidadeValido();

            HabilidadeUsuario habilidade = _fixtureWrapper.HabilidadeUsuario.CriarHabilidadeUsuarioValido();

            //Act
            perfil.AdicionarHabilidadeUsuario(habilidade);

            //Assert
            perfil.HabilidadesUsuario.Should().HaveCount(1);
        }
        public void HabilidadeUsuario_AdicionarAvaliacaoHabilidade_DeveAdicionarUmaAvaliacaoNaHabilidadeDoUsuario()
        {
            //Arrange
            HabilidadeUsuario   habilidadeUsuario = _fixtureWrapper.HabilidadeUsuario.CriarHabilidadeUsuarioValido();
            AvaliacaoHabilidade avaliacao         = _fixtureWrapper.AvaliacaoHabilidade.CriarAvaliacaoHabilidadeValida();

            //Act
            habilidadeUsuario.AdicionarAvaliacaoHabilidade(avaliacao);

            //Assert
            habilidadeUsuario.Avaliacoes.Should().HaveCount(1);
            habilidadeUsuario.Nota.Should().BeGreaterOrEqualTo(0);
            habilidadeUsuario.Nota.Should().Be(avaliacao.Nota);
            habilidadeUsuario.Id.Should().Be(avaliacao.HabilidadeUsuarioId);
        }
        public void PerfilHabilidades_AdicionarHabilidadesUsuario_DeveAdicionarUmaColecaoDeHabilidadesDeUsuarioAoPerfil()
        {
            //Arrange
            PerfilHabilidades perfil = _fixtureWrapper.PerfilHabilidades.CriarPerfilHabilidadeValido();

            IEnumerable <HabilidadeUsuario> habilidades = new HabilidadeUsuario[]
            {
                _fixtureWrapper.HabilidadeUsuario.CriarHabilidadeUsuarioValido(),
                                            _fixtureWrapper.HabilidadeUsuario.CriarHabilidadeUsuarioValido()
            };

            //Act
            perfil.AdicionarHabilidadesUsuario(habilidades);

            //Assert
            perfil.HabilidadesUsuario.Should().HaveCount(2);
        }
        public void HabilidadeUsuario_AdicionarAvaliacoesHabilidade_DeveAdicionarUmaColecaoDeAvaliacoesNaHabilidadeDoUsuario()
        {
            //Arrange
            HabilidadeUsuario habilidadeUsuario          = _fixtureWrapper.HabilidadeUsuario.CriarHabilidadeUsuarioValido();
            IEnumerable <AvaliacaoHabilidade> avaliacoes = new AvaliacaoHabilidade[]
            {
                _fixtureWrapper.AvaliacaoHabilidade.CriarAvaliacaoHabilidadeValida(),
                                              _fixtureWrapper.AvaliacaoHabilidade.CriarAvaliacaoHabilidadeValida(),
                                              _fixtureWrapper.AvaliacaoHabilidade.CriarAvaliacaoHabilidadeValida()
            };

            //Act
            habilidadeUsuario.AdicionarAvaliacoesHabilidade(avaliacoes);

            //Assert
            habilidadeUsuario.Avaliacoes.Should().HaveCount(3);
            habilidadeUsuario.Nota.Should().BeGreaterOrEqualTo(0);
            habilidadeUsuario.Nota.Should().Be(avaliacoes.Average(a => a.Nota));
            habilidadeUsuario.Id.Should().Be(avaliacoes.Select(s => s.HabilidadeUsuarioId).Distinct().Single());
        }
 public void RemoverHabilidadeUsuario(HabilidadeUsuario habilidadeUsuario)
 {
     _context.HabilidadesUsuarios.Remove(habilidadeUsuario);
 }
 public void AtualizarHabilidadeUsuario(HabilidadeUsuario habilidadeUsuario)
 {
     _context.HabilidadesUsuarios.Update(habilidadeUsuario);
 }
 public void AdicionarHabilidadeUsuario(HabilidadeUsuario habilidadeUsuario)
 {
     _context.HabilidadesUsuarios.Add(habilidadeUsuario);
 }