Exemple #1
0
        public async Task ValidateCanCreateUser()
        {
            // arrange
            var user = TestObjectCreationUtility.CreateUser();

            mocker
            .GetMock <IUsersRepository>()
            .Setup(x => x.GetByEmailAsync(It.IsAny <string>()))
            .ReturnsAsync((User)null);

            mocker
            .GetMock <IEncryptionSerice>()
            .Setup(x => x.Encrypt(It.IsAny <string>()))
            .Returns("some-value");

            mocker
            .GetMock <IUsersRepository>()
            .Setup(x => x.InsertAsync(user))
            .ReturnsAsync("new-id");

            // act
            var createdUser = await service.RegisterUserAsync(user);

            // assert
            Assert.NotNull(createdUser);

            mocker.VerifyAll();
        }
Exemple #2
0
        public async Task ValidateCanDeleteUser()
        {
            // arrange
            var user      = TestObjectCreationUtility.CreateUser();
            var savedGame = TestObjectCreationUtility.CreateGame();

            var savedStories = new List <Game> {
                savedGame
            };

            mocker
            .GetMock <IUsersRepository>()
            .Setup(x => x.GetByEmailAsync(It.IsAny <string>()))
            .ReturnsAsync(user);

            mocker
            .GetMock <IGameRepository>()
            .Setup(x => x.GetByUserIdAsync(It.IsAny <string>()))
            .ReturnsAsync(savedStories);

            mocker
            .GetMock <IUsersRepository>()
            .Setup(x => x.DeleteAsync(It.IsAny <User>()))
            .Returns(Task.CompletedTask);

            mocker
            .GetMock <IGameRepository>()
            .Setup(x => x.DeleteAsync(It.IsAny <Game>()))
            .Returns(Task.CompletedTask);

            // act, assert
            await service.DeleteUser(user.Email);

            mocker.VerifyAll();
        }
Exemple #3
0
        public async Task ValidateFailsOnDeletingUnexistingUser()
        {
            // arrange
            var user = TestObjectCreationUtility.CreateUser();

            mocker
            .GetMock <IUsersRepository>()
            .Setup(x => x.GetByEmailAsync(It.IsAny <string>()))
            .ReturnsAsync((User)null);

            // act, assert
            await Assert.ThrowsAsync <ResourceNotFoundException>(() => service.DeleteUser(user.Email));

            mocker.VerifyAll();
        }
Exemple #4
0
        public async Task ValidateCreateUserFailsForDuplicatedUser()
        {
            // arrange
            var user = TestObjectCreationUtility.CreateUser();

            mocker
            .GetMock <IUsersRepository>()
            .Setup(x => x.GetByEmailAsync(It.IsAny <string>()))
            .ReturnsAsync(user);

            // act, assert
            await Assert.ThrowsAsync <ResourceAlreadyExistsException>(() => service.RegisterUserAsync(user));

            mocker.VerifyAll();
        }
Exemple #5
0
        public async Task ValidateCanGetUser()
        {
            // arrange
            var user = TestObjectCreationUtility.CreateUser();

            mocker
            .GetMock <IUsersRepository>()
            .Setup(x => x.GetByEmailAsync(It.IsAny <string>()))
            .ReturnsAsync(user);

            // act
            var savedUser = await service.GetUserAsync(user.Email);

            // assert
            Assert.NotNull(savedUser);
            Assert.Null(savedUser.Password);

            mocker.VerifyAll();
        }
Exemple #6
0
        public async Task ValidateCanLogin()
        {
            // arrange
            var user = TestObjectCreationUtility.CreateUser();

            mocker
            .GetMock <IEncryptionSerice>()
            .Setup(x => x.Encrypt(It.Is <string>(x => x == user.Password)))
            .Returns("some-value");

            mocker
            .GetMock <IUsersRepository>()
            .Setup(x => x.GetByEmailAndPasswordAsync(It.IsAny <string>(), It.IsAny <string>()))
            .ReturnsAsync(user);

            // act
            var savedUser = await service.LoginAsync(user.Email, user.Password);

            // assert
            Assert.NotNull(savedUser);

            mocker.VerifyAll();
        }