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(); }
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(); }
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(); }
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(); }
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(); }
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(); }