Beispiel #1
0
        public UsuarioQueryResult Handle(UsuarioQuery query)
        {
            ICollectionRead <Usuario> qryDataUser     = new UsuarioData();
            IEntityRead <Userinfo>    qryDataUserInfo = new UserinfoData();
            UsuarioQueryHandler       qryHandler      = new UsuarioQueryHandler(qryDataUser, qryDataUserInfo);

            return(qryHandler.Handle(query));
        }
        public async Task ObterPorId_DeveRetornarNullQuandoNaoForEncontradoNoBanco()
        {
            var query        = new ObterUsuarioPorIdQuery(Guid.NewGuid());
            var queryHandler = new UsuarioQueryHandler(_usuarioRepository);

            var usuarioBanco = await queryHandler.Handle(query, CancellationToken.None);

            usuarioBanco.Should().BeNull();
        }
        public async Task ObterPorId_DeveInvalidarQueryQuandoIdForVazio()
        {
            var query        = new ObterUsuarioPorIdQuery(Guid.Empty);
            var queryHandler = new UsuarioQueryHandler(_usuarioRepository);

            await queryHandler.Handle(query, CancellationToken.None);

            (await query.EhValido()).Should().Be(false);
            query.ValidationResult.Errors
            .Should()
            .Contain(error => error.ErrorMessage == "Id deve possuir conteúdo");
        }
        public async Task ObterPorId_DeveRetornarUsuarioQuandoForEncontradoNoBanco()
        {
            var usuario = UsuarioFactory.GerarUsuario();
            await _context.Usuarios.AddAsync(usuario);

            await _context.SaveChangesAsync();

            var query        = new ObterUsuarioPorIdQuery(usuario.Id);
            var queryHandler = new UsuarioQueryHandler(_usuarioRepository);

            var usuarioBanco = await queryHandler.Handle(query, CancellationToken.None);

            usuarioBanco.Should().BeEquivalentTo(usuario);
        }