Esempio n. 1
0
        public void EnsureUserExistsAsync_UserDoesNotExist_ReturnedAfterCreation()
        {
            IDbContext dbContext = Substitute.For <IDbContext>();
            UserInfo   userInfo  = new UserInfo();

            userInfo.AuthId = Guid.NewGuid().ToString();
            userInfo.Name   = Guid.NewGuid().ToString();
            userInfo.Email  = Guid.NewGuid().ToString();

            UserDbModel userDbModel = new UserDbModel();

            userDbModel.Id     = Guid.NewGuid().ToString();
            userDbModel.AuthId = userInfo.AuthId;

            UserRepository userRepository = Substitute.For <UserRepository>();

            userRepository.GetByAuthIdAsync(dbContext, userInfo.AuthId).Returns <UserDbModel>(x => null);

            IMapper mapper = CreateMapper();

            CreateUserCommand createUserCommand = Substitute.For <CreateUserCommand>();

            createUserCommand.ExecuteAsync(dbContext, userInfo.AuthId, userInfo.Name, userInfo.Email).Returns(userDbModel);

            UserViewService userViewService = new UserViewService(dbContext, mapper, userRepository, createUserCommand);
            UserViewModel   result          = userViewService.EnsureUserExistsAsync(userInfo).Result;

            Assert.AreEqual(userInfo.AuthId, result.AuthId);
            createUserCommand.Received(1).ExecuteAsync(dbContext, userInfo.AuthId, userInfo.Name, userInfo.Email).Wait();
        }
Esempio n. 2
0
        public async Task <UserViewModel> EnsureUserExistsAsync(UserInfo userInfo)
        {
            var userModel = await _userRepository.GetByAuthIdAsync(_dbContext, userInfo.AuthId);

            if (userModel == null)
            {
                userModel = await _createUserCommand.ExecuteAsync(this._dbContext, userInfo.AuthId, userInfo.Name, userInfo.Email);
            }
            var userViewModel = _mapper.Map <UserViewModel>(userModel);

            return(userViewModel);
        }
        public async Task <bool> Register(RegisterRequestApiModel user)
        {
            var result = false;

            try
            {
                var userData  = Mapper.Map <RegisterRequestApiModel, RegisterUserDTO>(user);
                var dbCommand = new CreateUserCommand(dbContext, userData);
                result = await dbCommand.ExecuteAsync();
            }
            catch
            {
                // TODO: Add log here
            }

            return(result);
        }
Esempio n. 4
0
        public void ExecuteAsync_WithArguments_Creates()
        {
            IDbContext  dbContext   = Substitute.For <IDbContext>();
            string      authId      = Guid.NewGuid().ToString();
            string      userName    = Guid.NewGuid().ToString();
            string      email       = Guid.NewGuid().ToString();
            UserDbModel userDbModel = new UserDbModel();


            dbContext.When(x => x.InsertAsync(DbSchema.UserContainer, Arg.Any <UserDbModel>())).Do((callInfo) =>
            {
                Assert.AreEqual(DbSchema.UserContainer, callInfo.ArgAt <string>(0));
                userDbModel = callInfo.ArgAt <UserDbModel>(1);
            });

            CreateUserCommand cmd = new CreateUserCommand();

            cmd.ExecuteAsync(dbContext, authId, userName, email).Wait();

            dbContext.Received(1).InsertAsync(DbSchema.UserContainer, Arg.Any <UserDbModel>());
            Assert.AreEqual(authId, userDbModel.AuthId);
            Assert.AreEqual(userName, userDbModel.UserName);
            Assert.AreEqual(email, userDbModel.Email);
        }