コード例 #1
0
        public async Task HandleAsync(AssignRoleCommand message,
                                      CancellationToken token = default(CancellationToken))
        {
            var user = await this.GetUserAsync(message.UserId, token);

            user.AssignRole(message.RoleId);
            await _users.SaveChangesAsync(token);
        }
        public async Task ShouldAssingRole()
        {
            // Arrange
            Guid expectedId     = Guid.NewGuid();
            Guid expectedRoleId = Guid.NewGuid();
            User entity         = User.Create(expectedId, "Name");
            var  repository     = new Mock <IUserRepository>();

            repository.Setup(e =>
                             e.GetByIdAsync(It.IsAny <Guid>(), It.IsAny <CancellationToken>())).ReturnsAsync(entity);
            AssignRoleCommand cmd = new AssignRoleCommand(expectedId, expectedRoleId);

            UserCommandHandler actual = new UserCommandHandler(repository.Object);

            // Act
            await actual.HandleAsync(cmd);

            // Assert
            Assert.IsTrue(entity.UserRoles != null);
            Assert.IsTrue(entity.UserRoles.Any(e => e.RoleId == expectedRoleId));
        }