예제 #1
0
        public void Invoke_ValidData_ReturnsCorrectModel()
        {
            var userFromDb = new DataAccess.Models.User()
            {
                Id               = 1,
                Name             = "Name",
                Email            = "*****@*****.**",
                EmailConfirmedOn = DateTime.MinValue,
                LockedOn         = null,
                CreatedOn        = DateTime.MinValue,
                ModifiedOn       = DateTime.MinValue,
                DeletedOn        = null,
            };

            // prepare
            var mockedUserRepository = new Mock <IUserRepository>();

            mockedUserRepository.Setup(r => r.GetById(It.IsAny <int>()))
            .Returns(userFromDb);
            var action = new GetUserById(mockedUserRepository.Object);

            // action
            var user = action.Invoke(1);

            // check
            Assert.Equal(1, user.Id);
            Assert.Equal("Name", user.Name);
            Assert.Equal("*****@*****.**", user.Email);
            Assert.Equal(DateTime.MinValue, user.EmailConfirmedOn);
            Assert.Null(user.LockedOn);
            Assert.Equal(DateTime.MinValue, user.CreatedOn);
            Assert.Equal(DateTime.MinValue, user.ModifiedOn);
            Assert.Null(user.DeletedOn);
        }
예제 #2
0
        public void Invoke_InvalidData_EmptyRepository()
        {
            // prepare
            var mockedUserRepository = new Mock <IUserRepository>();
            var action = new GetUserById(mockedUserRepository.Object);

            // action
            var user = action.Invoke(1337);

            // check
            Assert.Null(user);
        }
예제 #3
0
 public async Task <User> GetUserById(GetUserById getUserById)
 {
     try
     {
         var user = _userRepository.AsQueryable().First(p => p.Id == getUserById.Id);
         return(await Task.FromResult(user));
     }
     catch (Exception exception)
     {
         Console.Out.WriteLine(exception.Message);
     }
     return(await Task.FromResult <User>(null));
 }
예제 #4
0
        public async Task <IActionResult> GetUserById(int id)
        {
            var getUserById = new GetUserById(id);

            var result = await _queryProcessor.ExecuteQueryAsync <GetUserById, UserDtoItem>(getUserById);

            if (result == null)
            {
                return(NotFound());
            }

            return(Ok(result));
        }
예제 #5
0
        public void Invoke_EmptyGuid_ReturnsNull()
        {
            // prepare
            var mockedUserRepository = new Mock <IUserRepository>();
            var action = new GetUserById(mockedUserRepository.Object);

            // action
            var user = action.Invoke(new Guid());

            // check
            Assert.Null(user);
            mockedUserRepository.Verify(r => r.GetById(It.IsAny <Guid>()), Times.Never);
        }
예제 #6
0
        public void Invoke_InvalidData_EmptyRepository()
        {
            // prepare
            var mockedUserRepository = new Mock <IUserRepository>();
            var action = new GetUserById(mockedUserRepository.Object);

            // action
            var user = action.Invoke(Guid.NewGuid());

            // check
            Assert.Null(user);
            mockedUserRepository.Verify(r => r.GetById(It.IsAny <Guid>()), Times.Once);
        }
예제 #7
0
        public async Task<User> GetUserById(GetUserById getUserById)
        {
            try
            {
                var user = _userRepository.AsQueryable().First(p => p.Id == getUserById.Id);
                return await Task.FromResult(user);

            }
            catch (Exception exception)
            {
                Console.Out.WriteLine(exception.Message);
            }
            return await Task.FromResult<User>(null);
        }
예제 #8
0
        public async Task <IEnumerable <string> > Get([FromQuery] int type = 1)
        {
            if (type == 1)
            {
                var rd         = new Random();
                var createUser = new CreateUser($"catcher-{rd.Next(1, 9999)}");
                await _dispatcher.SendAsync(createUser);

                return(new string[] { "value1", "value2" });
            }
            else
            {
                var getUserById = new GetUserById(1);
                var user        = await _dispatcher.GetResultAsync <GetUserById, GetUserByIdVm>(getUserById);

                return(new string[] { "value1", "value2", user.Name });
            }
        }
예제 #9
0
파일: QueryTest.cs 프로젝트: RS1989/booking
        public void GetUserByIdTest(string name, string expectedName)
        {
            var id = Guid.NewGuid();

            _context.User.Add(new Models.User {
                Name = name, Id = id
            });

            _context.SaveChanges();

            var query  = new GetUserById(_context, id);
            var result = query.Execute();

            Assert.IsNotNull(result, "wrong result");
            Assert.IsTrue(result.Id == id, "wrong result");
            Assert.IsTrue(result.Name == expectedName, "wrong result");

            Dispose();
        }
예제 #10
0
        public async Task <IActionResult> GetCurrentAccount()
        {
            var identity      = (HttpContext.User.Identity as ClaimsIdentity).Name;
            int currentUserId = int.Parse(identity);

            var request   = new GetUserById(currentUserId);
            var validator = (IValidator <GetUserById>)_serviceProvider.GetService(typeof(IValidator <GetUserById>));

            try
            {
                await validator.ValidateAndThrowAsync(request);

                var user = await _mediator.Send(request);

                return(Ok(user));
            }
            catch (Exception e)
            {
                return(BadRequest(e));
            }
        }
예제 #11
0
 public object Get(GetUserById request)
 {
     return(new GetUserByIdResponse {
         Result =
     });
예제 #12
0
 public object Get(GetUserById request)
 {
     return(WithDb(db => Logic.GetById(request.Id)));
 }
예제 #13
0
 public async Task <User> Handle(GetUserById request, CancellationToken cancellationToken)
 {
     return(await _dbContext.Users
            .AsNoTracking()
            .FirstOrDefaultAsync(user => user.UserId == request.UserId));
 }
예제 #14
0
 public object Get(GetUserById get)
 {
     return UserService.GetUser(get.Id).ToDto();
 }
예제 #15
0
        public async Task <User> HandleAsync(GetUserById query, CancellationToken ct)
        {
            var result = UserRepository.GetByIdAsync(query.Id);

            return(await result);
        }
예제 #16
0
        public async Task <OneOf <NotFound, UserInfo> > Execute(SqlTransaction transaction, GetUserById query)
        {
            var sql = @"
SELECT UserId, Email, FirstName, LastName
FROM Pttcd.Users
WHERE UserId = @UserId";

            var result = await transaction.Connection.QuerySingleOrDefaultAsync <UserInfo>(sql, query, transaction);

            if (result == null)
            {
                return(new NotFound());
            }
            else
            {
                return(result);
            }
        }