Exemplo n.º 1
0
            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);
            }
Exemplo n.º 2
0
            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();
            }
Exemplo n.º 3
0
            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));
            }
Exemplo n.º 4
0
            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);
            }
Exemplo n.º 5
0
            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();
            }
Exemplo n.º 6
0
            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));
            }
Exemplo n.º 7
0
            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));
            }
Exemplo n.º 8
0
            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();
            }
Exemplo n.º 9
0
            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));
            }
Exemplo n.º 10
0
            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");
            }
Exemplo n.º 11
0
            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();
            }
Exemplo n.º 12
0
            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);
            }
Exemplo n.º 13
0
            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));
            }
Exemplo n.º 14
0
            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");
            }
Exemplo n.º 15
0
            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));
            }
Exemplo n.º 16
0
            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();
            }
Exemplo n.º 17
0
            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));
            }