コード例 #1
0
        public async Task AddAgentClaim_ClaimNotAdded(string email, string key, string value)
        {
            // Arrange
            var agent = new NARE.Domain.Entities.Agent()
            {
                Email = email
            };

            UserManager.Setup(u => u.AddClaimAsync(It.IsAny <NARE.Domain.Entities.Agent>(), It.IsAny <Claim>())).ReturnsAsync(IdentityResult.Failed());
            // Act / Assert
            await Assert.ThrowsAsync <ArgumentNullException>(() => Handler.Handle(new AddAgentClaimCommand(agent, key, value), CancellationToken.None));
        }
コード例 #2
0
        public async Task NewAgent_ThrowsAccountAlreadyExistsException(string name, string email, string password)
        {
            // Arrange
            var requestedUser = new NARE.Domain.Entities.Agent()
            {
                Email = email
            };

            Mediator.Setup(m => m.Send(It.IsAny <GetAgentByEmailQuery>(), default(CancellationToken))).ReturnsAsync(requestedUser);
            // Act / Assert
            await Assert.ThrowsAsync <AccountAlreadyExistsException>(() => Handler.Handle(new NewAgentCommand(name, email, password), CancellationToken.None));
        }
コード例 #3
0
        public void UpdateAgentInformation_AgentIsValid(string agentId)
        {
            // Arrange
            var agent = new NARE.Domain.Entities.Agent()
            {
                Id = agentId
            };
            // Act
            var result = Validator.Validate(new UpdateAgentInformationCommand(agent));

            // Assert
            Assert.True(result.IsValid);
        }
