示例#1
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);
        }
示例#2
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);
        }
示例#3
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);
        }
示例#4
0
        public async Task <PermissionDTO> Handle(CreatePermissionCommand command)
        {
            var permAgg = PermissionAggregate.CreateNewPermission(command.Input);
            await _session.Add(permAgg);

            await _session.Commit();

            return(_mapper.Map <PermissionDTO>(permAgg));
        }
示例#5
0
        public static PermissionAggregate SetupTestPermission()
        {
            CreateNewPermissionDTO input = new CreateNewPermissionDTO
            {
                Name        = "test",
                Description = "test",
                IsActive    = true
            };

            return(PermissionAggregate.CreateNewPermission(input));
        }
示例#6
0
        public PermissionAggregate SetupTestDisabledPermission()
        {
            var createPermisisonDTO = new CreateNewPermissionDTO
            {
                Name        = "testPermisison",
                Description = "testDescription",
                IsActive    = false,
                Image       = "testUrl"
            };

            var permAgg = PermissionAggregate.CreateNewPermission(createPermisisonDTO);

            return(permAgg);
        }
示例#7
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);
        }
示例#8
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);
        }