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

            user.UnassignRole(message.RoleId);
            await _users.SaveChangesAsync(token);
        }
        public async Task ShouldUnassingRole()
        {
            // Arrange
            Guid roleId = Guid.NewGuid();
            Guid userId = Guid.NewGuid();
            User entity = User.Create(userId, "Name");

            entity.AssignRole(roleId);
            var repository = new Mock <IUserRepository>();

            repository.Setup(e =>
                             e.GetByIdAsync(It.IsAny <Guid>(), It.IsAny <CancellationToken>())).ReturnsAsync(entity);
            UnassignRoleCommand cmd = new UnassignRoleCommand(userId, roleId);

            UserCommandHandler actual = new UserCommandHandler(repository.Object);

            // Act
            await actual.HandleAsync(cmd);

            // Assert
            Assert.IsTrue(entity.UserRoles == null || entity.UserRoles.Count == 0);
        }