コード例 #4
0
        public async Task ResetPassword_ThrowsFailedToResetPasswordException(string email, string token, string newPassword)
        {
            // Arrange
            var requestedAgent = new NARE.Domain.Entities.Agent()
            {
                Email = email
            };

            Mediator.Setup(m => m.Send(It.IsAny <GetAgentByEmailQuery>(), default(CancellationToken))).ReturnsAsync(requestedAgent);
            UserManager.Setup(u => u.ResetPasswordAsync(It.IsAny <NARE.Domain.Entities.Agent>(), It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(IdentityResult.Failed());
            // Act / Assert
            await Assert.ThrowsAsync <FailedToResetPassword>(() => Handler.Handle(new ResetPasswordCommand(token, email, newPassword), CancellationToken.None));
        }
コード例 #5
0
        public void AddAgentClaim_ValueIsValid(string key, string value)
        {
            // Arrange
            var agent = new NARE.Domain.Entities.Agent()
            {
                UserName = "******",
                Id       = "123"
            };
            // Act
            var result = Validator.Validate(new AddAgentClaimCommand(agent, key, value));

            // Assert
            Assert.True(result.IsValid);
        }
コード例 #6
0
        public void RemoveAgentClaim_KeyIsValid(string key)
        {
            // Arrange
            var agent = new NARE.Domain.Entities.Agent()
            {
                Email = "*****@*****.**",
                Id    = "123"
            };
            // Act
            var result = Validator.Validate(new RemoveAgentClaimCommand(agent, key));

            // Assert
            Assert.True(result.IsValid);
        }
コード例 #7
0
        public void AddAgentClaim_AgentIsValid(string agentName)
        {
            // Arrange
            var agent = new NARE.Domain.Entities.Agent()
            {
                UserName = agentName,
                Id       = "123"
            };
            // Act
            var result = Validator.Validate(new AddAgentClaimCommand(agent, "key", "value"));

            // Assert
            Assert.True(result.IsValid);
        }
コード例 #8
0
        public async Task AddAgentClaim_ClaimAdded(string email, string key, string value)
        {
            // Arrange
            var agent = new NARE.Domain.Entities.Agent()
            {
                Email = email
            };

            UserManager.Setup(u => u.AddClaimAsync(It.IsAny <NARE.Domain.Entities.Agent>(), It.IsAny <Claim>())).ReturnsAsync(IdentityResult.Success);
            // Act
            var result = await Handler.Handle(new AddAgentClaimCommand(agent, key, value), CancellationToken.None);

            // Assert
            Assert.True(result);
        }
コード例 #9
0
        public void GenerateResetPasswordToken_ReturnsValidToken(string email, string token)
        {
            // Arrange
            var requestedAgent = new NARE.Domain.Entities.Agent()
            {
                Email = email
            };

            UserManager.Setup(u => u.GeneratePasswordResetTokenAsync(It.IsAny <NARE.Domain.Entities.Agent>())).ReturnsAsync(token);
            // Act
            var returnedToken = Handler.Handle(new GenerateResetPasswordTokenQuery(requestedAgent), CancellationToken.None).Result;

            // Assert
            Assert.Equal(returnedToken, token);
        }
コード例 #10
0
        public void AddAgentClaim_KeyIsInvalid(string key, string value)
        {
            // Arrange
            var agent = new NARE.Domain.Entities.Agent()
            {
                UserName = "******",
                Id       = "123"
            };
            // Act
            var result = Validator.Validate(new AddAgentClaimCommand(agent, key, value));

            // Assert
            Assert.Contains("Key required", result.Errors.First().ErrorMessage);
            Assert.False(result.IsValid);
        }
コード例 #11
0
        public async Task RemoveAgentTest_RemovesSuccessfully(string agentId)
        {
            // Arrange
            var agent = new NARE.Domain.Entities.Agent()
            {
                Id = agentId
            };

            Mediator.Setup(m => m.Send(It.IsAny <GetAgentByIdQuery>(), default(CancellationToken))).ReturnsAsync(agent);
            UserManager.Setup(u => u.DeleteAsync(It.IsAny <NARE.Domain.Entities.Agent>())).ReturnsAsync(IdentityResult.Success);
            // Act
            var result = await Handler.Handle(new RemoveAgentCommand(agentId), CancellationToken.None);

            // Assert
            Assert.True(result);
        }
コード例 #12
0
        public void ResetPassword_ValidPasswordReset(string email, string token, string newPassword)
        {
            // Arrange
            var requestedAgent = new NARE.Domain.Entities.Agent()
            {
                Email = email
            };

            Mediator.Setup(m => m.Send(It.IsAny <GetAgentByEmailQuery>(), default(CancellationToken))).ReturnsAsync(requestedAgent);
            UserManager.Setup(u => u.ResetPasswordAsync(It.IsAny <NARE.Domain.Entities.Agent>(), It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(IdentityResult.Success);
            // Act
            var result = Handler.Handle(new ResetPasswordCommand(token, email, newPassword), CancellationToken.None).Result;

            // Assert
            Assert.True(result);
        }
コード例 #13
0
        public void GetAgentDtoById_ReturnsExpectedAgent()
        {
            // Arrange
            var requestedAgent = new NARE.Domain.Entities.Agent()
            {
                Email    = "*****@*****.**",
                UserName = "******",
                Id       = "123"
            };
            // Act
            var returnedAgent = Handler.Handle(new GetAgentByIdQuery(requestedAgent.Id), CancellationToken.None).Result;

            // Assert
            Assert.Equal(requestedAgent.Email, returnedAgent.Email);
            Assert.Equal(requestedAgent.UserName, returnedAgent.UserName);
            Assert.Equal(requestedAgent.Id, returnedAgent.Id);
        }
コード例 #14
0
        public void GetAgentByEmail_ReturnsExpectedAgent(string email, string userName, string id)
        {
            // Arrange
            var requestedAgent = new NARE.Domain.Entities.Agent()
            {
                Email    = email,
                UserName = userName,
                Id       = id
            };
            // Act
            var returnedAgent = Handler.Handle(new GetAgentByEmailQuery(requestedAgent.Email), CancellationToken.None).Result;

            // Assert
            Assert.Equal(requestedAgent.Email, returnedAgent.Email);
            Assert.Equal(requestedAgent.UserName, returnedAgent.UserName);
            Assert.Equal(requestedAgent.Id, returnedAgent.Id);
        }
コード例 #15
0
        public async Task LoginAgent_ThrowsAccountLockedException(string email, string password)
        {
            // Arrange
            var requestedAgent = new NARE.Domain.Entities.Agent()
            {
                Email = email
            };

            Mediator.Setup(m => m.Send(It.IsAny <GetAgentByEmailQuery>(), default(CancellationToken))).ReturnsAsync(requestedAgent);
            SignInManager
            .Setup(s => s.CheckPasswordSignInAsync(It.IsAny <NARE.Domain.Entities.Agent>(), It.IsAny <string>(), It.IsAny <bool>()))
            .ReturnsAsync(SignInResult.LockedOut);
            // Act / Assert
            // Act / Assert
            await Assert.ThrowsAsync <AccountLockedException>(() =>
                                                              Handler.Handle(new LoginAgentQuery(email, password), CancellationToken.None));
        }
コード例 #16
0
        public async Task GetAgentById_ReturnsValidAgent(string agentId)
        {
            var agent = new NARE.Domain.Entities.Agent()
            {
                Id    = agentId,
                Email = "*****@*****.**"
            };

            // Arrange
            Mediator.Setup(m => m.Send(It.IsAny <GetAgentByIdQuery>(), default(CancellationToken))).ReturnsAsync(agent);
            // Act
            var result = await Handler.Handle(new GetAgentDtoByIdQuery(agentId), CancellationToken.None);

            // Assert
            Assert.Equal(agentId, result.Id);
            Assert.Equal(agent.Email, result.Email);
        }
コード例 #17
0
        public void GenerateResetPasswordEmail_EmailSent(string email, string token)
        {
            // Arrange
            var requestedAgent = new NARE.Domain.Entities.Agent()
            {
                Email = email
            };

            Mediator.Setup(m => m.Send(It.IsAny <GetAgentByEmailQuery>(), default(CancellationToken))).ReturnsAsync(requestedAgent);
            Mediator.Setup(m => m.Send(It.IsAny <GenerateResetPasswordTokenQuery>(), default(CancellationToken))).ReturnsAsync(token);
            NotificationService.Setup(n => n.SendNotificationAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(true);
            // Act
            var result = Handler.Handle(new GenerateResetPasswordEmailQuery(email), CancellationToken.None).Result;

            // Assert
            Assert.Equal(token, result);
        }
コード例 #18
0
        public async Task DisableAgent_ReturnsTrue(string agentId, string email)
        {
            var requestedAgent = new NARE.Domain.Entities.Agent()
            {
                Id             = agentId,
                Email          = email,
                AccountEnabled = false
            };

            // Arrange
            Mediator.Setup(m => m.Send(It.IsAny <GetAgentByIdQuery>(), default(CancellationToken))).ReturnsAsync(requestedAgent);
            Mediator.Setup(m => m.Send(It.IsAny <UpdateAgentCommand>(), default(CancellationToken))).ReturnsAsync(true);
            // Act
            var result = await Handler.Handle(new DisableAgentCommand(agentId), CancellationToken.None);

            // Assert
            Assert.True(result);
        }
コード例 #19
0
        public void LoginAgent_ReturnsValidToken(string email, string password, string token, string id)
        {
            // Arrange
            var requestedAgent = new NARE.Domain.Entities.Agent()
            {
                Id             = id,
                Email          = email,
                AccountEnabled = true
            };

            Mediator.Setup(m => m.Send(It.IsAny <GetAgentByEmailQuery>(), default(CancellationToken))).Returns(Task.FromResult(requestedAgent));
            SignInManager
            .Setup(s => s.CheckPasswordSignInAsync(It.IsAny <NARE.Domain.Entities.Agent>(), It.IsAny <string>(), It.IsAny <bool>()))
            .Returns(Task.FromResult(SignInResult.Success));
            Mediator.Setup(m => m.Send(It.IsAny <GenerateLoginTokenQuery>(), default(CancellationToken))).Returns(Task.FromResult(token));
            // Act
            var returnedToken = Handler.Handle(new LoginAgentQuery(email, password), default(CancellationToken)).Result;

            // Assert
            Assert.Equal(token, returnedToken);
        }