コード例 #1
0
        public void AddUser_WhenCalled_ShouldReturnSameUser()
        {
            var usersRepository = new UsersRepository(DbContext);
            var userToAdd       = TestFactoryHelpers.CreateTestUser();

            var addedUser = usersRepository.AddUser(userToAdd);

            Assert.Equal(userToAdd, addedUser);
        }
コード例 #2
0
        public void AddUser_WhenCalled_ShouldPutCreatedOnToUser()
        {
            var usersRepository = new UsersRepository(DbContext);
            var userToAdd       = TestFactoryHelpers.CreateTestUser();

            var addedUser = usersRepository.AddUser(userToAdd);

            Assert.NotNull(addedUser.CreatedOn);
        }
コード例 #3
0
        public async Task AddUser_WhenCalled_ShouldReturnOkWithTheAddedUser()
        {
            var createUserModel = TestFactoryHelpers.CreateTestCreateUserModel();

            var result = await _usersService.AddUser(createUserModel);

            var data = (UserReturnModel)result.Data;

            Assert.Equal(createUserModel.EmailAddress, data.EmailAddress);
            Assert.Equal(EServiceActionStatus.Created, result.Status);
        }
コード例 #4
0
        public void AddUser_WhenCalled_ShouldTrackUserInDbContext()
        {
            var usersRepository = new UsersRepository(DbContext);
            var userToAdd       = TestFactoryHelpers.CreateTestUser();

            var addedUser = usersRepository.AddUser(userToAdd);

            var trackingEntities = DbContext.ChangeTracker.Entries().Select(x => x.Entity);

            Assert.Contains(addedUser, trackingEntities);
        }
コード例 #5
0
        public async Task AddUser_WhenCalled_ShouldLowerCaseEmailAddress()
        {
            var emailAddress    = "*****@*****.**";
            var createUserModel = TestFactoryHelpers.CreateTestCreateUserModel(emailAddress: emailAddress);

            var result = await _usersService.AddUser(createUserModel);

            var data = (UserReturnModel)result.Data;

            Assert.Equal(emailAddress.ToLower(), data.EmailAddress);
            Assert.Equal(EServiceActionStatus.Created, result.Status);
        }
コード例 #6
0
        public async Task GetUserByEmailAddressAndPassword_WrongPassword_ShouldReturnNull()
        {
            var usersRepository = new UsersRepository(DbContext);
            var existingUser    = TestFactoryHelpers.CreateTestUser();

            DbContext.Users.Add(existingUser);
            DbContext.SaveChanges();

            var user = await usersRepository.GetUserByEmailAddressAndPassword("*****@*****.**", "wrongPassword");

            Assert.Null(user);
        }
コード例 #7
0
        public async Task GetUserByEmailAddressAndPassword_ValidCredentialsForNotDeletedUser_ShouldReturnUser()
        {
            var usersRepository = new UsersRepository(DbContext);
            var existingUser    = TestFactoryHelpers.CreateTestUser();

            DbContext.Users.Add(existingUser);
            DbContext.SaveChanges();

            var user = await usersRepository.GetUserByEmailAddressAndPassword("*****@*****.**", "password");

            Assert.Equal(existingUser.UserId, user.UserId);
        }
コード例 #8
0
        public async Task GetUserById_NonExistingUserId_ShouldReturnNull()
        {
            long userIdTest      = 1;
            var  usersRepository = new UsersRepository(DbContext);
            var  existingUser    = TestFactoryHelpers.CreateTestUser(userId: userIdTest);

            DbContext.Users.Add(existingUser);
            DbContext.SaveChanges();

            var user = await usersRepository.GetUserById(userIdTest + 1);

            Assert.Null(user);
        }
コード例 #9
0
        public async Task SignIn_InvalidCredentials_ShouldReturnUnAuthorizedWithNullObject()
        {
            var signInModel = TestFactoryHelpers.CreateTestSignInModel();
            var returnedUserFromRepository =
                _usersRepositoryMock
                .Setup(x =>
                       x.GetUserByEmailAddressAndPassword(It.IsAny <string>(), It.IsAny <string>()))
                .ReturnsAsync(value: null);

            var result = await _usersService.SignIn(signInModel);

            Assert.Null(result.Data);
            Assert.Equal(EServiceActionStatus.Unauthorized, result.Status);
        }
コード例 #10
0
        public async Task GetUserById_ExistingUser_ShouldReturnOkStatusWithTheUser()
        {
            var user = TestFactoryHelpers.CreateTestUser();

            _usersRepositoryMock.Setup(x => x.GetUserById(1)).ReturnsAsync(user);

            var result = await _usersService.GetUserById(1);

            var data = (UserReturnModel)result.Data;

            Assert.Equal(user.UserId, data.UserId);
            Assert.Equal(user.EmailAddress, data.EmailAddress);
            Assert.Equal(EServiceActionStatus.Ok, result.Status);
        }
コード例 #11
0
        public async Task SignIn_WhenCalled_ShouldLowerCaseEmailAddress()
        {
            var emailAddress = "*****@*****.**";
            var signInModel  = TestFactoryHelpers.CreateTestSignInModel(emailAddress: emailAddress);

            _usersRepositoryMock
            .Setup(x =>
                   x.GetUserByEmailAddressAndPassword(emailAddress.ToLower(), It.IsAny <string>()))
            .ReturnsAsync(TestFactoryHelpers.CreateTestUser(emailAddress: emailAddress.ToLower()));

            var result = await _usersService.SignIn(signInModel);

            var data = (UserReturnModel)result.Data;

            Assert.Equal(emailAddress.ToLower(), data.EmailAddress);
            Assert.Equal(EServiceActionStatus.Ok, result.Status);
        }
コード例 #12
0
        public async Task SignIn_ValidCredentials_ShouldReturnOkWithUserReturnedFromRepository()
        {
            var signInModel = TestFactoryHelpers.CreateTestSignInModel();
            var user        = TestFactoryHelpers.CreateTestUser();
            var returnedUserFromRepository =
                _usersRepositoryMock
                .Setup(x =>
                       x.GetUserByEmailAddressAndPassword(It.IsAny <string>(), It.IsAny <string>()))
                .ReturnsAsync(user);

            var result = await _usersService.SignIn(signInModel);

            var data = (UserReturnModel)result.Data;

            Assert.Equal(user.UserId, data.UserId);
            Assert.Equal(user.EmailAddress, data.EmailAddress);
            Assert.Equal(EServiceActionStatus.Ok, result.Status);
        }