@@ -36,6 +36,7 @@ import com.cosmotech.organization.domain.OrganizationAccessControl
3636import com.cosmotech.organization.domain.OrganizationSecurity
3737import com.cosmotech.runner.RunnerApiServiceInterface
3838import com.cosmotech.runner.domain.*
39+ import com.cosmotech.runner.domain.RunnerRole
3940import com.cosmotech.solution.api.SolutionApiService
4041import com.cosmotech.solution.domain.*
4142import com.cosmotech.workspace.api.WorkspaceApiService
@@ -524,7 +525,7 @@ class RunnerServiceIntegrationTest : CsmRedisTestBase() {
524525 }
525526
526527 @Test
527- fun `access control list shouldn 't contain more than one time each user on ACL addition ` () {
528+ fun `access control list can 't add an existing user` () {
528529 organizationSaved =
529530 organizationApiService.registerOrganization(makeOrganization(" organization" ))
530531 solutionSaved = solutionApiService.createSolution(organizationSaved.id!! , makeSolution())
@@ -538,11 +539,44 @@ class RunnerServiceIntegrationTest : CsmRedisTestBase() {
538539 organizationSaved.id!! , workspaceSaved.id!! , runnerSaved.id!! )
539540 assertEquals(2 , runnerSavedSecurityUsers.size)
540541
541- runnerApiService.addRunnerAccessControl(
542- organizationSaved.id!! ,
543- workspaceSaved.id!! ,
544- runnerSaved.id!! ,
545- RunnerAccessControl (defaultName, ROLE_EDITOR ))
542+ assertThrows<IllegalArgumentException > {
543+ runnerApiService.addRunnerAccessControl(
544+ organizationSaved.id!! ,
545+ workspaceSaved.id!! ,
546+ runnerSaved.id!! ,
547+ RunnerAccessControl (defaultName, ROLE_EDITOR ))
548+ }
549+
550+ val runnerSecurityUsers =
551+ runnerApiService.getRunnerSecurityUsers(
552+ organizationSaved.id!! , workspaceSaved.id!! , runnerSaved.id!! )
553+ assertEquals(2 , runnerSecurityUsers.size)
554+ assert (runnerSavedSecurityUsers == runnerSecurityUsers)
555+ }
556+
557+ @Test
558+ fun `access control list can't update a non-existing user` () {
559+ organizationSaved =
560+ organizationApiService.registerOrganization(makeOrganization(" organization" ))
561+ solutionSaved = solutionApiService.createSolution(organizationSaved.id!! , makeSolution())
562+ workspaceSaved = workspaceApiService.createWorkspace(organizationSaved.id!! , makeWorkspace())
563+ val workingRunner = makeRunner()
564+ runnerSaved =
565+ runnerApiService.createRunner(organizationSaved.id!! , workspaceSaved.id!! , workingRunner)
566+
567+ val runnerSavedSecurityUsers =
568+ runnerApiService.getRunnerSecurityUsers(
569+ organizationSaved.id!! , workspaceSaved.id!! , runnerSaved.id!! )
570+ assertEquals(2 , runnerSavedSecurityUsers.size)
571+
572+ assertThrows<CsmResourceNotFoundException > {
573+ runnerApiService.updateRunnerAccessControl(
574+ organizationSaved.id!! ,
575+ workspaceSaved.id!! ,
576+ runnerSaved.id!! ,
577+ " invalid user" ,
578+ RunnerRole (ROLE_VIEWER ))
579+ }
546580
547581 val runnerSecurityUsers =
548582 runnerApiService.getRunnerSecurityUsers(
0 commit comments