Exemplo n.º 1
0
        public void TestInternalGroupAddedEventsNotPublished()
        {
            int roleSomethingAssignedCount = 0;
            int groupSomethingAddedCount = 0;
            DomainEventPublisher.Instance.Subscribe<GroupAssignedToRole>(e => roleSomethingAssignedCount++);
            DomainEventPublisher.Instance.Subscribe<GroupGroupAdded>(e => groupSomethingAddedCount++);
            DomainEventPublisher.Instance.Subscribe<UserAssignedToRole>(e => roleSomethingAssignedCount++);
            DomainEventPublisher.Instance.Subscribe<GroupUserAdded>(e => groupSomethingAddedCount++);

            Tenant tenant = this.CreateTenant();
            User user = this.CreateUser(tenant);
            Role managerRole = tenant.ProvisionRole("Manager", "A manager role.", true);
            Group group = new Group(user.TenantId, "Managers", "A group of managers.");

            Mock<IGroupRepository> groupRepository = new Mock<IGroupRepository>();
            groupRepository.Setup(r => r.GroupNamed(group.TenantId, group.Name)).Returns(group);
            Mock<IUserRepository> userRepository = new Mock<IUserRepository>();
            userRepository.Setup(r => r.UserWithUserName(user.TenantId, user.UserName)).Returns(user);

            GroupMemberService groupMemberService = new GroupMemberService(userRepository.Object, groupRepository.Object);

            managerRole.AssignGroup(group, groupMemberService);
            managerRole.AssignUser(user);
            group.AddUser(user);

            Assert.AreEqual(2, roleSomethingAssignedCount);
            Assert.AreEqual(1, groupSomethingAddedCount);
        }
Exemplo n.º 2
0
        public void TestUserIsInRole()
        {
            Tenant tenant = this.CreateTenant();
            User user = this.CreateUser(tenant);
            Role managerRole = tenant.ProvisionRole("Manager", "A manager role.", true);
            Group group = new Group(user.TenantId, "Managers", "A group of managers.");

            Mock<IGroupRepository> groupRepository = new Mock<IGroupRepository>();
            groupRepository.Setup(r => r.GroupNamed(group.TenantId, group.Name)).Returns(group);
            Mock<IUserRepository> userRepository = new Mock<IUserRepository>();
            userRepository.Setup(r => r.UserWithUserName(user.TenantId, user.UserName)).Returns(user);

            GroupMemberService groupMemberService = new GroupMemberService(userRepository.Object, groupRepository.Object);

            managerRole.AssignGroup(group, groupMemberService);
            group.AddUser(user);

            Assert.IsTrue(group.IsMember(user, groupMemberService));
            Assert.IsTrue(managerRole.IsInRole(user, groupMemberService));
        }