public async Task Can_Query_And_Page_ReadModels() { //Arrange var organizationId = TestEnvironment.DefaultOrganizationId; var suffix = A <Guid>().ToString("N"); var name1 = $"1_{suffix}"; var name2 = $"2_{suffix}"; var name3 = $"3_{suffix}"; await DataProcessingRegistrationHelper.CreateAsync(organizationId, name1); await DataProcessingRegistrationHelper.CreateAsync(organizationId, name2); await DataProcessingRegistrationHelper.CreateAsync(organizationId, name3); //Act var page1 = (await DataProcessingRegistrationHelper.QueryReadModelByNameContent(organizationId, suffix, 2, 0)).ToList(); var page2 = (await DataProcessingRegistrationHelper.QueryReadModelByNameContent(organizationId, suffix, 2, 2)).ToList(); //Assert Assert.Equal(2, page1.Count); Assert.Equal(name1, page1.First().Name); Assert.Equal(name2, page1.Last().Name); Assert.Single(page2); Assert.Equal(name3, page2.Single().Name); }
public async Task LatestDate_IsResetToNull_WhenIsCompletedNotYes() { //Arrange var name = A <string>(); var registrationDto = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, name).ConfigureAwait(false); var oversightDate = A <DateTime>(); var oversightRemark = A <string>(); using var isCompletedYesResponse = await DataProcessingRegistrationHelper.SendChangeIsOversightCompletedRequestAsync(registrationDto.Id, YesNoUndecidedOption.Yes); Assert.Equal(HttpStatusCode.OK, isCompletedYesResponse.StatusCode); using var oversightDateResponse = await DataProcessingRegistrationHelper.SendAssignOversightDateRequestAsync(registrationDto.Id, oversightDate, oversightRemark); Assert.Equal(HttpStatusCode.OK, oversightDateResponse.StatusCode); var dtoWithDate = await DataProcessingRegistrationHelper.GetAsync(registrationDto.Id); var oversightDateRemark = Assert.Single(dtoWithDate.OversightDates); Assert.Equal(oversightDate, oversightDateRemark.OversightDate); Assert.Equal(oversightRemark, oversightDateRemark.OversightRemark); //Act using var isCompletedNoResponse = await DataProcessingRegistrationHelper.SendChangeIsOversightCompletedRequestAsync(registrationDto.Id, YesNoUndecidedOption.No); //Assert Assert.Equal(HttpStatusCode.OK, isCompletedNoResponse.StatusCode); var dtoWithNoOversightDates = await DataProcessingRegistrationHelper.GetAsync(registrationDto.Id); Assert.Empty(dtoWithNoOversightDates.OversightDates); }
public async Task Can_Assign_And_Remove_DataProcessingRegistration() { //Arrange const int organizationId = TestEnvironment.DefaultOrganizationId; var registration = await DataProcessingRegistrationHelper.CreateAsync(organizationId, A <string>()); var contract = await ItContractHelper.CreateContract(A <string>(), OrganizationId); //Act - Add using var assignResponse = await ItContractHelper.SendAssignDataProcessingRegistrationAsync(contract.Id, registration.Id); using var duplicateResponse = await ItContractHelper.SendAssignDataProcessingRegistrationAsync(contract.Id, registration.Id); //Assert Assert.Equal(HttpStatusCode.OK, assignResponse.StatusCode); Assert.Equal(HttpStatusCode.Conflict, duplicateResponse.StatusCode); var dto = await ItContractHelper.GetItContract(contract.Id); var namedEntityDTO = Assert.Single(dto.DataProcessingRegistrations); Assert.Equal(registration.Id, namedEntityDTO.Id); Assert.Equal(registration.Name, namedEntityDTO.Name); //Act - remove using var removeResponse = await ItContractHelper.SendRemoveDataProcessingRegistrationAsync(contract.Id, registration.Id); using var duplicateRemoveResponse = await ItContractHelper.SendRemoveDataProcessingRegistrationAsync(contract.Id, registration.Id); //Assert Assert.Equal(HttpStatusCode.OK, removeResponse.StatusCode); Assert.Equal(HttpStatusCode.BadRequest, duplicateRemoveResponse.StatusCode); dto = await ItContractHelper.GetItContract(contract.Id); Assert.Empty(dto.DataProcessingRegistrations); }
public async Task Can_Get_Available_Systems() { //Arrange var systemPrefix = A <Guid>().ToString("N"); const int organizationId = TestEnvironment.DefaultOrganizationId; var system1Name = $"{systemPrefix}{1}"; var system2Name = $"{systemPrefix}{2}"; var filteredOutSystemName = A <string>(); var registration = await DataProcessingRegistrationHelper.CreateAsync(organizationId, A <string>()); var system1 = await ItSystemHelper.CreateItSystemInOrganizationAsync(system1Name, organizationId, AccessModifier.Public); var system2 = await ItSystemHelper.CreateItSystemInOrganizationAsync(system2Name, organizationId, AccessModifier.Public); var filteredOutSystem = await ItSystemHelper.CreateItSystemInOrganizationAsync(filteredOutSystemName, organizationId, AccessModifier.Public); var usage1 = await ItSystemHelper.TakeIntoUseAsync(system1.Id, organizationId); var usage2 = await ItSystemHelper.TakeIntoUseAsync(system2.Id, organizationId); await ItSystemHelper.TakeIntoUseAsync(filteredOutSystem.Id, organizationId); //Act var dtos = (await DataProcessingRegistrationHelper.GetAvailableSystemsAsync(registration.Id, systemPrefix)).ToList(); //Assert Assert.Equal(2, dtos.Count); dtos.Select(x => new { x.Id, x.Name }).ToExpectedObject().ShouldMatch(new[] { new { usage1.Id, system1.Name }, new { usage2.Id, system2.Name } }); }
public async Task ReadModels_Contain_Correct_Dependent_Content() { //Arrange var name = A <string>(); var organizationId = TestEnvironment.DefaultOrganizationId; var isAgreementConcluded = YesNoIrrelevantOption.YES; var agreementConcludedAt = A <DateTime>(); Console.Out.WriteLine($"Testing in the context of DPR with name:{name}"); var registration = await DataProcessingRegistrationHelper.CreateAsync(organizationId, name); await DataProcessingRegistrationHelper.SendChangeIsAgreementConcludedRequestAsync(registration.Id, isAgreementConcluded); await DataProcessingRegistrationHelper.SendChangeAgreementConcludedAtRequestAsync(registration.Id, agreementConcludedAt); //Wait for read model to rebuild (wait for the LAST mutation) await WaitForReadModelQueueDepletion(); Console.Out.WriteLine("Read models are up to date"); //Act var result = (await DataProcessingRegistrationHelper.QueryReadModelByNameContent(organizationId, name, 1, 0)).ToList(); //Assert var readModel = Assert.Single(result); Console.Out.WriteLine("Read model found"); Assert.Equal(name, readModel.Name); Assert.Equal(registration.Id, readModel.SourceEntityId); Console.Out.WriteLine("Asserting Dependent and dependee properties"); Assert.Equal(isAgreementConcluded, readModel.IsAgreementConcluded); Assert.Equal(agreementConcludedAt, readModel.AgreementConcludedAt); }
public async Task Can_Assign_SubDataProcessors() { //Arrange const int organizationId = TestEnvironment.DefaultOrganizationId; var organization = await OrganizationHelper.CreateOrganizationAsync(organizationId, A <string>(), "87654321", OrganizationTypeKeys.Virksomhed, AccessModifier.Public); var registration = await DataProcessingRegistrationHelper.CreateAsync(organizationId, A <string>()); using var setStateRequest = await DataProcessingRegistrationHelper.SendSetUseSubDataProcessorsStateRequestAsync(registration.Id, YesNoUndecidedOption.Yes); Assert.Equal(HttpStatusCode.OK, setStateRequest.StatusCode); //Act using var assignResponse = await DataProcessingRegistrationHelper.SendAssignSubDataProcessorRequestAsync(registration.Id, organization.Id); using var duplicateResponse = await DataProcessingRegistrationHelper.SendAssignSubDataProcessorRequestAsync(registration.Id, organization.Id); //Assert Assert.Equal(HttpStatusCode.OK, assignResponse.StatusCode); Assert.Equal(HttpStatusCode.Conflict, duplicateResponse.StatusCode); var dto = await DataProcessingRegistrationHelper.GetAsync(registration.Id); var processor = Assert.Single(dto.SubDataProcessors); Assert.Equal(organization.Id, processor.Id); Assert.Equal(organization.Name, processor.Name); Assert.Equal(organization.Cvr, processor.CvrNumber); }
public async Task Can_Remove_Role() { //Arrange var registration = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, A <string>()); var businessRoleDtos = await DataProcessingRegistrationHelper.GetAvailableRolesAsync(registration.Id); var role = businessRoleDtos.First(); var availableUsers = await DataProcessingRegistrationHelper.GetAvailableUsersAsync(registration.Id, role.Id); var user = availableUsers.First(); using var response = await DataProcessingRegistrationHelper.SendAssignRoleRequestAsync(registration.Id, role.Id, user.Id); //Act using var removeResponse = await DataProcessingRegistrationHelper.SendRemoveRoleRequestAsync(registration.Id, role.Id, user.Id); //Assert response Assert.Equal(HttpStatusCode.OK, removeResponse.StatusCode); //Assert that the role is no longer in the DTO registration = await DataProcessingRegistrationHelper.GetAsync(registration.Id); Assert.Empty(registration.AssignedRoles); }
public async Task Can_Modify_OversightDate() { //Arrange var name = A <string>(); var registrationDto = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, name).ConfigureAwait(false); var oversightDate = A <DateTime>(); var oversightRemark = A <string>(); using var assignResponse = await DataProcessingRegistrationHelper.SendAssignOversightDateRequestAsync(registrationDto.Id, oversightDate, oversightRemark); Assert.Equal(HttpStatusCode.OK, assignResponse.StatusCode); var assignedOversightDate = await assignResponse.ReadResponseBodyAsKitosApiResponseAsync <DataProcessingRegistrationOversightDateDTO>(); var newOversightDate = A <DateTime>(); var newOversightRemark = A <string>(); //Act using var response = await DataProcessingRegistrationHelper.SendModifyOversightDateRequestAsync(registrationDto.Id, assignedOversightDate.Id, newOversightDate, newOversightRemark); //Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); var dto = await DataProcessingRegistrationHelper.GetAsync(registrationDto.Id); var oversightDateRemark = Assert.Single(dto.OversightDates); Assert.Equal(newOversightDate, oversightDateRemark.OversightDate); Assert.Equal(newOversightRemark, oversightDateRemark.OversightRemark); }
public async Task Can_Assign_Role() { //Arrange var registration = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, A <string>()); var businessRoleDtos = await DataProcessingRegistrationHelper.GetAvailableRolesAsync(registration.Id); var role = businessRoleDtos.First(); var availableUsers = await DataProcessingRegistrationHelper.GetAvailableUsersAsync(registration.Id, role.Id); var user = availableUsers.First(); //Act using var response = await DataProcessingRegistrationHelper.SendAssignRoleRequestAsync(registration.Id, role.Id, user.Id); //Assert response Assert.Equal(HttpStatusCode.OK, response.StatusCode); registration = await DataProcessingRegistrationHelper.GetAsync(registration.Id); //Assert role is in the DTO var assignedRoleDto = Assert.Single(registration.AssignedRoles); Assert.Equal(user.Id, assignedRoleDto.User.Id); Assert.Equal(role.Id, assignedRoleDto.Role.Id); //Assert query endpoint now excludes possible duplicate availableUsers = await DataProcessingRegistrationHelper.GetAvailableUsersAsync(registration.Id, role.Id); Assert.Empty(availableUsers.Where(x => x.Id == user.Id)); }
public async Task Can_Assign_And_Clear_BasisForTransfer() { //Arrange var registration = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, A <string>()); var options = (await DataProcessingRegistrationHelper.GetBasisForTransferOptionsAsync(TestEnvironment.DefaultOrganizationId)).ToList(); var randomOption = options[Math.Abs(A <int>()) % options.Count]; //Act - assign basis for transfer using var assignResponse = await DataProcessingRegistrationHelper.SendAssignBasisForTransferRequestAsync(registration.Id, randomOption.Id); //Assert - basis for transfer set Assert.Equal(HttpStatusCode.OK, assignResponse.StatusCode); var dto = await DataProcessingRegistrationHelper.GetAsync(registration.Id); Assert.NotNull(dto.BasisForTransfer); Assert.Equal(randomOption.Id, dto.BasisForTransfer.Id); Assert.Equal(randomOption.Name, dto.BasisForTransfer.Name); //Act - remove using var removeResponse = await DataProcessingRegistrationHelper.SendClearBasisForTransferRequestAsync(registration.Id); //Assert country removed again Assert.Equal(HttpStatusCode.OK, removeResponse.StatusCode); dto = await DataProcessingRegistrationHelper.GetAsync(registration.Id); Assert.Null(dto.BasisForTransfer); }
public async Task Can_Assign_And_Remove_OversightOption() { //Arrange var registration = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, A <string>()); var dataOptions = await DataProcessingRegistrationHelper.GetAvailableOptionsRequestAsync(TestEnvironment.DefaultOrganizationId); var randomOversightOption = dataOptions.OversightOptions.ToArray()[Math.Abs(A <int>()) % dataOptions.OversightOptions.Count()]; //Act - add oversight option using var assignResponse = await DataProcessingRegistrationHelper.SendAssignOversightOptionRequestAsync(registration.Id, randomOversightOption.Id); using var duplicateResponse = await DataProcessingRegistrationHelper.SendAssignOversightOptionRequestAsync(registration.Id, randomOversightOption.Id); //Assert - oversight option added Assert.Equal(HttpStatusCode.OK, assignResponse.StatusCode); Assert.Equal(HttpStatusCode.Conflict, duplicateResponse.StatusCode); var dto = await DataProcessingRegistrationHelper.GetAsync(registration.Id); var oversightOption = Assert.Single(dto.OversightOptions.Value); Assert.Equal(randomOversightOption.Id, oversightOption.Id); Assert.Equal(randomOversightOption.Name, oversightOption.Name); //Act - remove using var removeResponse = await DataProcessingRegistrationHelper.SendRemoveOversightOptionRequestAsync(registration.Id, randomOversightOption.Id); //Assert oversight option removed again Assert.Equal(HttpStatusCode.OK, removeResponse.StatusCode); dto = await DataProcessingRegistrationHelper.GetAsync(registration.Id); Assert.Empty(dto.OversightOptions.Value); }
[InlineData("123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789011234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890")] //201 chars public async Task Can_Create_Returns_Error_If_InvalidName(string name) { //Act using var response = await DataProcessingRegistrationHelper.SendCanCreateRequestAsync(TestEnvironment.DefaultOrganizationId, name); //Assert Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); }
public async Task Cannot_Assign_UnAvailable_Role() { //Arrange var registration = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, A <string>()); //Act using var response = await DataProcessingRegistrationHelper.SendAssignRoleRequestAsync(registration.Id, int.MaxValue, TestEnvironment.DefaultUserId); //Assert response Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); }
public async Task Can_Create() { //Arrange var name = A <string>(); //Act var response = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, name).ConfigureAwait(false); //Assert Assert.NotNull(response); }
public async Task Can_Get_Available_Roles() { //Arrange var registration = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, A <string>()); //Act var roles = await DataProcessingRegistrationHelper.GetAvailableRolesAsync(registration.Id); //Assert Assert.NotEmpty(roles); }
public async Task Can_Create_Endpoint_Returns_Ok() { //Arrange var name = A <string>(); //Act using var response = await DataProcessingRegistrationHelper.SendCanCreateRequestAsync(TestEnvironment.DefaultOrganizationId, name); //Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); }
public async Task Cannot_Set_Master_Reference_With_Invalid_Reference() { //Arrange var registration = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, A <string>()); //Act - check its not possible to set a reference as master in a data processing registration with a invalid reference id using var setMasterResponse = await DataProcessingRegistrationHelper.SendSetMasterReferenceRequestAsync(registration.Id, A <int>()); //Assert response Assert.Equal(HttpStatusCode.BadRequest, setMasterResponse.StatusCode); }
public async Task Can_Get_AvailableDataResponsibleOptions() { //Arrange var registrationDto = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, A <string>()).ConfigureAwait(false); //Act var dataProcessingOptions = await DataProcessingRegistrationHelper.GetAvailableOptionsRequestAsync(registrationDto.Id); //Assert Assert.NotEmpty(dataProcessingOptions.DataResponsibleOptions); }
public async Task Can_Change_AgreementConcludedAt_To_Null() { //Arrange var name = A <string>(); var registrationDto = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, name).ConfigureAwait(false); //Act using var response = await DataProcessingRegistrationHelper.SendChangeAgreementConcludedAtRequestAsync(registrationDto.Id, null); //Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); }
public async Task Can_Delete() { //Arrange var name = A <string>(); var dto = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, name).ConfigureAwait(false); //Act using var deleteResponse = await DataProcessingRegistrationHelper.SendDeleteRequestAsync(dto.Id); //Assert Assert.Equal(HttpStatusCode.OK, deleteResponse.StatusCode); }
public async Task Can_Set_Master_Reference() { //Arrange var registration = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, A <string>()); var reference = await ReferencesHelper.CreateReferenceAsync(A <string>(), A <string>(), A <string>(), Display.Url, r => r.DataProcessingRegistration_Id = registration.Id); //Act - check its possible to set a reference as master in a data processing registration using var setMasterResponse = await DataProcessingRegistrationHelper.SendSetMasterReferenceRequestAsync(registration.Id, reference.Id); //Assert response Assert.Equal(HttpStatusCode.OK, setMasterResponse.StatusCode); }
public async Task Can_Get() { //Arrange var name = A <string>(); var dto = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, name).ConfigureAwait(false); //Act var gotten = await DataProcessingRegistrationHelper.GetAsync(dto.Id); //Assert Assert.NotNull(gotten); dto.ToExpectedObject().ShouldMatch(gotten); }
public async Task Can_Create_Endpoint_Returns_Error_If_Non_Unique() { //Arrange var name = A <string>(); const int organizationId = TestEnvironment.DefaultOrganizationId; await DataProcessingRegistrationHelper.CreateAsync(organizationId, name).ConfigureAwait(false); //Act using var response = await DataProcessingRegistrationHelper.SendCanCreateRequestAsync(organizationId, name); //Assert Assert.Equal(HttpStatusCode.Conflict, response.StatusCode); }
public async Task Cannot_Create_With_Duplicate_Name_In_Same_Organization() { //Arrange var name = A <string>(); const int organizationId = TestEnvironment.DefaultOrganizationId; //Act await DataProcessingRegistrationHelper.CreateAsync(organizationId, name).ConfigureAwait(false); using var secondResponse = await DataProcessingRegistrationHelper.SendCreateRequestAsync(organizationId, name).ConfigureAwait(false); //Assert Assert.Equal(HttpStatusCode.Conflict, secondResponse.StatusCode); }
public async Task Can_Get_Available_Users() { //Arrange var registration = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, A <string>()); var businessRoleDtos = await DataProcessingRegistrationHelper.GetAvailableRolesAsync(registration.Id); var role = businessRoleDtos.First(); //Act var availableUsers = await DataProcessingRegistrationHelper.GetAvailableUsersAsync(registration.Id, role.Id); //Assert Assert.NotEmpty(availableUsers); }
public async Task Cannot_Assign_Role_To_User_Not_In_Organization() { //Arrange var registration = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, A <string>()); var businessRoleDtos = await DataProcessingRegistrationHelper.GetAvailableRolesAsync(registration.Id); var role = businessRoleDtos.First(); //Act using var response = await DataProcessingRegistrationHelper.SendAssignRoleRequestAsync(registration.Id, role.Id, int.MaxValue); //Assert response Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); }
public async Task Cannot_Change_Name_To_NonUniqueName_In_Same_Org() { //Arrange var name1 = A <string>(); var name2 = A <string>(); await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, name1).ConfigureAwait(false); var registrationDto = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, name2).ConfigureAwait(false); //Act using var response = await DataProcessingRegistrationHelper.SendChangeNameRequestAsync(registrationDto.Id, name1); //Assert Assert.Equal(HttpStatusCode.Conflict, response.StatusCode); }
public async Task Can_Get_Available_SubDataProcessors() { //Arrange const int organizationId = TestEnvironment.DefaultOrganizationId; var orgPrefix = A <string>(); var orgName = $"{orgPrefix}_{A<int>()}"; var organization = await OrganizationHelper.CreateOrganizationAsync(organizationId, orgName, "87654321", OrganizationTypeKeys.Virksomhed, AccessModifier.Public); var registration = await DataProcessingRegistrationHelper.CreateAsync(organizationId, A <string>()); //Act var processors = await DataProcessingRegistrationHelper.GetAvailableSubDataProcessors(registration.Id, orgPrefix); //Assert Assert.Contains(processors, x => x.Id == organization.Id); }
public async Task Can_Create_With_Same_Name_In_Different_Organizations() { //Arrange var name = A <string>(); //Act var responseInFirstOrg = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, name).ConfigureAwait(false); var responseInSecondOrg = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.SecondOrganizationId, name).ConfigureAwait(false); //Assert Assert.NotNull(responseInFirstOrg); Assert.NotNull(responseInSecondOrg); Assert.NotEqual(responseInFirstOrg.Id, responseInSecondOrg.Id); Assert.Equal(responseInFirstOrg.Name, responseInSecondOrg.Name); }
public async Task Can_Change_OversightOptionRemark() { //Arrange var registration = await DataProcessingRegistrationHelper.CreateAsync(TestEnvironment.DefaultOrganizationId, A <string>()).ConfigureAwait(false); var remark = A <string>(); //Act using var response = await DataProcessingRegistrationHelper.SendUpdateOversightOptionRemarkRequestAsync(registration.Id, remark); //Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); var updateRegistrationDto = await DataProcessingRegistrationHelper.GetAsync(registration.Id); Assert.Equal(remark, updateRegistrationDto.OversightOptions.Remark); }