Пример #1
0
        public void given_new_permission_should_be_enabled_after_permission_created_event()
        {
            //assemble
            CreateNewPermissionDTO input = new CreateNewPermissionDTO
            {
                Name        = "test",
                Description = "test",
                IsActive    = true
            };

            //apply
            var agg = PermissionAggregate.CreateNewPermission(input);

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

            Assert.Single(changes);
            Assert.Collection(changes,
                              (e) =>
            {
                Assert.IsType <PermissionCreatedEvent>(e);
                var @event = (PermissionCreatedEvent)e;
                Assert.True(@event.IsActive);
            });
            Assert.True(agg.IsActive);
        }
Пример #2
0
 public PermissionCreatedEvent(CreateNewPermissionDTO dto)
 {
     Name        = dto.Name;
     Description = dto.Description;
     IsActive    = dto.IsActive;
     Image       = dto.Image;
 }
Пример #3
0
        public async Task <PermissionDTO> CreatePermission([FromBody] CreateNewPermissionDTO input)
        {
            var command = new CreatePermissionCommand(input);
            var result  = await _commandDispatcher.Execute(command);

            return(result);
        }
Пример #4
0
        public void given_new_permission_should_be_disabled_after_permission_disabled_event()
        {
            //assemble
            CreateNewPermissionDTO input = new CreateNewPermissionDTO
            {
                Name        = "test",
                Description = "test",
                IsActive    = true
            };
            var agg       = PermissionAggregate.CreateNewPermission(input);
            var adminUser = PermissionAggregateMockAggregate.SetupAdminUser();

            //apply
            agg.DisablePermission(adminUser);

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

            Assert.Equal(2, changes.Length);
            Assert.Collection(changes,
                              (e) =>
            {
                Assert.IsType <PermissionCreatedEvent>(e);
            },
                              (e) =>
            {
                Assert.IsType <PermissionDisabledEvent>(e);
                var @event = (PermissionDisabledEvent)e;
                Assert.False(@event.IsActive);
            });
            Assert.False(agg.IsActive);
        }
Пример #5
0
        public async void given_create_permission_command_command_dispatcher_should_get_same_command_created_in_controller()
        {
            //Assemble
            var mockAgg = new PermissionControllerMockAggregate();

            var input = new CreateNewPermissionDTO
            {
                Name        = "testName",
                Description = "testDesc",
                IsActive    = true,
                Image       = "testImage"
            };
            var command = new CreatePermissionCommand(input);

            mockAgg.setup_dispatcher_to_verify_createPermissionCommands_are_the_same(command);

            //Apply
            var result = await mockAgg.CommandDispatcher.Execute(command);

            //Assert
            Assert.IsType <CreatePermissionCommand>(mockAgg.PermissionCommand);
            Assert.Equal(command, mockAgg.PermissionCommand);
            Assert.IsType <PermissionDTO>(result);
            Assert.Equal(result.Name, input.Name);
        }
Пример #6
0
        public void given_new_permission_should_have_permission_created_event_with_non_empty_id()
        {
            //assemble
            CreateNewPermissionDTO input = new CreateNewPermissionDTO
            {
                Name        = "test",
                Description = "test",
                IsActive    = true
            };

            //apply
            var agg = PermissionAggregate.CreateNewPermission(input);

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

            Assert.Single(changes);
            Assert.Collection(changes, (e) =>
            {
                Assert.IsType <PermissionCreatedEvent>(e);
                var @event = (PermissionCreatedEvent)e;
                Assert.Equal("test", @event.Name);
                Assert.Equal("test", @event.Description);
            });

            Assert.NotEqual(Guid.Empty, agg.Id);
            Assert.Equal("test", agg.Name);
            Assert.Equal("test", agg.Description);
        }
Пример #7
0
        public static PermissionAggregate SetupTestPermission()
        {
            CreateNewPermissionDTO input = new CreateNewPermissionDTO
            {
                Name        = "test",
                Description = "test",
                IsActive    = true
            };

            return(PermissionAggregate.CreateNewPermission(input));
        }
Пример #8
0
        public PermissionAggregate SetupTestDisabledPermission()
        {
            var createPermisisonDTO = new CreateNewPermissionDTO
            {
                Name        = "testPermisison",
                Description = "testDescription",
                IsActive    = false,
                Image       = "testUrl"
            };

            var permAgg = PermissionAggregate.CreateNewPermission(createPermisisonDTO);

            return(permAgg);
        }
Пример #9
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);
        }
Пример #10
0
        public void given_CreatePermissionCommand_handler_should_call_session_Get_and_Commit()
        {
            var mockAgg = new CreatePermissionCommandHandlerMockAggregate();

            mockAgg.setup_session_to_return_correct_aggregate();
            var handler = mockAgg.CreatePermissionHandlerFactory();

            var input = new CreateNewPermissionDTO
            {
                Name        = "testPermission",
                Description = "testDescription",
                IsActive    = true,
                Image       = "testUrl"
            };
            var command = new CreatePermissionCommand(input);

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

            // Assert
            Assert.True(mockAgg.SessionAddWasCalled);
            Assert.True(mockAgg.SessionCommitWasCalled);
        }
Пример #11
0
        public PermissionTemplateProjection SetupTestPermissionTemplate()
        {
            var createPermisisonDTO = new CreateNewPermissionDTO
            {
                Name        = "testPermisison",
                Description = "testDescription",
                IsActive    = true,
                Image       = "testUrl"
            };

            var permAgg = PermissionAggregate.CreateNewPermission(createPermisisonDTO);

            var permissionTemplate = new PermissionTemplateProjection
            {
                Id   = new Guid(),
                Name = "testName",
                TemplatePermissions = JsonConvert.SerializeObject(new Dictionary <Guid, string>
                {
                    { permAgg.Id, permAgg.Name }
                })
            };

            return(permissionTemplate);
        }
Пример #12
0
        public async void given_valid_input_create_permission_method_returns_valid_results()
        {
            var mockAgg = new PermissionControllerMockAggregate();

            var controller = mockAgg.PermissionControllerFactory();

            var input = new CreateNewPermissionDTO
            {
                Name        = "testName",
                Description = "testDesc",
                IsActive    = true,
                Image       = "testImage"
            };

            var command = new CreatePermissionCommand(input);

            mockAgg.setup_dispatcher_to_verify_createPermissionCommands_are_the_same(command);

            var result = await controller.CreatePermission(input);

            //Assert
            Assert.IsType <PermissionDTO>(result);
            Assert.Equal(result.Name, input.Name);
        }
Пример #13
0
 public CreatePermissionCommand(CreateNewPermissionDTO input)
 {
     Input = input;
 }
Пример #14
0
 public static PermissionAggregate CreateNewPermission(CreateNewPermissionDTO dto)
 {
     return(new PermissionAggregate(dto));
 }
Пример #15
0
 protected PermissionAggregate(CreateNewPermissionDTO dto)
 {
     Id = Guid.NewGuid();
     ApplyChange(new PermissionCreatedEvent(dto));
 }