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); }
public PermissionCreatedEvent(CreateNewPermissionDTO dto) { Name = dto.Name; Description = dto.Description; IsActive = dto.IsActive; Image = dto.Image; }
public async Task <PermissionDTO> CreatePermission([FromBody] CreateNewPermissionDTO input) { var command = new CreatePermissionCommand(input); var result = await _commandDispatcher.Execute(command); return(result); }
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); }
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); }
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); }
public static PermissionAggregate SetupTestPermission() { CreateNewPermissionDTO input = new CreateNewPermissionDTO { Name = "test", Description = "test", IsActive = true }; return(PermissionAggregate.CreateNewPermission(input)); }
public PermissionAggregate SetupTestDisabledPermission() { var createPermisisonDTO = new CreateNewPermissionDTO { Name = "testPermisison", Description = "testDescription", IsActive = false, Image = "testUrl" }; var permAgg = PermissionAggregate.CreateNewPermission(createPermisisonDTO); return(permAgg); }
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); }
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); }
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); }
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); }
public CreatePermissionCommand(CreateNewPermissionDTO input) { Input = input; }
public static PermissionAggregate CreateNewPermission(CreateNewPermissionDTO dto) { return(new PermissionAggregate(dto)); }
protected PermissionAggregate(CreateNewPermissionDTO dto) { Id = Guid.NewGuid(); ApplyChange(new PermissionCreatedEvent(dto)); }