Beispiel #1
0
        public async Task <UserDTO> RevokePermission([FromBody] RevokeUserPermissionDTO input)
        {
            var command = new RevokeUserPermissionCommand(input);
            var result  = await _commandDispatcher.Execute(command);

            return(result);
        }
Beispiel #2
0
        public void give_RevokeUserPermissionCommand_handler_should_call_session_Get_and_Commit_on_granted_permission()
        {
            // Assemble
            var mockAgg           = new RevokeUserPermissionCommandHandlerMockAggregate();
            var testAgg           = mockAgg.SetupAdminUser();
            var testPermissionAgg = mockAgg.SetupTestPermission();

            mockAgg.setup_session_to_return_correct_aggregate(testAgg, testPermissionAgg);
            var grantHandler  = mockAgg.GrantUserPermissionRequestHandlerFactory();
            var revokeHandler = mockAgg.RevokeUserPermissionHandlerFactory();

            var grantInput = new GrantUserPermissionDTO
            {
                ForId = testAgg.Id,
                ById  = testAgg.Id,
                PermissionsToGrant = new Dictionary <Guid, PermissionDetails>
                {
                    {
                        testPermissionAgg.Id, new PermissionDetails
                        {
                            Reason = "testGrantReason"
                        }
                    }
                }
            };

            var grantCommand = new GrantUserPermissionCommand(grantInput);

            var revokeInput = new RevokeUserPermissionDTO
            {
                ForId = testAgg.Id,
                ById  = testAgg.Id,
                PermissionsToRevoke = new Dictionary <Guid, PermissionDetails>
                {
                    {
                        testPermissionAgg.Id, new PermissionDetails
                        {
                            Reason = "testRevokeReason"
                        }
                    }
                }
            };

            var revokeCommand = new RevokeUserPermissionCommand(revokeInput);

            var grantResult = grantHandler.Handle(grantCommand);

            // Apply
            var revokeResult = revokeHandler.Handle(revokeCommand);

            // Assert
            Assert.True(mockAgg.SessionGetWasCalled);
            Assert.True(mockAgg.SessionCommitWasCalled);
            Assert.True(mockAgg.SessionGetPermisisonWasCalled);
        }
Beispiel #3
0
        public async void given_revokeuserpermissionscommand_command_dispatcher_should_get_same_command_created_in_controller()
        {
            //Assemble
            var mockAgg = new UserControllerMockAggregate();

            var id       = new Guid();
            var userId   = new Guid();
            var requests = new Dictionary <Guid, PermissionDetails>
            {
                {
                    new Guid(), new PermissionDetails
                    {
                        EventType    = "testEvent",
                        IsPending    = true,
                        Reason       = "testReason",
                        RequestedBy  = id,
                        RequestedFor = userId,
                        RequestDate  = new DateTime()
                    }
                }
            };

            var input = new RevokeUserPermissionDTO()
            {
                ById  = id,
                ForId = userId,
                PermissionsToRevoke = requests
            };

            var command = new RevokeUserPermissionCommand(input);

            mockAgg.setup_dispatcher_to_verify_revokeUserPermissionRequestCommands_are_the_same(command);

            var controller = mockAgg.CreateUserController();

            //Apply
            var result = await controller.RevokePermission(input);

            //Assert
            Assert.IsType <UserDTO>(result);
            Assert.Equal(result.Id, input.ForId);
            Assert.Equal(result.PermissionList, input.PermissionsToRevoke);
        }
Beispiel #4
0
 public void setup_dispatcher_to_verify_revokeUserPermissionRequestCommands_are_the_same(RevokeUserPermissionCommand command)
 {
     CommandDispatcherMock.Setup(a => a.Execute(It.IsAny <RevokeUserPermissionCommand>()))
     .Callback <ICommand <UserDTO> >((a) => { UserCommand = (RevokeUserPermissionCommand)a; })
     .ReturnsAsync(new UserDTO()
     {
         Id             = command.Input.ForId,
         PermissionList = command.Input.PermissionsToRevoke
     });
 }