示例#1
0
 public PermissionInfoUpdatedEvent(UpdatePermissionInfoDTO dto)
 {
     Name        = dto.Name;
     Description = dto.Description;
     UpdatedById = dto.UpdatedById;
     Image       = dto.Image;
 }
示例#2
0
        public async Task <PermissionDTO> UpdatePermission([FromBody] UpdatePermissionInfoDTO input)
        {
            var command = new UpdatePermissionInfoCommand(input);
            var result  = await _commandDispatcher.Execute(command);

            return(result);
        }
示例#3
0
        public void given_UpdatePermissionInfoCommand_handler_should_call_session_Get_and_Commit()
        {
            // Asemble
            var mockAgg           = new UpdatePermissionInfoCommandHandlerMockAggregate();
            var testPermissionAgg = mockAgg.SetupTestPermission();
            var testAgg           = mockAgg.SetupAdminUser();

            mockAgg.setup_session_to_ensure_addAndCommit_are_called(testPermissionAgg);
            var handler = mockAgg.UpdatePermissionInfoHandlerFactory();
            var input   = new UpdatePermissionInfoDTO
            {
                Id          = testPermissionAgg.Id,
                UpdatedById = testAgg.Id,
                Name        = "changedName",
                Description = "changedDescription",
                Image       = "changedImageUrl"
            };

            var command = new UpdatePermissionInfoCommand(input);

            // Apply
            var result = handler.Handle(command);

            // Assert
            Assert.True(mockAgg.SessionGetWasCalled);
            Assert.True(mockAgg.SessionCommitWasCalled);
        }
示例#4
0
        public void given_new_permission_should_have_correct_values_after_update_permission_event()
        {
            //assemble
            CreateNewPermissionDTO input = new CreateNewPermissionDTO
            {
                Name        = "test",
                Description = "test",
                IsActive    = true
            };
            var agg     = PermissionAggregate.CreateNewPermission(input);
            var userAgg = PermissionAggregateMockAggregate.SetupAdminUser();

            var updateInfo = new UpdatePermissionInfoDTO
            {
                Id          = agg.Id,
                UpdatedById = userAgg.Id,
                Name        = "New Name",
                Description = "New Description",
            };

            //apply
            agg.UpdatePermissionInfo(updateInfo);

            //assert
            var changes = agg.GetUncommittedChanges();

            Assert.Equal(2, changes.Length);
            Assert.Collection(changes,
                              (e) =>
            {
                Assert.IsType <PermissionCreatedEvent>(e);
            },
                              (e) =>
            {
                Assert.IsType <PermissionInfoUpdatedEvent>(e);
                var @event = (PermissionInfoUpdatedEvent)e;
                Assert.Equal(@event.Name, updateInfo.Name);
                Assert.Equal(@event.Description, updateInfo.Description);
            });
            Assert.Equal(agg.Name, updateInfo.Name);
            Assert.Equal(agg.Description, updateInfo.Description);
        }
示例#5
0
        public async void given_valid_input_update_permission_method_returns_valid_results()
        {
            var mockAgg = new PermissionControllerMockAggregate();

            var controller = mockAgg.PermissionControllerFactory();

            var input = new UpdatePermissionInfoDTO()
            {
                Name        = "testName",
                Description = "testDesc",
                Image       = "testImage",
            };

            var command = new UpdatePermissionInfoCommand(input);

            mockAgg.setup_dispatcher_to_verify_updatePermissionCommands_are_the_same();

            var result = await controller.UpdatePermission(input);

            //Assert
            //Assert.Equal(command, mockAgg.PermissionCommand);
            Assert.IsType <PermissionDTO>(result);
            Assert.Equal(result.Name, input.Name);
        }
示例#6
0
 public UpdatePermissionInfoCommand(UpdatePermissionInfoDTO input)
 {
     Input = input;
 }
示例#7
0
 public void UpdatePermissionInfo(UpdatePermissionInfoDTO dto)
 {
     ApplyChange(new PermissionInfoUpdatedEvent(dto));
 }