public async Task ShouldReturnResponse_WhenAllTasksSucceed() { var token = DynamicTestHelper <string> .Get(); var user = DynamicTestHelper <User> .Get(); user.Verification_Token = token; user.Email_Verified = 0; var user2 = DynamicTestHelper <User> .Get(); user2.Username = user.Username; user2.UserId = user.UserId; user2.Email_Verified = 1; var authResponse = DynamicTestHelper <AuthResponse> .Get(); authResponse.User = user2; _authRepository .Stub(x => x.GetUserByUsername(user.Username)) .Return(Task.FromResult(user)); _authRepository .Stub(x => x.SetVerificationStatus(user.UserId, true)) .Return(Task.FromResult(user2)); _authService .Stub(x => x.GetAuthentication(user2.Username, user2.Password)) .Return(Task.FromResult(authResponse)); var response = await _classUnderTest.VerifyEmail(user.Username, token); response.Should().NotBeNull(); response.ResponseBody.Should().NotBeNull(); response.ResponseBody.User.Should().Be(user2); }
public async Task ShouldReturnAValidResponse_WhenNoErrors() { var name = DynamicTestHelper <string> .Get(); var email = DynamicTestHelper <string> .Get(); var username = DynamicTestHelper <string> .Get(); var password = DynamicTestHelper <string> .Get(); var authResponse = DynamicTestHelper <AuthResponse> .Get(); _emailService .Stub(x => x.SendWelcomeEmail(Arg <User> .Is.Anything)); _authRepository .Stub(x => x.CreateAccount(Arg <User> .Is.Anything)) .Return(Task.FromResult <string>(null)); _authService .Stub(x => x.GetAuthentication(Arg <string> .Is.Anything, Arg <string> .Is.Anything)) .Return(Task.FromResult(authResponse)); var response = await _classUnderTest.CreateAccount(name, email, username, password); response.ResponseBody.Should().NotBeNull(); response.Succeeded.Should().BeTrue(); }
public void ThrowsError_WhenGetAuthenticationFails() { var token = DynamicTestHelper <string> .Get(); var user = DynamicTestHelper <User> .Get(); user.Verification_Token = token; user.Email_Verified = 0; var user2 = DynamicTestHelper <User> .Get(); user2.Username = user.Username; user2.UserId = user.UserId; user2.Email_Verified = 1; _authRepository .Stub(x => x.GetUserByUsername(user.Username)) .Return(Task.FromResult(user)); _authRepository .Stub(x => x.SetVerificationStatus(user.UserId, true)) .Return(Task.FromResult(user2)); _authService .Stub(x => x.GetAuthentication(Arg <string> .Is.Anything, Arg <string> .Is.Anything)) .Throw(new Exception()); Assert.ThrowsAsync <Exception>(async() => await _classUnderTest.VerifyEmail(user.Username, token)); }
public async Task ShouldReturnAuthResponse_WhenNoErrors() { var userId = DynamicTestHelper <string> .Get(); var name = DynamicTestHelper <string> .Get(); var email = DynamicTestHelper <string> .Get(); var user = DynamicTestHelper <User> .Get(); var authResponse = DynamicTestHelper <AuthResponse> .Get(); authResponse.User = user; _authRepository .Stub(x => x.UpdateAccount(userId, name, email)) .Return(Task.FromResult(user)); _authService .Stub(x => x.GetAuthentication(user.Username, user.Password)) .Return(Task.FromResult(authResponse)); var results = await _classUnderTest.UpdateAccount(userId, name, email); results.Should().NotBeNull(); results.ResponseBody.User.Should().Be(user); }
public async Task ReturnsResponse_WhenAuthenticationSucceeds() { var username = DynamicTestHelper <string> .Get(); const string password = "******"; var user = DynamicTestHelper <User> .Get(); user.Username = username; user.Password = password; var issuer = DynamicTestHelper <string> .Get(); var secret = TextEncodings.Base64Url.Decode(SecretString); _authRepository .Stub(x => x.GetUserByUsername(username)) .Return(Task.FromResult(user)); _applicationConfiguration .Stub(x => x.Issuer()) .Return(issuer); _applicationConfiguration .Stub(x => x.Secret()) .Return(secret); var results = await _classUnderTest.GetAuthentication(username, password); results.Should().BeOfType <AuthResponse>(); results.User.Should().Be(user); results.Jwt.Should().NotBeNull(); }
public void ShouldThrowNotFoundException_WhenUserNotFound() { var username = DynamicTestHelper <string> .Get(); var password = DynamicTestHelper <string> .Get(); _authRepository .Stub(x => x.GetUserByUsername(username)) .Throw(new NotFoundException("No user found")); Assert.ThrowsAsync <NotFoundException>(async() => await _classUnderTest.GetAuthentication(username, password)); }
public void ThrowsAuthenticationException_WhenPasswordsDoNotMatch() { var username = DynamicTestHelper <string> .Get(); const string password = "******"; var user = DynamicTestHelper <User> .Get(); _authRepository .Stub(x => x.GetUserByUsername(username)) .Return(Task.FromResult(user)); Assert.ThrowsAsync <AuthenticationException>(async() => await _classUnderTest.GetAuthentication(username, password)); }
public async Task ReturnsAnAuthResponse_WhenAuthenticationSucceeds() { var authResponse = DynamicTestHelper <AuthResponse> .Get(); _authService .Stub(x => x.GetAuthentication(Arg <string> .Is.Anything, Arg <string> .Is.Anything)) .Return(Task.FromResult(authResponse)); var response = await _classUnderTest.Login("username", "password"); response.Should().NotBeNull(); response.ResponseBody.Should().BeOfType <AuthResponse>(); response.ResponseBody.Jwt.Should().NotBeNull(); }
public void ShouldThrowError_WhenUpdateFails() { var userId = DynamicTestHelper <string> .Get(); var name = DynamicTestHelper <string> .Get(); var email = DynamicTestHelper <string> .Get(); _authRepository .Stub(x => x.UpdateAccount(userId, name, email)) .Throw(new Exception()); Assert.ThrowsAsync <Exception>(async() => await _classUnderTest.UpdateAccount(userId, name, email)); }
public async Task ShouldReturnUser_WhenNoErrors() { var user = DynamicTestHelper <User> .Get(); user.Username = "******"; _authRepository .Stub(x => x.GetUserByUsername(user.Username)) .Return(Task.FromResult(user)); var results = await _classUnderTest.GetUserByUsername("tester"); results.Should().NotBeNull(); results.Username.Should().Be("tester"); }
public async Task ReturnsTrue_WhenUsernameValid() { var requestResponse = DynamicTestHelper <RequestResponse <bool> > .Get(); requestResponse.ResponseBody = true; _authRepository .Stub(x => x.IsUsernameValid(Arg <string> .Is.Anything)) .Return(Task.FromResult(requestResponse)); var response = await _classUnderTest.IsUsernameValid("tester"); response.Should().NotBeNull(); response.ResponseBody.Should().BeTrue(); }
public async Task ShoudlReturnIdentity_WhenJwtValid() { var user = DynamicTestHelper <User> .Get(); user.UserId = 12365; user.Username = "******"; _authRepository .Stub(x => x.GetUser(user.UserId.ToString())) .Return(Task.FromResult(user)); var results = await _classUnderTest.GetIdentity(TestJwt); results.UserId.Should().Be(user.UserId.ToString()); results.Username.Should().Be(user.Username); }
public void ThrowErrorInSendWelcomeEmail() { var name = DynamicTestHelper <string> .Get(); var email = DynamicTestHelper <string> .Get(); var username = DynamicTestHelper <string> .Get(); var password = DynamicTestHelper <string> .Get(); _emailService .Stub(x => x.SendWelcomeEmail(Arg <User> .Is.Anything)) .Throw(new Exception()); Assert.ThrowsAsync <Exception>(async() => await _classUnderTest.CreateAccount(name, email, username, password)); }
public async Task ShouldReturnFailureWithMessage_TokensAreNotSame() { var token1 = DynamicTestHelper <string> .Get(); const string token2 = "completely random junk"; var user = DynamicTestHelper <User> .Get(); user.Verification_Token = token2; _authRepository .Stub(x => x.GetUserByUsername(Arg <string> .Is.Anything)) .Return(Task.FromResult(user)); var response = await _classUnderTest.VerifyEmail("username", token1); response.Succeeded.Should().BeFalse(); response.ErrorMessage.Should().Be("The Verification Token is invalid"); }
public void ShouldThrowError_WhenGetAuthenticationFails() { var userId = DynamicTestHelper <string> .Get(); var name = DynamicTestHelper <string> .Get(); var email = DynamicTestHelper <string> .Get(); var user = DynamicTestHelper <User> .Get(); _authRepository .Stub(x => x.UpdateAccount(userId, name, email)) .Return(Task.FromResult(user)); _authService .Stub(x => x.GetAuthentication(user.Username, user.Password)) .Throw(new Exception()); Assert.ThrowsAsync <Exception>(async() => await _classUnderTest.UpdateAccount(userId, name, email)); }
public async Task ReturnsValue_NoErrorsEncountered() { var user = DynamicTestHelper <User> .Get(); var requestResponse = DynamicTestHelper <RequestResponse <bool> > .Get(); requestResponse.ResponseBody = true; _authRepository .Stub(x => x.GetUserByUsername(Arg <string> .Is.Anything)) .Return(Task.FromResult(user)); _emailService .Stub(x => x.ResendWelcomeEmail(user)) .Return(requestResponse); var response = await _classUnderTest.ResendEmail("doughnutChef"); response.Should().NotBeNull(); response.ResponseBody.Should().BeTrue(); }
public void ThrowError_WhenGetAuthenticationFails() { var name = DynamicTestHelper <string> .Get(); var email = DynamicTestHelper <string> .Get(); var username = DynamicTestHelper <string> .Get(); var password = DynamicTestHelper <string> .Get(); _emailService .Stub(x => x.SendWelcomeEmail(Arg <User> .Is.Anything)); _authRepository .Stub(x => x.CreateAccount(Arg <User> .Is.Anything)) .Return(Task.FromResult <string>(null)); _authService .Stub(x => x.GetAuthentication(Arg <string> .Is.Anything, Arg <string> .Is.Anything)) .Throw(new Exception()); Assert.ThrowsAsync <Exception>(async() => await _classUnderTest.CreateAccount(name, email, username, password)); }