Beispiel #1
0
        public async Task ShouldModifyExistingAndAddPermissions()
        {
            // Arrange
            Guid               expectedId            = Guid.NewGuid();
            string             expectedName          = "Modified Name";
            ICollection <Guid> expectedPermissionIds = new List <Guid>
            {
                Guid.NewGuid(),
                               Guid.NewGuid()
            };
            Role entity     = Role.Create(expectedId, "Name", "Code");
            var  repository = new Mock <IRoleRepository>();

            repository.Setup(e =>
                             e.GetByIdAsync(It.IsAny <Guid>(), It.IsAny <CancellationToken>())).ReturnsAsync(entity);
            ModifyRoleCommand cmd =
                new ModifyRoleCommand(expectedId, expectedName, "Code", expectedPermissionIds, 1);

            RoleCommandHandler actual = new RoleCommandHandler(repository.Object);

            // Act
            await actual.HandleAsync(cmd);

            // Assert
            Assert.IsTrue(entity.Id == expectedId);
            Assert.IsTrue(entity.Name == expectedName);
            Assert.IsTrue(entity.RolePermissions != null);
            Assert.IsTrue(entity.RolePermissions.Count == expectedPermissionIds.Count);
        }
Beispiel #2
0
        public async Task ShouldCreateNewWithPermissions()
        {
            // Arrange
            Guid expectedId = Guid.NewGuid();
            ICollection <Guid> expectedPermissionIds = new List <Guid>
            {
                Guid.NewGuid(),
                               Guid.NewGuid()
            };
            var repository        = new Mock <IRoleRepository>();
            CreateRoleCommand cmd =
                new CreateRoleCommand(expectedId, "Name", "Code", expectedPermissionIds);

            RoleCommandHandler actual = new RoleCommandHandler(repository.Object);

            // Act
            await actual.HandleAsync(cmd);

            // Assert
            repository.Verify(e =>
                              e.Add(It.Is <Role>(a => a.Id == expectedId && a.RolePermissions != null &&
                                                 a.RolePermissions.Count == expectedPermissionIds.Count)
                                    ),
                              Times.Once
                              );
        }
Beispiel #3
0
        public async Task ShouldCreateNew()
        {
            // Arrange
            Guid expectedId       = Guid.NewGuid();
            var  repository       = new Mock <IRoleRepository>();
            CreateRoleCommand cmd =
                new CreateRoleCommand(expectedId, "Name", "Code", null);

            RoleCommandHandler actual = new RoleCommandHandler(repository.Object);

            // Act
            await actual.HandleAsync(cmd);

            // Assert
            repository.Verify(e =>
                              e.Add(It.Is <Role>(a => a.Id == expectedId)
                                    ),
                              Times.Once
                              );
        }
Beispiel #4
0
        public async Task ShouldAssingPermission()
        {
            // Arrange
            Guid expectedPermissionId = Guid.NewGuid();
            Guid roleId     = Guid.NewGuid();
            Role entity     = Role.Create(roleId, "Name", "Code");
            var  repository = new Mock <IRoleRepository>();

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

            RoleCommandHandler actual = new RoleCommandHandler(repository.Object);

            // Act
            await actual.HandleAsync(cmd);

            // Assert
            Assert.IsTrue(entity.RolePermissions != null);
            Assert.IsTrue(entity.RolePermissions.Any(e => e.PermissionId == expectedPermissionId));
        }
Beispiel #5
0
        public async Task ShouldDeleteExisting()
        {
            // Arrange
            Role entity     = Role.Create(Guid.NewGuid(), "Name", "Code");
            var  repository = new Mock <IRoleRepository>();

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

            RoleCommandHandler actual = new RoleCommandHandler(repository.Object);

            // Act
            await actual.HandleAsync(cmd);

            // Assert
            repository.Verify(e =>
                              e.Delete(It.Is <Role>(a => a.Equals(entity))),
                              Times.Once
                              );
        }