public async Task <ValidationResult> Handle(AvaliarHabilidadesUsuarioCommand message, CancellationToken cancellationToken) { if (!message.IsValid()) { return(message.ValidationResult); } await _perfilServices.AvaliarPerfil(message.PerfilHabilidadesId, message.HabilidadesAvaliadas); return(await PublishEvents(message.HabilidadesAvaliadas.Select(avaliacao => new HabilidadeUsuarioAvaliadaEvent(avaliacao.Key, avaliacao.Value)).ToArray())); }
public void PerfilServices_AvaliarPerfil_NaoDeveAdicionarAvaliacaoNasHabilidadesDoUsuarioEDeveNotificar() { //Arrange IPerfilServices perfilServices = _perfilService; //Act perfilServices.AvaliarPerfil(Guid.NewGuid(), default); //Assert _fixtureWrapper.Mocker.GetMock <IMediatrHandler>() .Verify(x => x.Notify(It.IsAny <DomainNotification>()), Times.Once); }
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); }