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 PerfilServices_AvaliarPerfil_DeveAdicionarAvaliacaoNasHabilidadesDoUsuario()
        {
            //Arrange
            IPerfilServices   perfilServices = _perfilService;
            PerfilHabilidades perfil         = _fixtureWrapper.PerfilHabilidades.CriarPerfilHabilidadeValido();

            for (int i = 0; i < 5; i++)
            {
                perfil.AdicionarHabilidadeUsuario(_fixtureWrapper.HabilidadeUsuario.CriarHabilidadeUsuarioValido());
            }

            IDictionary <Guid, double> habilidadesAvaliadas = new Dictionary <Guid, double>();

            Faker faker = new Faker("pt_BR");

            for (int i = 0; i < 5; i++)
            {
                habilidadesAvaliadas.Add(perfil.HabilidadesUsuario.ElementAt(i).Id, faker.Random.Double(0, 10));
            }

            _fixtureWrapper.Mocker.GetMock <IPerfilHabilidadesRepository>()
            .Setup(x => x.ObterPorIdComHabilidades(perfil.Id))
            .ReturnsAsync(perfil);

            //Act
            perfilServices.AvaliarPerfil(perfil.Id, habilidadesAvaliadas);

            //Assert
            perfil.HabilidadesUsuario.SelectMany(h => h.Avaliacoes).Should().HaveCount(habilidadesAvaliadas.Count);

            _fixtureWrapper.Mocker.GetMock <IHabilidadeUsuarioRepository>()
            .Verify(x => x.AdicionarAvaliacaoHabilidade(It.IsAny <AvaliacaoHabilidade>()), Times.Exactly(habilidadesAvaliadas.Count));

            _fixtureWrapper.Mocker.GetMock <IHabilidadeUsuarioRepository>()
            .Verify(x => x.AtualizarHabilidadesUsuario(It.IsAny <IEnumerable <HabilidadeUsuario> >()), Times.Once);

            _fixtureWrapper.Mocker.GetMock <IPerfilHabilidadesRepository>()
            .Verify(x => x.AtualizarPerfilHabilidades(perfil), Times.Once);

            _fixtureWrapper.Mocker.GetMock <IHabilidadeUsuarioRepository>()
            .Verify(x => x.Commit(), Times.Once);

            _fixtureWrapper.Mocker.GetMock <IPerfilHabilidadesRepository>()
            .Verify(x => x.Commit(), Times.Once);
        }