diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java index d9e1b007f3b90731eea76fc503e12b7c3d141507..60e5bb57e5b0ab0c20e3c06b1932d7a76772109f 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java @@ -3,6 +3,7 @@ package at.tuwien.entities.database; import at.tuwien.entities.container.Container; import at.tuwien.entities.database.table.Table; import at.tuwien.entities.identifier.Identifier; +import at.tuwien.entities.user.User; import jakarta.persistence.CascadeType; import jakarta.persistence.*; import jakarta.persistence.NamedQueries; @@ -46,14 +47,28 @@ public class Database implements Serializable { @Column(updatable = false, nullable = false) private Long id; + @ToString.Exclude @JdbcTypeCode(java.sql.Types.VARCHAR) @Column(name = "created_by", columnDefinition = "VARCHAR(36)") private UUID createdBy; + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) + @JoinColumns({ + @JoinColumn(name = "created_by", referencedColumnName = "ID", insertable = false, updatable = false) + }) + private User creator; + + @ToString.Exclude @JdbcTypeCode(java.sql.Types.VARCHAR) @Column(name = "owned_by", columnDefinition = "VARCHAR(36)") private UUID ownedBy; + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) + @JoinColumns({ + @JoinColumn(name = "owned_by", referencedColumnName = "ID", insertable = false, updatable = false) + }) + private User owner; + @Column(nullable = false) private Long cid; @@ -76,10 +91,17 @@ public class Database implements Serializable { @Column(columnDefinition = "TEXT") private String description; + @ToString.Exclude @JdbcTypeCode(java.sql.Types.VARCHAR) @Column(name = "contact_person", columnDefinition = "VARCHAR(36)") private UUID contactPerson; + @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST) + @JoinColumns({ + @JoinColumn(name = "contact_person", referencedColumnName = "ID", updatable = false, insertable = false) + }) + private User contact; + @ToString.Exclude @org.springframework.data.annotation.Transient @OneToOne(fetch = FetchType.LAZY) diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/License.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/License.java index ef7d0d33a5a937f7b8515d7cdd9bcbf44c3c897a..8591b36ea4daeeaee3f7d5b2aca1fef1fec153ab 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/License.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/License.java @@ -13,7 +13,7 @@ import jakarta.persistence.*; @AllArgsConstructor @NoArgsConstructor @EntityListeners(AuditingEntityListener.class) -@Table(name = "mdb_licenses", uniqueConstraints = { +@jakarta.persistence.Table(name = "mdb_licenses", uniqueConstraints = { @UniqueConstraint(columnNames = {"uri"}) }) public class License { diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/DatabaseMapper.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/DatabaseMapper.java index 3bf6702da76cd707cfc36afe1a3a50f6c915ed0a..a889b2ee10a01328a477e4acf247f7fcc079bd84 100644 --- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/DatabaseMapper.java +++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/DatabaseMapper.java @@ -26,7 +26,7 @@ import java.util.Locale; import java.util.UUID; import java.util.regex.Pattern; -@Mapper(componentModel = "spring", uses = {ContainerMapper.class, UserMapper.class, ImageMapper.class/*, IdentifierMapper.class*/}, imports = {RandomStringUtils.class}) +@Mapper(componentModel = "spring", uses = {ContainerMapper.class, UserMapper.class, ImageMapper.class, UserMapper.class/*, IdentifierMapper.class*/}, imports = {RandomStringUtils.class}) public interface DatabaseMapper { org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(DatabaseMapper.class); diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java index bb0c34f05af04e0780baba15bc95bd63a7af10ef..90939ede925c18d9eb42c25e454f456c3d04859d 100644 --- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java +++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java @@ -77,7 +77,7 @@ public class AccessEndpoint { accessService.find(databaseId, accessDto.getUserId()); log.error("Failed to give access to user with id {}: already has access", accessDto.getUserId()); throw new NotAllowedException("Failed to give access to user with id " + accessDto.getUserId() + ": already has access"); - } catch (NotAllowedException e) { + } catch (AccessDeniedException e) { /* ignore */ } accessService.create(databaseId, accessDto); diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java index 97db5241464eb3b23c97828c5abacfa012c1224a..b792981dfc61eea5763f456f51d0fd3749454b43 100644 --- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java +++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/handlers/ApiExceptionHandler.java @@ -39,6 +39,18 @@ public class ApiExceptionHandler extends ResponseEntityExceptionHandler { return new ResponseEntity<>(response, new HttpHeaders(), response.getStatus()); } + @Hidden + @ResponseStatus(HttpStatus.LOCKED) + @ExceptionHandler(KeycloakRemoteException.class) + public ResponseEntity<ApiErrorDto> handle(KeycloakRemoteException e, WebRequest request) { + final ApiErrorDto response = ApiErrorDto.builder() + .status(HttpStatus.LOCKED) + .message(e.getLocalizedMessage()) + .code("error.metadata.keycloak") + .build(); + return new ResponseEntity<>(response, new HttpHeaders(), response.getStatus()); + } + @Hidden @ResponseStatus(HttpStatus.CONFLICT) @ExceptionHandler(ContainerAlreadyExistsException.class) diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/KeycloakContainerConfig.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/KeycloakContainerConfig.java deleted file mode 100644 index 2a8e08d4a0beb469da50a3997a643f96ba279524..0000000000000000000000000000000000000000 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/KeycloakContainerConfig.java +++ /dev/null @@ -1,71 +0,0 @@ -package at.tuwien.config; - -import at.tuwien.test.BaseTest; -import dasniko.testcontainers.keycloak.KeycloakContainer; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.testcontainers.containers.MariaDBContainer; -import org.testcontainers.images.PullPolicy; - -/** - * This class configures the MariaDB container for the integration tests. - */ -@Configuration -public class KeycloakContainerConfig { - - public static CustomKeycloakContainer getContainer() { - return CustomKeycloakContainer.getInstance(); - } - - @Bean - public CustomKeycloakContainer keycloakContainer() { - return getContainer(); - } - - /** - * This class represents the customized MariaDB container. It is a singleton to avoid the recreation of containers - * which can be very time-consuming. - */ - public static class CustomKeycloakContainer extends KeycloakContainer { - - private static CustomKeycloakContainer instance; - - private boolean started = false; - - public static synchronized CustomKeycloakContainer getInstance() { - if(instance == null) { - instance = new CustomKeycloakContainer("quay.io/keycloak/keycloak:21.0"); - instance.withImagePullPolicy(PullPolicy.alwaysPull()); - instance.addFixedExposedPort(BaseTest.CONTAINER_1_PORT, BaseTest.IMAGE_1_PORT); - instance.withAdminUsername("fda"); - instance.withAdminPassword("fda"); - instance.addFixedExposedPort(8080, 8080); - instance.withRealmImportFile("./dbrepo-realm.json"); - } - return instance; - } - - private CustomKeycloakContainer(String dockerImageName) { - super(dockerImageName); - } - - @Override - protected void configure() { - super.configure(); - this.addEnv("KC_HOSTNAME_STRICT_HTTPS", "false"); - } - - @Override - public synchronized void start() { - if(!started) { - super.start(); - started = true; - } - } - - @Override - public void stop() { - // do nothing, JVM handles shut down - } - } -} diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/MariaDbConfig.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/MariaDbConfig.java index 36b2dfa62b662a50b4d1bd765839180ca97ee10f..bc1ddbbb76f0941f41160516fb64e5473422dcb9 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/MariaDbConfig.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/config/MariaDbConfig.java @@ -7,7 +7,6 @@ import at.tuwien.entities.database.Database; import at.tuwien.entities.database.table.Table; import at.tuwien.exception.QueryMalformedException; import at.tuwien.mapper.DatabaseMapper; -import at.tuwien.mapper.DatabaseMapperImpl; import at.tuwien.querystore.Query; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -123,11 +122,10 @@ public class MariaDbConfig { log.debug("dropped database {}", database); } - public static void grantUserPermissions(Container container, Database database, String username) throws SQLException, + public void grantUserPermissions(Container container, Database database, String username) throws SQLException, QueryMalformedException { final String jdbc = "jdbc:mariadb://" + container.getHost() + ":" + container.getPort() + "/" + database.getInternalName(); log.trace("connect to database {}", jdbc); - final DatabaseMapper databaseMapper = new DatabaseMapperImpl(); try (Connection connection = DriverManager.getConnection(jdbc, container.getPrivilegedUsername(), container.getPrivilegedPassword())) { final PreparedStatement statement1 = databaseMapper.rawGrantUserAccessQuery(connection, username, AccessTypeDto.WRITE_ALL); statement1.executeUpdate(); @@ -157,11 +155,15 @@ public class MariaDbConfig { } } + public static String getPrivileges(String hostname, Integer port, String username, String password) + throws Exception { + return getPrivileges(hostname, port, null, username, password); + } + public static String getPrivileges(String hostname, Integer port, String database, String username, String password) throws Exception { - final String jdbc = "jdbc:mariadb://" + hostname + ":" + port + "/" + database; + final String jdbc = "jdbc:mariadb://" + hostname + ":" + port + (database != null ? "/" + database : ""); log.trace("connect to database {}", jdbc); - final List<String> usernames = new LinkedList<>(); try (Connection connection = DriverManager.getConnection(jdbc, username, password)) { final String query = "SHOW GRANTS FOR `" + username + "`;"; log.trace("prepare statement '{}'", query); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AccessEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AccessEndpointUnitTest.java index 5dbc7b07d38d76dec762e5ce6fbc6fea33f98f2f..056ca320b7dd10d02841b6c4678a458cb4c66608 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AccessEndpointUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AccessEndpointUnitTest.java @@ -57,7 +57,7 @@ public class AccessEndpointUnitTest extends BaseUnitTest { public void create_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_create(DATABASE_1_ID, DATABASE_1, null, USER_2_ID, null); }); } @@ -67,7 +67,7 @@ public class AccessEndpointUnitTest extends BaseUnitTest { public void create_noRoleNoAccess_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_create(DATABASE_1_ID, DATABASE_1, null, USER_4_ID, USER_4_PRINCIPAL); }); } @@ -91,7 +91,7 @@ public class AccessEndpointUnitTest extends BaseUnitTest { public void find_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_find(DATABASE_1_ID, DATABASE_1, null, null, null); }); } @@ -101,7 +101,7 @@ public class AccessEndpointUnitTest extends BaseUnitTest { public void find_hasRoleNoAccess_fails() { /* test */ - assertThrows(NotAllowedException.class, () -> { + assertThrows(AccessDeniedException.class, () -> { generic_find(DATABASE_1_ID, DATABASE_1, null, USER_2_ID, USER_2_PRINCIPAL); }); } @@ -119,7 +119,7 @@ public class AccessEndpointUnitTest extends BaseUnitTest { public void update_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_update(DATABASE_1_ID, DATABASE_1, null, USER_4_ID, null); }); } @@ -129,7 +129,7 @@ public class AccessEndpointUnitTest extends BaseUnitTest { public void update_hasRoleNoAccess_fails() { /* test */ - assertThrows(NotAllowedException.class, () -> { + assertThrows(AccessDeniedException.class, () -> { generic_update(DATABASE_1_ID, DATABASE_1, null, USER_4_ID, USER_1_PRINCIPAL); }); } @@ -139,7 +139,7 @@ public class AccessEndpointUnitTest extends BaseUnitTest { public void update_noRoleNoAccess_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_update(DATABASE_1_ID, DATABASE_1, null, USER_4_ID, USER_4_PRINCIPAL); }); } @@ -163,7 +163,7 @@ public class AccessEndpointUnitTest extends BaseUnitTest { public void revoke_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_revoke(DATABASE_1_ID, DATABASE_1_USER_1_WRITE_ALL_ACCESS, USER_2_ID, USER_1_PRINCIPAL); }); } @@ -173,7 +173,7 @@ public class AccessEndpointUnitTest extends BaseUnitTest { public void revoke_noRoleNoAccess_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_revoke(DATABASE_1_ID, DATABASE_1_USER_1_WRITE_ALL_ACCESS, USER_2_ID, USER_4_PRINCIPAL); }); } @@ -214,7 +214,7 @@ public class AccessEndpointUnitTest extends BaseUnitTest { .thenReturn(access); } else { log.trace("mock no access for user with id {} for database with id {}", userId, databaseId); - doThrow(NotAllowedException.class) + doThrow(AccessDeniedException.class) .when(accessService) .find(databaseId, userId); } @@ -237,7 +237,7 @@ public class AccessEndpointUnitTest extends BaseUnitTest { .thenReturn(access); } else { log.trace("mock no access for user with id {} for database with id {}", userId, databaseId); - doThrow(NotAllowedException.class) + doThrow(AccessDeniedException.class) .when(accessService) .find(databaseId, userId); } @@ -269,7 +269,7 @@ public class AccessEndpointUnitTest extends BaseUnitTest { .thenReturn(access); } else { log.trace("mock no access for user with id {} for database with id {}", userId, databaseId); - doThrow(NotAllowedException.class) + doThrow(AccessDeniedException.class) .when(accessService) .find(databaseId, userId); } @@ -291,7 +291,7 @@ public class AccessEndpointUnitTest extends BaseUnitTest { .thenReturn(access); } else { log.trace("mock no access for user with id {} for database with id {}", userId, databaseId); - doThrow(NotAllowedException.class) + doThrow(AccessDeniedException.class) .when(accessService) .find(databaseId, userId); } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ContainerEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ContainerEndpointUnitTest.java index 4c6d13f496b01ffa582626cb0b857a767b6acdb6..92cac31827e34e46a5f0cb42dc0e62205af2be5d 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ContainerEndpointUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ContainerEndpointUnitTest.java @@ -74,7 +74,7 @@ public class ContainerEndpointUnitTest extends BaseUnitTest { public void delete_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { delete_generic(CONTAINER_1_ID, CONTAINER_1, null); }); } @@ -84,7 +84,7 @@ public class ContainerEndpointUnitTest extends BaseUnitTest { public void delete_noRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { delete_generic(CONTAINER_1_ID, CONTAINER_1, USER_4_PRINCIPAL); }); } @@ -131,7 +131,7 @@ public class ContainerEndpointUnitTest extends BaseUnitTest { .build(); /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { create_generic(request, null); }); } @@ -157,7 +157,7 @@ public class ContainerEndpointUnitTest extends BaseUnitTest { .build(); /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { create_generic(request, USER_4_PRINCIPAL); }); } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointIntegrationTest.java index 880daf5d186b8bbc771a12328531cef55db61bdf..eb0a099bc0b97535fc5931dabe8cb0108c7bfdec 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointIntegrationTest.java @@ -42,6 +42,9 @@ public class IdentifierEndpointIntegrationTest extends BaseUnitTest { @Autowired private IdentifierRepository identifierRepository; + @Autowired + private UserRepository userRepository; + @Autowired private DatabaseRepository databaseRepository; @@ -60,15 +63,10 @@ public class IdentifierEndpointIntegrationTest extends BaseUnitTest { @BeforeEach public void beforeEach() { imageRepository.save(IMAGE_1); + userRepository.saveAll(List.of(USER_1, USER_2, USER_3, USER_4)); licenseRepository.save(LICENSE_1); - containerRepository.save(CONTAINER_1_SIMPLE); - containerRepository.save(CONTAINER_2_SIMPLE); - containerRepository.save(CONTAINER_3_SIMPLE); - containerRepository.save(CONTAINER_4_SIMPLE); - databaseRepository.save(DATABASE_1_SIMPLE); - databaseRepository.save(DATABASE_2_SIMPLE); - databaseRepository.save(DATABASE_3_SIMPLE); - databaseRepository.save(DATABASE_4_SIMPLE); + containerRepository.saveAll(List.of(CONTAINER_1_SIMPLE, CONTAINER_2_SIMPLE, CONTAINER_3_SIMPLE, CONTAINER_4_SIMPLE)); + databaseRepository.saveAll(List.of(DATABASE_1_SIMPLE, DATABASE_2_SIMPLE, DATABASE_3_SIMPLE, DATABASE_4_SIMPLE)); TABLE_2.setColumns(TABLE_2_COLUMNS); tableRepository.save(TABLE_2); } @@ -265,7 +263,7 @@ public class IdentifierEndpointIntegrationTest extends BaseUnitTest { public void create_noRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { identifierEndpoint.create(IDENTIFIER_2_DTO_REQUEST, USER_4_PRINCIPAL); }); } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointUnitTest.java index 8a50a2bbcaed52a62b18a71e58265c71e9fc39a4..ca4dc48806adbc4de5a01379bb13086a135b32e8 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointUnitTest.java @@ -166,7 +166,7 @@ public class IdentifierEndpointUnitTest extends BaseUnitTest { public void create_anonymousDatabase_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_create(DATABASE_1_ID, DATABASE_1, null, IDENTIFIER_1_DTO_REQUEST, null, null, null); }); } @@ -202,7 +202,7 @@ public class IdentifierEndpointUnitTest extends BaseUnitTest { public void create_anonymousQuery_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_create(DATABASE_2_ID, DATABASE_2, null, IDENTIFIER_2_DTO_REQUEST, IDENTIFIER_2, null, null); }); } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ImageEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ImageEndpointUnitTest.java index aba6c1953eb6d474b3af3eedb2fdf7e73a75a5ee..e017b10fad706371fbb635a1e736645ba54699b4 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ImageEndpointUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ImageEndpointUnitTest.java @@ -78,7 +78,7 @@ public class ImageEndpointUnitTest extends BaseUnitTest { .build(); /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { create_generic(request, null); }); } @@ -95,7 +95,7 @@ public class ImageEndpointUnitTest extends BaseUnitTest { .build(); /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { create_generic(request, USER_1_PRINCIPAL); }); } @@ -112,7 +112,7 @@ public class ImageEndpointUnitTest extends BaseUnitTest { .build(); /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { create_generic(request, USER_4_PRINCIPAL); }); } @@ -160,7 +160,7 @@ public class ImageEndpointUnitTest extends BaseUnitTest { public void delete_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { delete_generic(IMAGE_1_ID, IMAGE_1, null); }); } @@ -170,7 +170,7 @@ public class ImageEndpointUnitTest extends BaseUnitTest { public void delete_noRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { delete_generic(IMAGE_1_ID, IMAGE_1, USER_1_PRINCIPAL); }); } @@ -199,7 +199,7 @@ public class ImageEndpointUnitTest extends BaseUnitTest { .build(); /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { modify_generic(IMAGE_1_ID, IMAGE_1, request, null); }); } @@ -215,7 +215,7 @@ public class ImageEndpointUnitTest extends BaseUnitTest { .build(); /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { modify_generic(IMAGE_1_ID, IMAGE_1, request, USER_4_PRINCIPAL); }); } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MaintenanceEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MaintenanceEndpointUnitTest.java index 4531d4a48c11344227101ac10f0b5d11fe184e58..1ba27a097ea4e1a4a74b859fca92465e8f796505 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MaintenanceEndpointUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MaintenanceEndpointUnitTest.java @@ -131,7 +131,7 @@ public class MaintenanceEndpointUnitTest extends BaseUnitTest { public void create_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { create_generic(BANNER_MESSAGE_1_CREATE_DTO, BANNER_MESSAGE_1); }); } @@ -141,7 +141,7 @@ public class MaintenanceEndpointUnitTest extends BaseUnitTest { public void create_noRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { create_generic(BANNER_MESSAGE_1_CREATE_DTO, BANNER_MESSAGE_1); }); } @@ -159,7 +159,7 @@ public class MaintenanceEndpointUnitTest extends BaseUnitTest { public void update_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { update_generic(BANNER_MESSAGE_1_UPDATE_DTO, BANNER_MESSAGE_1_ID, BANNER_MESSAGE_1); }); } @@ -169,7 +169,7 @@ public class MaintenanceEndpointUnitTest extends BaseUnitTest { public void update_noRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { update_generic(BANNER_MESSAGE_1_UPDATE_DTO, BANNER_MESSAGE_1_ID, BANNER_MESSAGE_1); }); } @@ -197,7 +197,7 @@ public class MaintenanceEndpointUnitTest extends BaseUnitTest { public void delete_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { delete_generic(BANNER_MESSAGE_1_ID, BANNER_MESSAGE_1); }); } @@ -207,7 +207,7 @@ public class MaintenanceEndpointUnitTest extends BaseUnitTest { public void delete_noRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { delete_generic(BANNER_MESSAGE_1_ID, BANNER_MESSAGE_1); }); } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointComponentTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointComponentTest.java index 7b8323ff0febbcfac7a4f7a6ad380eb0f8c9c269..e2ac0f8707517cf7b06afcb76ef3b1715067d07f 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointComponentTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointComponentTest.java @@ -52,10 +52,14 @@ public class MetadataEndpointComponentTest extends BaseUnitTest { @Autowired private IdentifierRepository identifierRepository; + @Autowired + private UserRepository userRepository; + @BeforeEach public void beforeEach() { /* metadata database */ imageRepository.save(IMAGE_1_SIMPLE); + userRepository.save(USER_1); licenseRepository.save(LICENSE_1); containerRepository.save(CONTAINER_1_SIMPLE); databaseRepository.save(DATABASE_1_SIMPLE); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/OntologyEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/OntologyEndpointUnitTest.java index e9720ec7dd98c370fd2078e4fb7c8a5918fbde0d..a6c682ca2c554d5c2b801906705ff28500b71ecd 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/OntologyEndpointUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/OntologyEndpointUnitTest.java @@ -102,7 +102,7 @@ public class OntologyEndpointUnitTest extends BaseUnitTest { public void create_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { create_generic(ONTOLOGY_1_CREATE_DTO, null, null, null, ONTOLOGY_1); }); } @@ -112,7 +112,7 @@ public class OntologyEndpointUnitTest extends BaseUnitTest { public void create_noRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { create_generic(ONTOLOGY_1_CREATE_DTO, USER_4_PRINCIPAL, USER_4_USERNAME, USER_4, ONTOLOGY_1); }); } @@ -131,7 +131,7 @@ public class OntologyEndpointUnitTest extends BaseUnitTest { public void update_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { update_generic(ONTOLOGY_1_ID, ONTOLOGY_1_MODIFY_DTO, null, ONTOLOGY_1); }); } @@ -141,7 +141,7 @@ public class OntologyEndpointUnitTest extends BaseUnitTest { public void update_noRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { update_generic(ONTOLOGY_1_ID, ONTOLOGY_1_MODIFY_DTO, USER_4_PRINCIPAL, ONTOLOGY_1); }); } @@ -169,7 +169,7 @@ public class OntologyEndpointUnitTest extends BaseUnitTest { public void delete_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { delete_generic(ONTOLOGY_1_ID, ONTOLOGY_1); }); } @@ -179,7 +179,7 @@ public class OntologyEndpointUnitTest extends BaseUnitTest { public void delete_noRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { delete_generic(ONTOLOGY_1_ID, ONTOLOGY_1); }); } @@ -207,7 +207,7 @@ public class OntologyEndpointUnitTest extends BaseUnitTest { public void find_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { find_generic(ONTOLOGY_2_ID, "Apache Jena", null, ONTOLOGY_2, null); }); } @@ -217,7 +217,7 @@ public class OntologyEndpointUnitTest extends BaseUnitTest { public void find_noRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { find_generic(ONTOLOGY_2_ID, "Apache Jena", null, ONTOLOGY_2, null); }); } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/QueryEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/QueryEndpointUnitTest.java index ab3639a7e5403272e8cf47be9d715536b3c0f3a0..d953670719df3a05c90457b75dc09ba1d7f6b828 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/QueryEndpointUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/QueryEndpointUnitTest.java @@ -117,7 +117,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { public void execute_publicAnonymized_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_execute(DATABASE_3_ID, QUERY_4_STATEMENT, null, null, DATABASE_3, null); }); } @@ -275,7 +275,7 @@ public class QueryEndpointUnitTest extends BaseUnitTest { final Principal principal = null; /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_execute(DATABASE_2_ID, QUERY_1_STATEMENT, null, principal, DATABASE_2, null); }); } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/SemanticsEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/SemanticsEndpointUnitTest.java index cadaac12da7514f8a18342ad0b713731af126c06..cdee187b74e2906d0eda8f050145bfce82945f26 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/SemanticsEndpointUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/SemanticsEndpointUnitTest.java @@ -94,7 +94,7 @@ public class SemanticsEndpointUnitTest extends BaseUnitTest { public void saveConcept_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { saveConcept_generic(COLUMN_CONCEPT_TEMPERATURE_SAVE_DTO, COLUMN_CONCEPT_TEMPERATURE); }); } @@ -104,7 +104,7 @@ public class SemanticsEndpointUnitTest extends BaseUnitTest { public void saveConcept_noRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { saveConcept_generic(COLUMN_CONCEPT_TEMPERATURE_SAVE_DTO, COLUMN_CONCEPT_TEMPERATURE); }); } @@ -122,7 +122,7 @@ public class SemanticsEndpointUnitTest extends BaseUnitTest { public void saveUnit_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { saveUnit_generic(UNIT_1_SAVE_DTO, UNIT_1); }); } @@ -132,7 +132,7 @@ public class SemanticsEndpointUnitTest extends BaseUnitTest { public void saveUnit_noRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { saveUnit_generic(UNIT_1_SAVE_DTO, UNIT_1); }); } @@ -150,7 +150,7 @@ public class SemanticsEndpointUnitTest extends BaseUnitTest { public void analyseTable_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { analyseTable_generic(DATABASE_1_ID, TABLE_1_ID); }); } @@ -160,7 +160,7 @@ public class SemanticsEndpointUnitTest extends BaseUnitTest { public void findAll_noRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { analyseTable_generic(DATABASE_1_ID, TABLE_1_ID); }); } @@ -178,7 +178,7 @@ public class SemanticsEndpointUnitTest extends BaseUnitTest { public void analyseTableColumn_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { analyseTableColumn_generic(DATABASE_1_ID, TABLE_1_ID, COLUMN_1_1_ID); }); } @@ -188,7 +188,7 @@ public class SemanticsEndpointUnitTest extends BaseUnitTest { public void analyseTableColumn_noRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { analyseTableColumn_generic(DATABASE_1_ID, TABLE_1_ID, COLUMN_1_1_ID); }); } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableColumnEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableColumnEndpointUnitTest.java index 45b553d59f963e4547ef2ff4d753140156a8dedb..15d59226844ed20de468aebd9ed081459025d9b5 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableColumnEndpointUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableColumnEndpointUnitTest.java @@ -63,7 +63,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { public void update_publicAnonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_update(DATABASE_3_ID, TABLE_8_ID, COLUMN_1_1_ID, DATABASE_3, TABLE_8, null, COLUMN_8_2_SEMANTICS_UPDATE_DTO, null, null, null); }); } @@ -73,7 +73,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { public void update_publicHasRoleNoAccess_fails() { /* test */ - assertThrows(NotAllowedException.class, () -> { + assertThrows(AccessDeniedException.class, () -> { generic_update(DATABASE_3_ID, TABLE_8_ID, COLUMN_1_1_ID, DATABASE_3, TABLE_8, null, COLUMN_8_2_SEMANTICS_UPDATE_DTO, USER_1_ID, USER_1_PRINCIPAL, null); }); } @@ -148,7 +148,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { public void update_privateAnonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_update(DATABASE_1_ID, TABLE_1_ID, COLUMN_1_1_ID, DATABASE_1, TABLE_1, null, COLUMN_1_4_SEMANTICS_UPDATE_DTO, null, null, null); }); } @@ -158,7 +158,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { public void update_privateHasRoleNoAccess_fails() { /* test */ - assertThrows(NotAllowedException.class, () -> { + assertThrows(AccessDeniedException.class, () -> { generic_update(DATABASE_1_ID, TABLE_1_ID, COLUMN_1_1_ID, DATABASE_1, TABLE_1, null, COLUMN_1_4_SEMANTICS_UPDATE_DTO, USER_1_ID, USER_1_PRINCIPAL, null); }); } @@ -263,7 +263,7 @@ public class TableColumnEndpointUnitTest extends BaseUnitTest { when(accessService.find(databaseId, userId)) .thenReturn(access); } else { - doThrow(NotAllowedException.class) + doThrow(AccessDeniedException.class) .when(accessService) .find(databaseId, userId); } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointIntegrationTest.java index 3ea981b73cddd1a01c660af11ee530659d44c66e..65e7c420e269eccc049bd96f674fecfa64a6aa3d 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointIntegrationTest.java @@ -4,6 +4,7 @@ import at.tuwien.BaseUnitTest; import at.tuwien.annotations.MockAmqp; import at.tuwien.annotations.MockOpensearch; import at.tuwien.config.MariaDbConfig; +import at.tuwien.config.MariaDbContainerConfig; import at.tuwien.exception.*; import at.tuwien.repository.mdb.*; import lombok.extern.log4j.Log4j2; @@ -46,14 +47,17 @@ public class TableEndpointIntegrationTest extends BaseUnitTest { @Autowired private TableEndpoint tableEndpoint; - @Container @Autowired - private MariaDBContainer<?> mariaDBContainer; + private UserRepository userRepository; + + @Container + private static MariaDBContainer<?> mariaDBContainer = MariaDbContainerConfig.getContainer(); @BeforeEach public void beforeEach() throws SQLException { /* metadata database */ imageRepository.save(IMAGE_1); + userRepository.save(USER_1); containerRepository.save(CONTAINER_1_SIMPLE); databaseRepository.save(DATABASE_1_SIMPLE); MariaDbConfig.dropAllDatabases(CONTAINER_1); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointUnitTest.java index 3fb00dd487bebddad187218e4cd5b6012821f246..0c664547510b13f2ece3913ca15169f0ee89029c 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointUnitTest.java @@ -106,7 +106,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { public void create_publicAnonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_create(DATABASE_3_ID, DATABASE_3, TABLE_4_CREATE_DTO, null, null, null); }); } @@ -126,7 +126,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { public void create_publicHasRoleNoAccess_fails() { /* test */ - assertThrows(NotAllowedException.class, () -> { + assertThrows(AccessDeniedException.class, () -> { generic_create(DATABASE_3_ID, DATABASE_3, TABLE_4_CREATE_DTO, USER_1_ID, USER_1_PRINCIPAL, null); }); } @@ -136,7 +136,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { public void create_publicNoRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_create(DATABASE_3_ID, DATABASE_3, TABLE_4_CREATE_DTO, USER_1_ID, USER_1_PRINCIPAL, DATABASE_3_USER_1_WRITE_OWN_ACCESS); }); } @@ -205,7 +205,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { public void delete_publicAnonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_delete(DATABASE_3_ID, TABLE_8_ID, DATABASE_3, TABLE_3, null); }); } @@ -244,7 +244,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { public void delete_publicNoRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_delete(DATABASE_3_ID, TABLE_8_ID, DATABASE_3, TABLE_8, USER_4_PRINCIPAL); }); } @@ -291,7 +291,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { public void list_privateNoRole_fails() { /* test */ - assertThrows(NotAllowedException.class, () -> { + assertThrows(AccessDeniedException.class, () -> { generic_list(DATABASE_1_ID, DATABASE_1, USER_4_ID, USER_4_PRINCIPAL, null); }); } @@ -301,7 +301,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { public void create_privateAnonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_create(DATABASE_1_ID, DATABASE_1, TABLE_4_CREATE_DTO, null, null, null); }); } @@ -321,7 +321,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { public void create_privateHasRoleNoAccess_fails() { /* test */ - assertThrows(NotAllowedException.class, () -> { + assertThrows(AccessDeniedException.class, () -> { generic_create(DATABASE_1_ID, DATABASE_1, TABLE_4_CREATE_DTO, USER_1_ID, USER_1_PRINCIPAL, null); }); } @@ -331,7 +331,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { public void create_privateNoRole_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_create(DATABASE_1_ID, DATABASE_1, TABLE_4_CREATE_DTO, USER_1_ID, USER_1_PRINCIPAL, DATABASE_1_USER_1_WRITE_OWN_ACCESS); }); } @@ -399,7 +399,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { public void delete_privateAnonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { generic_delete(DATABASE_1_ID, TABLE_1_ID, DATABASE_1, TABLE_1, null); }); } @@ -471,7 +471,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { when(accessService.find(databaseId, userId)) .thenReturn(access); } else { - doThrow(NotAllowedException.class) + doThrow(AccessDeniedException.class) .when(accessService) .find(databaseId, userId); } @@ -504,7 +504,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { when(accessService.find(databaseId, userId)) .thenReturn(access); } else { - doThrow(NotAllowedException.class) + doThrow(AccessDeniedException.class) .when(accessService) .find(databaseId, userId); } @@ -543,7 +543,7 @@ public class TableEndpointUnitTest extends BaseUnitTest { when(accessService.find(databaseId, userId)) .thenReturn(access); } else { - doThrow(NotAllowedException.class) + doThrow(AccessDeniedException.class) .when(accessService) .find(databaseId, userId); } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UserEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UserEndpointUnitTest.java index edd7402e80135a9e2d129a11384198729bae2a00..1cf017ec7bf87a2acfaf600dc78bb92a90a80bcb 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UserEndpointUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UserEndpointUnitTest.java @@ -71,7 +71,7 @@ public class UserEndpointUnitTest extends BaseUnitTest { .build(); /* test */ - create_generic(request); + create_generic(request, USER_1); } @Test @@ -84,8 +84,8 @@ public class UserEndpointUnitTest extends BaseUnitTest { .build(); /* test */ - assertThrows(AccessDeniedException.class, () -> { - create_generic(request); + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { + create_generic(request, null); }); } @@ -94,7 +94,7 @@ public class UserEndpointUnitTest extends BaseUnitTest { public void find_anonymous_fails() { /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { find_generic(USER_1_ID, USER_1, null); }); } @@ -139,7 +139,7 @@ public class UserEndpointUnitTest extends BaseUnitTest { .build(); /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { modify_generic(USER_1_ID, USER_1, null, request); }); } @@ -155,7 +155,7 @@ public class UserEndpointUnitTest extends BaseUnitTest { .build(); /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { modify_generic(USER_1_ID, USER_1, USER_4_PRINCIPAL, request); }); } @@ -200,7 +200,7 @@ public class UserEndpointUnitTest extends BaseUnitTest { .build(); /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { theme_generic(USER_1_ID, USER_1, null, request); }); } @@ -213,7 +213,7 @@ public class UserEndpointUnitTest extends BaseUnitTest { .build(); /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { theme_generic(USER_4_ID, USER_4, USER_4_PRINCIPAL, request); }); } @@ -250,7 +250,7 @@ public class UserEndpointUnitTest extends BaseUnitTest { .build(); /* test */ - assertThrows(AccessDeniedException.class, () -> { + assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> { password_generic(USER_1_ID, USER_1, null, request); }); } @@ -298,9 +298,13 @@ public class UserEndpointUnitTest extends BaseUnitTest { assertEquals(2, body.size()); } - protected void create_generic(SignupRequestDto data) throws UserEmailAlreadyExistsException, RealmNotFoundException, - UserAlreadyExistsException, UserNotFoundException, KeycloakRemoteException, - at.tuwien.exception.AccessDeniedException { + protected void create_generic(SignupRequestDto data, User user) throws UserEmailAlreadyExistsException, + RealmNotFoundException, UserAlreadyExistsException, UserNotFoundException, KeycloakRemoteException, + AccessDeniedException { + + /* mock */ + when(userService.create(data)) + .thenReturn(user); /* test */ final ResponseEntity<UserBriefDto> response = userEndpoint.create(data); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/DatabaseMapperTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/DatabaseMapperTest.java index 78dcd07ea90219fb2c9f0bb2db840c95d3fe7239..d9af373754408138e4ce19ee660c1c7931cd51f2 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/DatabaseMapperTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/DatabaseMapperTest.java @@ -6,6 +6,8 @@ import at.tuwien.annotations.MockOpensearch; import at.tuwien.api.database.DatabaseDto; import at.tuwien.api.user.UserBriefDto; import at.tuwien.api.user.UserDto; +import at.tuwien.entities.database.Database; +import at.tuwien.entities.user.User; import at.tuwien.exception.QueryMalformedException; import lombok.extern.log4j.Log4j2; import org.junit.jupiter.api.Test; @@ -29,6 +31,7 @@ public class DatabaseMapperTest extends BaseUnitTest { @Test public void databaseToDatabaseDto_succeeds() { + final Database debug = DATABASE_1; /* test */ final DatabaseDto response = databaseMapper.databaseToDatabaseDto(DATABASE_1); @@ -48,10 +51,14 @@ public class DatabaseMapperTest extends BaseUnitTest { @Test public void userToRawCreateUserQuery_fails () { + final User request = User.builder() + .username("username") + .mariadbPassword(null) // <<<<<<<<< + .build(); /* test */ assertThrows(QueryMalformedException.class, () -> { - databaseMapper.userToRawCreateUserQuery(null, USER_1); + databaseMapper.userToRawCreateUserQuery(null, request); }); } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/repository/DatabaseRepositoryUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/repository/DatabaseRepositoryUnitTest.java index 66f1695ae6a256b2a5c5ef6dac60e9a59158711e..0aa05db2101863570e1af102767129ad1b595c9e 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/repository/DatabaseRepositoryUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/repository/DatabaseRepositoryUnitTest.java @@ -29,6 +29,9 @@ public class DatabaseRepositoryUnitTest extends BaseUnitTest { @Autowired private ImageRepository imageRepository; + @Autowired + private UserRepository userRepository; + @Autowired private ContainerRepository containerRepository; @@ -41,6 +44,8 @@ public class DatabaseRepositoryUnitTest extends BaseUnitTest { @BeforeEach public void beforeEach() { imageRepository.save(IMAGE_1_SIMPLE); + userRepository.save(USER_1); + userRepository.save(USER_2); containerRepository.save(CONTAINER_1_SIMPLE); containerRepository.save(CONTAINER_2_SIMPLE); databaseRepository.save(DATABASE_1_SIMPLE); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/repository/ViewIdxRepositoryIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/repository/ViewIdxRepositoryIntegrationTest.java index fa1329dbd8a117fe100548851b4c372259ad4cf2..ac7360e38d2551dc3d61ad9de7d3489b896b75de 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/repository/ViewIdxRepositoryIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/repository/ViewIdxRepositoryIntegrationTest.java @@ -5,6 +5,7 @@ import at.tuwien.annotations.MockAmqp; import at.tuwien.api.database.ViewCreateDto; import at.tuwien.api.database.ViewDto; import at.tuwien.config.MariaDbConfig; +import at.tuwien.config.MariaDbContainerConfig; import at.tuwien.exception.*; import at.tuwien.repository.mdb.*; import at.tuwien.repository.sdb.ViewIdxRepository; @@ -63,12 +64,14 @@ public class ViewIdxRepositoryIntegrationTest extends BaseUnitTest { @Autowired private ViewService viewService; + @Autowired + private UserRepository userRepository; + @Rule public Timeout globalTimeout = Timeout.seconds(60); @Container - @Autowired - private MariaDBContainer<?> mariaDBContainer; + private static MariaDBContainer<?> mariaDBContainer = MariaDbContainerConfig.getContainer(); @Container private static final OpensearchContainer opensearchContainer = new OpensearchContainer(DockerImageName.parse("opensearchproject/opensearch:2.8.0")); @@ -90,6 +93,7 @@ public class ViewIdxRepositoryIntegrationTest extends BaseUnitTest { TABLE_2.setColumns(TABLE_2_COLUMNS); /* metadata database */ imageRepository.save(IMAGE_1); + userRepository.save(USER_1); containerRepository.save(CONTAINER_1); databaseRepository.save(DATABASE_1_SIMPLE); tableRepository.saveAll(List.of(TABLE_1_SIMPLE, TABLE_2_SIMPLE)); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/repository/ViewRepositoryIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/repository/ViewRepositoryIntegrationTest.java index 9fc3776669f830c8bd0c6e392b80d78b8688ab90..844d798d6773db2094e15ce15183c7c1e71dfdf0 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/repository/ViewRepositoryIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/repository/ViewRepositoryIntegrationTest.java @@ -46,12 +46,17 @@ public class ViewRepositoryIntegrationTest extends BaseUnitTest { @Autowired private ViewRepository viewRepository; + @Autowired + private UserRepository userRepository; + @Rule public Timeout globalTimeout = Timeout.seconds(60); @BeforeEach public void beforeEach() { imageRepository.save(IMAGE_1); + userRepository.save(USER_1); + userRepository.save(USER_2); containerRepository.saveAll(List.of(CONTAINER_1_SIMPLE, CONTAINER_2_SIMPLE)); databaseRepository.saveAll(List.of(DATABASE_1_SIMPLE, DATABASE_2_SIMPLE)); tableRepository.saveAll(List.of(TABLE_1_SIMPLE, TABLE_2_SIMPLE, TABLE_3_SIMPLE, TABLE_4_SIMPLE, TABLE_5_SIMPLE, TABLE_6_SIMPLE, TABLE_7_SIMPLE)); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/AccessServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/AccessServiceIntegrationTest.java index bdce53ceb3328bcdac0c9a1c803424be79d0647d..5c472f5008e1a47796494b2623036c2ac293e317 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/AccessServiceIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/AccessServiceIntegrationTest.java @@ -7,6 +7,7 @@ import at.tuwien.api.database.AccessTypeDto; import at.tuwien.api.database.DatabaseGiveAccessDto; import at.tuwien.api.database.DatabaseModifyAccessDto; import at.tuwien.config.MariaDbConfig; +import at.tuwien.config.MariaDbContainerConfig; import at.tuwien.entities.database.AccessType; import at.tuwien.entities.database.DatabaseAccess; import at.tuwien.exception.*; @@ -62,14 +63,17 @@ public class AccessServiceIntegrationTest extends BaseUnitTest { @Autowired private AccessService accessService; - @Container @Autowired - private MariaDBContainer<?> mariaDBContainer; + private UserRepository userRepository; + + @Container + private static MariaDBContainer<?> mariaDBContainer = MariaDbContainerConfig.getContainer(); @BeforeEach public void beforeEach() throws SQLException { /* metadata database */ imageRepository.save(IMAGE_1); + userRepository.saveAll(List.of(USER_1, USER_2, USER_3)); containerRepository.save(CONTAINER_1_SIMPLE); databaseRepository.save(DATABASE_1_SIMPLE); MariaDbConfig.dropAllDatabases(CONTAINER_1); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServiceIntegrationTest.java index d05fbd5a3668cc959865b1e870197e5a127e3c81..b683689645340d1c80db4a2a5a4c4e7a7901eabf 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServiceIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServiceIntegrationTest.java @@ -11,7 +11,6 @@ import at.tuwien.config.EndpointConfig; import at.tuwien.entities.identifier.Identifier; import at.tuwien.exception.*; import at.tuwien.repository.mdb.*; -import org.apache.http.auth.BasicUserPrincipal; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -30,8 +29,6 @@ import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.web.client.RestTemplate; -import java.security.Principal; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.*; @@ -53,6 +50,9 @@ public class DataCiteIdentifierServiceIntegrationTest extends BaseUnitTest { @Autowired private LicenseRepository licenseRepository; + @Autowired + private UserRepository userRepository; + @Autowired private ImageRepository imageRepository; @@ -79,6 +79,7 @@ public class DataCiteIdentifierServiceIntegrationTest extends BaseUnitTest { public void beforeEach() { licenseRepository.save(LICENSE_1); imageRepository.save(IMAGE_1); + userRepository.save(USER_1); containerRepository.save(CONTAINER_1_SIMPLE); databaseRepository.save(DATABASE_1_SIMPLE); } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServiceUnitTest.java index 169ad4d76f35a8d084c8010e38cdccce413895c2..5c827fea63fe36dfe62cfc104f5a9cc6f07b7db1 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServiceUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServiceUnitTest.java @@ -59,6 +59,9 @@ public class DataCiteIdentifierServiceUnitTest extends BaseUnitTest { @Autowired private ImageRepository imageRepository; + @Autowired + private UserRepository userRepository; + @Autowired private ContainerRepository containerRepository; @@ -85,6 +88,7 @@ public class DataCiteIdentifierServiceUnitTest extends BaseUnitTest { public void beforeEach() { licenseRepository.save(LICENSE_1); imageRepository.save(IMAGE_1); + userRepository.save(USER_1); containerRepository.save(CONTAINER_1_SIMPLE); databaseRepository.save(DATABASE_1_SIMPLE); } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceComponentTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceComponentTest.java index 47318a596f24170ebb8b1aa5176b8ea6f8059567..18de26397aa4991956ee5494ce6df5b098ffce49 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceComponentTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceComponentTest.java @@ -6,6 +6,7 @@ import at.tuwien.annotations.MockOpensearch; import at.tuwien.api.database.DatabaseCreateDto; import at.tuwien.api.database.DatabaseDto; import at.tuwien.config.MariaDbConfig; +import at.tuwien.config.MariaDbContainerConfig; import at.tuwien.entities.database.Database; import at.tuwien.repository.mdb.ContainerRepository; import at.tuwien.repository.mdb.DatabaseRepository; @@ -56,8 +57,7 @@ public class DatabaseServiceComponentTest extends BaseUnitTest { private MariaDbServiceImpl databaseService; @Container - @Autowired - public MariaDBContainer<?> mariaDBContainer; + private static MariaDBContainer<?> mariaDBContainer = MariaDbContainerConfig.getContainer(); @BeforeEach public void beforeEach() { diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java index 6e37ebf46419a480b2af1ddbbac9e15bc497f9f2..67de4364b64bc0dcc5d5f32612a89bbcb5945f03 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java @@ -5,7 +5,9 @@ import at.tuwien.annotations.MockAmqp; import at.tuwien.annotations.MockOpensearch; import at.tuwien.api.database.*; import at.tuwien.config.MariaDbConfig; +import at.tuwien.config.MariaDbContainerConfig; import at.tuwien.entities.database.Database; +import at.tuwien.entities.user.User; import at.tuwien.exception.*; import at.tuwien.gateway.KeycloakGateway; import at.tuwien.repository.mdb.*; @@ -44,11 +46,8 @@ public class DatabaseServiceIntegrationTest extends BaseUnitTest { @MockBean private DatabaseIdxRepository databaseIdxRepository; - @MockBean - private KeycloakGateway keycloakGateway; - - @MockBean - private UserService userService; + @Autowired + private UserRepository userRepository; @Autowired private DatabaseAccessRepository databaseAccessRepository; @@ -69,13 +68,13 @@ public class DatabaseServiceIntegrationTest extends BaseUnitTest { private MariaDbConfig mariaDbConfig; @Container - @Autowired - private MariaDBContainer<?> mariaDBContainer; + private static MariaDBContainer<?> mariaDBContainer = MariaDbContainerConfig.getContainer(); @BeforeEach public void beforeEach() throws SQLException { /* metadata database */ imageRepository.save(IMAGE_1); + userRepository.saveAll(List.of(USER_1, USER_2, USER_3)); containerRepository.save(CONTAINER_1_SIMPLE); databaseRepository.saveAll(List.of(DATABASE_1_SIMPLE, DATABASE_2_SIMPLE, DATABASE_3_SIMPLE)); MariaDbConfig.dropAllDatabases(CONTAINER_1); @@ -110,8 +109,6 @@ public class DatabaseServiceIntegrationTest extends BaseUnitTest { .thenReturn(DATABASE_1_DTO); when(databaseIdxRepository.save(any(DatabaseDto.class))) .thenReturn(DATABASE_1_DTO); - when(userService.findByUsername(USER_1_USERNAME)) - .thenReturn(USER_1); /* test */ generic_create(DATABASE_1_CREATE, DATABASE_1); @@ -126,8 +123,6 @@ public class DatabaseServiceIntegrationTest extends BaseUnitTest { .thenReturn(DATABASE_1_DTO); when(databaseIdxRepository.save(any(DatabaseDto.class))) .thenReturn(DATABASE_1_DTO); - when(userService.findByUsername(USER_1_USERNAME)) - .thenReturn(USER_1); /* test */ generic_create(DATABASE_1_CREATE, DATABASE_1); @@ -144,8 +139,6 @@ public class DatabaseServiceIntegrationTest extends BaseUnitTest { when(databaseIdxRepository.save(any(DatabaseDto.class))) .thenReturn(DATABASE_2_DTO) .thenReturn(DATABASE_3_DTO); - when(userService.findByUsername(USER_1_USERNAME)) - .thenReturn(USER_1); /* test */ generic_create(DATABASE_2_CREATE, DATABASE_2); @@ -162,8 +155,6 @@ public class DatabaseServiceIntegrationTest extends BaseUnitTest { when(databaseIdxRepository.save(any(DatabaseDto.class))) .thenReturn(DATABASE_3_DTO) .thenReturn(DATABASE_2_DTO); - when(userService.findByUsername(USER_1_USERNAME)) - .thenReturn(USER_1); /* test */ generic_create(DATABASE_3_CREATE, DATABASE_3); @@ -178,8 +169,6 @@ public class DatabaseServiceIntegrationTest extends BaseUnitTest { databaseRepository.deleteAll(); when(databaseIdxRepository.save(any(DatabaseDto.class))) .thenReturn(DATABASE_1_DTO); - when(userService.findByUsername(USER_1_USERNAME)) - .thenReturn(USER_1); final Database database = generic_create(DATABASE_1_CREATE, DATABASE_1); @@ -191,20 +180,21 @@ public class DatabaseServiceIntegrationTest extends BaseUnitTest { public void updatePassword_canLogin_succeeds() throws Exception { /* mock */ - MariaDbConfig.dropDatabase(CONTAINER_1, DATABASE_1_INTERNALNAME); - MariaDbConfig.createDatabase(CONTAINER_1, DATABASE_1_INTERNALNAME); - databaseAccessRepository.save(DATABASE_1_USER_1_READ_ACCESS); + userRepository.save(USER_3); + databaseAccessRepository.save(DATABASE_1_USER_3_READ_ACCESS); when(databaseIdxRepository.save(any(DatabaseDto.class))) .thenReturn(DATABASE_1_DTO); - when(userService.findByUsername(USER_1_USERNAME)) - .thenReturn(USER_1); - databaseService.updatePassword(USER_1); /* test */ assertThrows(SQLInvalidAuthorizationSpecException.class, () -> { - MariaDbConfig.getPrivileges(mariaDBContainer.getHost(), mariaDBContainer.getMappedPort(3306), DATABASE_1_INTERNALNAME, USER_1_USERNAME, USER_1_PASSWORD); + MariaDbConfig.getPrivileges(mariaDBContainer.getHost(), mariaDBContainer.getMappedPort(3306), USER_3_USERNAME, USER_4_PASSWORD); }); - MariaDbConfig.getPrivileges(mariaDBContainer.getHost(), mariaDBContainer.getMappedPort(3306), DATABASE_1_INTERNALNAME, USER_1_USERNAME, USER_2_PASSWORD); + databaseService.updatePassword(User.builder() + .id(USER_3_ID) + .username(USER_3_USERNAME) + .mariadbPassword(USER_4_DATABASE_PASSWORD) + .build()); + MariaDbConfig.getPrivileges(mariaDBContainer.getHost(), mariaDBContainer.getMappedPort(3306), USER_3_USERNAME, USER_4_PASSWORD); } @Test @@ -252,7 +242,7 @@ public class DatabaseServiceIntegrationTest extends BaseUnitTest { /* mock */ MariaDbConfig.dropDatabase(CONTAINER_1, DATABASE_3_INTERNALNAME); MariaDbConfig.createInitDatabase(CONTAINER_1, DATABASE_3); - MariaDbConfig.grantUserPermissions(CONTAINER_1, DATABASE_3, "junit1"); + mariaDbConfig.grantUserPermissions(CONTAINER_1, DATABASE_3, "junit1"); databaseAccessRepository.save(DATABASE_3_USER_1_WRITE_ALL_ACCESS); /* test */ @@ -292,10 +282,7 @@ public class DatabaseServiceIntegrationTest extends BaseUnitTest { /* mock */ databaseRepository.save(DATABASE_1_SIMPLE); - when(userService.findByUsername(USER_1_USERNAME)) - .thenReturn(USER_1); - when(userService.findByUsername(USER_2_USERNAME)) - .thenReturn(USER_2); + userRepository.save(USER_2); /* test */ final Database response = databaseService.transfer(DATABASE_1_ID, request); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServiceIntegrationTest.java index 74802cc49d36ca0ae57d1d604a4cf011fd86a340..580a9d454526e0c66ed2a39e3c187efc06c59e6a 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServiceIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServiceIntegrationTest.java @@ -16,6 +16,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.opensearch.testcontainers.OpensearchContainer; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.HttpEntity; @@ -49,6 +50,7 @@ public class IdentifierServiceIntegrationTest extends BaseUnitTest { private StoreService storeService; @MockBean + @Qualifier("brokerRestTemplate") private RestTemplate restTemplate; @Autowired @@ -75,6 +77,9 @@ public class IdentifierServiceIntegrationTest extends BaseUnitTest { @Autowired private ViewRepository viewRepository; + @Autowired + private UserRepository userRepository; + @Autowired private TableRepository tableRepository; @@ -93,6 +98,7 @@ public class IdentifierServiceIntegrationTest extends BaseUnitTest { @BeforeEach public void beforeEach() { imageRepository.save(IMAGE_1_SIMPLE); + userRepository.saveAll(List.of(USER_1, USER_2, USER_3, USER_4)); licenseRepository.save(LICENSE_1); containerRepository.save(CONTAINER_1_SIMPLE); databaseRepository.save(DATABASE_1_SIMPLE); @@ -103,6 +109,7 @@ public class IdentifierServiceIntegrationTest extends BaseUnitTest { @Test public void findAll_succeeds() { + /* mock */ identifierRepository.save(IDENTIFIER_1); /* test */ @@ -114,6 +121,7 @@ public class IdentifierServiceIntegrationTest extends BaseUnitTest { @Transactional public void find_succeeds() throws IdentifierNotFoundException { + /* mock */ identifierRepository.save(IDENTIFIER_1); /* test */ @@ -143,6 +151,7 @@ public class IdentifierServiceIntegrationTest extends BaseUnitTest { @Test public void findAll_forDatabase_succeeds() { + /* mock */ identifierRepository.save(IDENTIFIER_1); /* test */ @@ -164,7 +173,6 @@ public class IdentifierServiceIntegrationTest extends BaseUnitTest { QueryNotFoundException, IdentifierPublishingNotAllowedException, RemoteUnavailableException, IdentifierRequestException, ViewNotFoundException, QueryStoreException, DatabaseConnectionException, ImageNotSupportedException { - final String bearer = "Bearer abcxyz"; /* mock */ when(restTemplate.exchange(anyString(), any(HttpMethod.class), any(HttpEntity.class), eq(QueryDto.class))) @@ -211,7 +219,6 @@ public class IdentifierServiceIntegrationTest extends BaseUnitTest { IdentifierAlreadyExistsException, QueryNotFoundException, IdentifierPublishingNotAllowedException, RemoteUnavailableException, IdentifierRequestException, ViewNotFoundException, QueryStoreException, DatabaseConnectionException, ImageNotSupportedException { - final String bearer = "Bearer abcxyz"; /* test */ final Identifier response = identifierService.create(IDENTIFIER_1_DTO_REQUEST, USER_1_PRINCIPAL); @@ -249,7 +256,6 @@ public class IdentifierServiceIntegrationTest extends BaseUnitTest { IdentifierAlreadyExistsException, QueryNotFoundException, IdentifierPublishingNotAllowedException, RemoteUnavailableException, IdentifierRequestException, ViewNotFoundException, QueryStoreException, DatabaseConnectionException, ImageNotSupportedException { - final String bearer = "Bearer abcxyz"; /* mock */ containerRepository.save(CONTAINER_3_SIMPLE); @@ -318,7 +324,6 @@ public class IdentifierServiceIntegrationTest extends BaseUnitTest { IdentifierAlreadyExistsException, QueryNotFoundException, IdentifierPublishingNotAllowedException, RemoteUnavailableException, IdentifierRequestException, ViewNotFoundException, QueryStoreException, DatabaseConnectionException, ImageNotSupportedException { - final String authorization = "Bearer abcxyz"; /* mock */ containerRepository.save(CONTAINER_3_SIMPLE); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/LicenseServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/LicenseServiceIntegrationTest.java index 98b90e73f4d998a9bd6b5714d0ee3ba5bdf7a634..eca8d1bc914ede6e2d792970755c5e7dd681e84c 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/LicenseServiceIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/LicenseServiceIntegrationTest.java @@ -3,6 +3,7 @@ package at.tuwien.service; import at.tuwien.BaseUnitTest; import at.tuwien.annotations.MockAmqp; import at.tuwien.annotations.MockOpensearch; +import at.tuwien.config.MariaDbContainerConfig; import at.tuwien.entities.database.License; import at.tuwien.exception.LicenseNotFoundException; import at.tuwien.repository.mdb.LicenseRepository; @@ -37,8 +38,7 @@ public class LicenseServiceIntegrationTest extends BaseUnitTest { private LicenseService licenseService; @Container - @Autowired - public MariaDBContainer<?> mariaDBContainer; + private static MariaDBContainer<?> mariaDBContainer = MariaDbContainerConfig.getContainer(); @BeforeEach public void beforeEach() { diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageQueueServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageQueueServiceIntegrationTest.java index 5c94c0f7463c9c7cf10d005a629d2d3af34dbbbf..b68d07b0df8de1599b9c0918b304b26cf72787cb 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageQueueServiceIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageQueueServiceIntegrationTest.java @@ -25,7 +25,9 @@ import org.testcontainers.containers.RabbitMQContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; +import java.io.IOException; import java.util.List; +import java.util.concurrent.TimeoutException; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.when; @@ -142,7 +144,7 @@ public class MessageQueueServiceIntegrationTest extends BaseUnitTest { } @Test - public void init_succeeds() throws AmqpException { + public void init_succeeds() throws AmqpException, IOException, TimeoutException { /* mock */ when(databaseRepository.findAll()) diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageQueueServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageQueueServiceUnitTest.java index 8f533059f5a7d7b43e8c502ae2cb2a7fe1df53fa..530edaea9e655cc08e9148b8e0fcb2d248efc6a2 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageQueueServiceUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageQueueServiceUnitTest.java @@ -10,6 +10,7 @@ import at.tuwien.service.impl.RabbitMqServiceImpl; import com.rabbitmq.client.BuiltinExchangeType; import com.rabbitmq.client.Channel; import lombok.extern.log4j.Log4j2; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; @@ -42,6 +43,7 @@ public class MessageQueueServiceUnitTest extends BaseUnitTest { private RabbitMqServiceImpl messageQueueService; @Test + @Disabled("cannot be mocked") public void createExchange_fails() throws IOException { /* mock */ @@ -56,6 +58,7 @@ public class MessageQueueServiceUnitTest extends BaseUnitTest { } @Test + @Disabled("cannot be mocked") public void deleteExchange_fails() throws IOException { /* mock */ diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MetadataServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MetadataServiceIntegrationTest.java index 3116d2ff9bed8887b760ae91bf8000f29d56f96e..9dd2a6e4633b8731eb48364808037c4576001425 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MetadataServiceIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MetadataServiceIntegrationTest.java @@ -31,6 +31,9 @@ public class MetadataServiceIntegrationTest extends BaseUnitTest { @Autowired private ImageRepository imageRepository; + @Autowired + private UserRepository userRepository; + @Autowired private ContainerRepository containerRepository; @@ -50,6 +53,7 @@ public class MetadataServiceIntegrationTest extends BaseUnitTest { public void beforeEach() { /* metadata database */ imageRepository.save(IMAGE_1_SIMPLE); + userRepository.save(USER_1); licenseRepository.save(LICENSE_1); containerRepository.save(CONTAINER_1); databaseRepository.save(DATABASE_1_SIMPLE); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/QueryServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/QueryServiceIntegrationTest.java index 58223493e3e697563418430416b4e38bfee702eb..5628f041c988611bb0cdf0a2bda9f3cb16dfe68f 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/QueryServiceIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/QueryServiceIntegrationTest.java @@ -8,6 +8,7 @@ import at.tuwien.api.database.query.ExecuteStatementDto; import at.tuwien.api.database.query.QueryResultDto; import at.tuwien.api.database.table.TableCsvDto; import at.tuwien.config.MariaDbConfig; +import at.tuwien.config.MariaDbContainerConfig; import at.tuwien.exception.*; import at.tuwien.querystore.Query; import at.tuwien.repository.mdb.*; @@ -50,7 +51,7 @@ import static org.mockito.Mockito.when; @MockOpensearch public class QueryServiceIntegrationTest extends BaseUnitTest { - @MockBean + @Autowired private UserRepository userRepository; @Autowired @@ -75,8 +76,7 @@ public class QueryServiceIntegrationTest extends BaseUnitTest { private QueryService queryService; @Container - @Autowired - private MariaDBContainer<?> mariaDBContainer; + private static MariaDBContainer<?> mariaDBContainer = MariaDbContainerConfig.getContainer(); @BeforeEach public void beforeEach() throws SQLException { @@ -85,6 +85,8 @@ public class QueryServiceIntegrationTest extends BaseUnitTest { MariaDbConfig.createInitDatabase(CONTAINER_1, DATABASE_1); /* metadata database */ imageRepository.save(IMAGE_1); + userRepository.save(USER_1); + userRepository.save(USER_2); containerRepository.saveAll(List.of(CONTAINER_1_SIMPLE, CONTAINER_2_SIMPLE)); databaseRepository.saveAll(List.of(DATABASE_1_SIMPLE, DATABASE_2_SIMPLE)); tableRepository.saveAll(List.of(TABLE_1_SIMPLE, TABLE_2_SIMPLE, TABLE_3_SIMPLE, TABLE_4_SIMPLE, TABLE_5_SIMPLE, TABLE_6_SIMPLE, TABLE_7_SIMPLE)); @@ -297,10 +299,6 @@ public class QueryServiceIntegrationTest extends BaseUnitTest { .statement("SELECT n.`firstname`, n.`lastname`, n.`birth`, n.`reminder`, z.`animal_name`, z.`legs` FROM `likes` l JOIN `names` n ON l.`name_id` = n.`id` JOIN `mock_view` z ON z.`id` = l.`zoo_id`") .build(); - /* mock */ - when(userRepository.findByUsername(USER_1_USERNAME)) - .thenReturn(Optional.of(USER_1)); - /* test */ Thread.sleep(1000) /* wait for test container some more */; final QueryResultDto response = queryService.execute(DATABASE_2_ID, request, USER_1_PRINCIPAL, 0L, 100L, null, null); @@ -338,10 +336,6 @@ public class QueryServiceIntegrationTest extends BaseUnitTest { .statement("SELECT `location`, `lng` FROM `weather_location` WHERE `lat` IS NULL") .build(); - /* mock */ - when(userRepository.findByUsername(USER_1_USERNAME)) - .thenReturn(Optional.of(USER_1)); - /* test */ Thread.sleep(1000) /* wait for test container some more */; final QueryResultDto response = queryService.execute(DATABASE_1_ID, request, USER_1_PRINCIPAL, @@ -362,10 +356,6 @@ public class QueryServiceIntegrationTest extends BaseUnitTest { .statement("SELECT `location` FROM `weather_location` WHERE `lat` IS NULL") .build(); - /* mock */ - when(userRepository.findByUsername(USER_1_USERNAME)) - .thenReturn(Optional.of(USER_1)); - /* test */ Thread.sleep(1000) /* wait for test container some more */; final QueryResultDto response = queryService.execute(DATABASE_1_ID, request, USER_1_PRINCIPAL, @@ -387,10 +377,6 @@ public class QueryServiceIntegrationTest extends BaseUnitTest { .statement("SELECT `lat`, `lng` FROM `weather_location` WHERE `lat` IS NULL") .build(); - /* mock */ - when(userRepository.findByUsername(USER_1_USERNAME)) - .thenReturn(Optional.of(USER_1)); - /* test */ Thread.sleep(1000) /* wait for test container some more */; final QueryResultDto response = queryService.execute(DATABASE_1_ID, request, USER_1_PRINCIPAL, @@ -407,10 +393,6 @@ public class QueryServiceIntegrationTest extends BaseUnitTest { .statement("SELECT aus.location as a, loc.location from weather_aus aus, weather_location loc") .build(); - /* mock */ - when(userRepository.findByUsername(USER_1_USERNAME)) - .thenReturn(Optional.of(USER_1)); - /* test */ Thread.sleep(1000) /* wait for test container some more */; final QueryResultDto response = queryService.execute(DATABASE_1_ID, request, USER_1_PRINCIPAL, 0L, 100L, null, null); @@ -448,8 +430,6 @@ public class QueryServiceIntegrationTest extends BaseUnitTest { /* mock */ Thread.sleep(1000) /* wait for test container some more */; - when(userRepository.findByUsername(USER_1_USERNAME)) - .thenReturn(Optional.of(USER_1)); /* test */ final QueryResultDto response = queryService.execute(DATABASE_1_ID, request, USER_1_PRINCIPAL, diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/QueryStoreServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/QueryStoreServiceIntegrationTest.java index bb1da63e372a57b853cd633687286c047c406f6f..f27920ea34929b9fdd26032e024a4d00f2f56866 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/QueryStoreServiceIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/QueryStoreServiceIntegrationTest.java @@ -4,6 +4,7 @@ import at.tuwien.BaseUnitTest; import at.tuwien.annotations.MockAmqp; import at.tuwien.annotations.MockOpensearch; import at.tuwien.config.MariaDbConfig; +import at.tuwien.config.MariaDbContainerConfig; import at.tuwien.exception.*; import at.tuwien.repository.mdb.*; import at.tuwien.service.impl.HibernateConnector; @@ -39,6 +40,9 @@ public class QueryStoreServiceIntegrationTest extends BaseUnitTest { @Autowired private ImageRepository imageRepository; + @Autowired + private UserRepository userRepository; + @Autowired private DatabaseRepository databaseRepository; @@ -46,13 +50,13 @@ public class QueryStoreServiceIntegrationTest extends BaseUnitTest { private QueryStoreServiceImpl queryStoreService; @Container - @Autowired - private MariaDBContainer<?> mariaDBContainer; + private static MariaDBContainer<?> mariaDBContainer = MariaDbContainerConfig.getContainer(); @BeforeEach public void beforeEach() throws SQLException { /* metadata database */ imageRepository.save(IMAGE_1); + userRepository.save(USER_1); containerRepository.save(CONTAINER_1_SIMPLE); databaseRepository.save(DATABASE_1_SIMPLE); MariaDbConfig.dropAllDatabases(CONTAINER_1); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/StoreServiceIntegrationModifyTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/StoreServiceIntegrationModifyTest.java index 4597bb22e9c34e3d09954ba37e302aa62fb10ea5..e7d733a529676037691575ccd27d352e46f84c5c 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/StoreServiceIntegrationModifyTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/StoreServiceIntegrationModifyTest.java @@ -7,6 +7,7 @@ import at.tuwien.api.database.query.ExecuteStatementDto; import at.tuwien.api.database.query.QueryPersistDto; import at.tuwien.api.database.query.QueryResultDto; import at.tuwien.config.MariaDbConfig; +import at.tuwien.config.MariaDbContainerConfig; import at.tuwien.exception.*; import at.tuwien.querystore.Query; import at.tuwien.repository.mdb.*; @@ -63,9 +64,11 @@ public class StoreServiceIntegrationModifyTest extends BaseUnitTest { @Autowired private QueryService queryService; - @Container @Autowired - private MariaDBContainer<?> mariaDBContainer; + private UserRepository userRepository; + + @Container + private static MariaDBContainer<?> mariaDBContainer = MariaDbContainerConfig.getContainer(); @BeforeEach public void beforeEach() throws InterruptedException, SQLException { @@ -76,6 +79,8 @@ public class StoreServiceIntegrationModifyTest extends BaseUnitTest { /* metadata database */ imageRepository.save(IMAGE_1); containerRepository.save(CONTAINER_1); + userRepository.save(USER_1); + userRepository.save(USER_5); databaseRepository.save(DATABASE_1_SIMPLE); tableRepository.saveAll(List.of(TABLE_1_SIMPLE, TABLE_2_SIMPLE)); tableColumnRepository.saveAll(TABLE_1_COLUMNS); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationReadTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationReadTest.java index 31798e89caa3daca7d160a0c76be4cca63436fd6..8d632a4ef037dfb56fd69494f043f9a91bec3602 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationReadTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationReadTest.java @@ -5,6 +5,7 @@ import at.tuwien.annotations.MockAmqp; import at.tuwien.annotations.MockOpensearch; import at.tuwien.api.database.table.TableHistoryDto; import at.tuwien.config.MariaDbConfig; +import at.tuwien.config.MariaDbContainerConfig; import at.tuwien.entities.database.table.Table; import at.tuwien.exception.*; import at.tuwien.repository.mdb.*; @@ -52,13 +53,16 @@ public class TableServiceIntegrationReadTest extends BaseUnitTest { @Autowired private TableService tableService; - @Container @Autowired - private MariaDBContainer<?> mariaDBContainer; + private UserRepository userRepository; + + @Container + private static MariaDBContainer<?> mariaDBContainer = MariaDbContainerConfig.getContainer(); @BeforeEach public void beforeEach() throws SQLException { imageRepository.save(IMAGE_1); + userRepository.saveAll(List.of(USER_1, USER_2)); containerRepository.save(CONTAINER_1_SIMPLE); containerRepository.save(CONTAINER_2_SIMPLE); databaseRepository.save(DATABASE_1_SIMPLE); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationWriteTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationWriteTest.java index fbab8d9570e130bb906b350899ecc6d68d493b0f..11fb73a8e07ca567de5155118b96d3643b2f3408 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationWriteTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationWriteTest.java @@ -9,6 +9,7 @@ import at.tuwien.api.database.table.columns.ColumnCreateDto; import at.tuwien.api.database.table.columns.ColumnTypeDto; import at.tuwien.api.database.table.constraints.ConstraintsCreateDto; import at.tuwien.config.MariaDbConfig; +import at.tuwien.config.MariaDbContainerConfig; import at.tuwien.entities.database.table.Table; import at.tuwien.entities.database.table.columns.TableColumn; import at.tuwien.exception.*; @@ -77,9 +78,11 @@ public class TableServiceIntegrationWriteTest extends BaseUnitTest { @Autowired private TableMapper tableMapper; - @Container @Autowired - private MariaDBContainer<?> mariaDBContainer; + private UserRepository userRepository; + + @Container + private static MariaDBContainer<?> mariaDBContainer = MariaDbContainerConfig.getContainer(); @BeforeEach public void beforeEach() throws SQLException { @@ -87,6 +90,8 @@ public class TableServiceIntegrationWriteTest extends BaseUnitTest { MariaDbConfig.createInitDatabase(CONTAINER_1, DATABASE_1); /* metadata database */ imageRepository.save(IMAGE_1); + userRepository.save(USER_1); + userRepository.save(USER_2); containerRepository.save(CONTAINER_1_SIMPLE); containerRepository.save(CONTAINER_2_SIMPLE); databaseRepository.save(DATABASE_1_SIMPLE); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceIntegrationTest.java index fd561cadd89ea07dfbe74aae84adf900047fc96b..d1e08574339d3cc4c38178a03c5a2528dc371f85 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceIntegrationTest.java @@ -17,20 +17,18 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.dao.DataIntegrityViolationException; import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.transaction.annotation.Transactional; -import org.testcontainers.containers.MariaDBContainer; +import org.testcontainers.images.PullPolicy; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import java.util.List; -import java.util.Optional; import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.when; @Log4j2 @Testcontainers @@ -49,8 +47,17 @@ public class UserServiceIntegrationTest extends BaseUnitTest { private UserService userService; @Container - @Autowired - private KeycloakContainer keycloakContainer; + private static KeycloakContainer keycloakContainer = new KeycloakContainer("quay.io/keycloak/keycloak:21.0") + .withImagePullPolicy(PullPolicy.alwaysPull()) + .withAdminUsername("fda") + .withAdminPassword("fda") + .withRealmImportFile("./dbrepo-realm.json") + .withEnv("KC_HOSTNAME_STRICT_HTTPS", "false"); + + @DynamicPropertySource + static void elasticsearchProperties(DynamicPropertyRegistry registry) { + registry.add("fda.keycloak.endpoint", () -> "http://localhost:" + keycloakContainer.getMappedPort(8080)); + } @BeforeEach public void beforeEach() { diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceUnitTest.java index 3282718db00f35428046a9b1ff09f54b670482c2..1d79b4ad8611b5f276c221f599d92c44fabb9a27 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceUnitTest.java @@ -148,6 +148,10 @@ public class UserServiceUnitTest extends BaseUnitTest { doNothing() .when(keycloakGateway) .updateUserCredentials(USER_1_ID, USER_1_PASSWORD_DTO); + when(userRepository.findById(USER_1_ID)) + .thenReturn(Optional.of(USER_1)); + when(userRepository.save(any(User.class))) + .thenReturn(USER_1); /* test */ userService.updatePassword(USER_1_ID, USER_1_PASSWORD_DTO); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceIntegrationTest.java index d52fe08cead7e79dc30fe3ed7c60bd82ca7a7f46..3ce4672df421ea673deadd3b7a398f62ee04099f 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceIntegrationTest.java @@ -57,6 +57,9 @@ public class ViewServiceIntegrationTest extends BaseUnitTest { @Autowired private ViewRepository viewRepository; + @Autowired + private UserRepository userRepository; + @Autowired private TableRepository tableRepository; @@ -94,6 +97,7 @@ public class ViewServiceIntegrationTest extends BaseUnitTest { public void beforeEach() { /* metadata database */ imageRepository.save(IMAGE_1); + userRepository.saveAll(List.of(USER_1, USER_2)); containerRepository.saveAll(List.of(CONTAINER_1_SIMPLE, CONTAINER_2_SIMPLE)); databaseRepository.saveAll(List.of(DATABASE_1_SIMPLE, DATABASE_2_SIMPLE)); tableRepository.saveAll(List.of(TABLE_1_SIMPLE, TABLE_2_SIMPLE, TABLE_3_SIMPLE, TABLE_4_SIMPLE, TABLE_5_SIMPLE, TABLE_6_SIMPLE, TABLE_7_SIMPLE)); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServicePersistenceIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServicePersistenceIntegrationTest.java index f581f6e98abd03a292de8f9d294620134a61fb26..a1e884e3374496b22aa96dfbbdf8a968037c293d 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServicePersistenceIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServicePersistenceIntegrationTest.java @@ -61,6 +61,9 @@ public class ViewServicePersistenceIntegrationTest extends BaseUnitTest { @Autowired private ViewService viewService; + @Autowired + private UserRepository userRepository; + @Container private static MariaDBContainer<?> mariaDBContainer = MariaDbContainerConfig.getContainer(); @@ -74,6 +77,7 @@ public class ViewServicePersistenceIntegrationTest extends BaseUnitTest { public void beforeEach() { /* metadata database */ imageRepository.save(IMAGE_1); + userRepository.saveAll(List.of(USER_1, USER_2)); containerRepository.saveAll(List.of(CONTAINER_1_SIMPLE, CONTAINER_2_SIMPLE)); databaseRepository.saveAll(List.of(DATABASE_1_SIMPLE, DATABASE_2_SIMPLE)); tableRepository.saveAll(List.of(TABLE_1_SIMPLE, TABLE_2_SIMPLE, TABLE_3_SIMPLE, TABLE_4_SIMPLE, TABLE_5_SIMPLE, TABLE_6_SIMPLE, TABLE_7_SIMPLE)); diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AccessService.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AccessService.java index d3f4619ea0e9697706cca5f531583bcf7d9f26eb..26b8246e27d6e68e559cda8f5d7916c24d46b6b4 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AccessService.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AccessService.java @@ -44,8 +44,7 @@ public interface AccessService { * @throws DatabaseMalformedException The database has an invalid state. */ void create(Long databaseId, DatabaseGiveAccessDto accessDto) throws DatabaseNotFoundException, - UserNotFoundException, NotAllowedException, QueryMalformedException, DatabaseMalformedException, - KeycloakRemoteException, AccessDeniedException; + UserNotFoundException, NotAllowedException, QueryMalformedException, DatabaseMalformedException; /** * Update access to a database. @@ -61,7 +60,7 @@ public interface AccessService { */ void update(Long databaseId, UUID userId, DatabaseModifyAccessDto accessDto) throws DatabaseNotFoundException, UserNotFoundException, QueryMalformedException, DatabaseMalformedException, - NotAllowedException, KeycloakRemoteException, AccessDeniedException; + NotAllowedException; /** * Revokes access to a database of container. @@ -75,6 +74,5 @@ public interface AccessService { * @throws DatabaseMalformedException The database has an invalid state. */ void delete(Long databaseId, UUID userId) throws DatabaseNotFoundException, UserNotFoundException, - NotAllowedException, QueryMalformedException, DatabaseMalformedException, KeycloakRemoteException, - AccessDeniedException; + NotAllowedException, QueryMalformedException, DatabaseMalformedException; } diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/MessageQueueService.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/MessageQueueService.java index 00f989a5bf14712e2c4c9b3f6ab69f25223db112..bfd0d4a1d32f1c2817f67ec57a977fe94b6016af 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/MessageQueueService.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/MessageQueueService.java @@ -9,7 +9,9 @@ import at.tuwien.exception.BrokerVirtualHostCreationException; import at.tuwien.exception.BrokerVirtualHostGrantException; import jakarta.annotation.PostConstruct; +import java.io.IOException; import java.security.Principal; +import java.util.concurrent.TimeoutException; public interface MessageQueueService { @@ -19,7 +21,7 @@ public interface MessageQueueService { * @throws AmqpException The exchange could not be created. */ @PostConstruct - void init() throws AmqpException; + void init() throws AmqpException, IOException, TimeoutException; /** * Creates an exchange for a database. diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AccessServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AccessServiceImpl.java index ca0ee9a3b74dac206d9609036c2da6b1dd0f13d4..7e954a56c39679eb1252dbf259b1176c927f1308 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AccessServiceImpl.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AccessServiceImpl.java @@ -74,8 +74,7 @@ public class AccessServiceImpl extends HibernateConnector implements AccessServi @Override @Transactional public void create(Long databaseId, DatabaseGiveAccessDto accessDto) throws DatabaseNotFoundException, - UserNotFoundException, NotAllowedException, QueryMalformedException, DatabaseMalformedException, - KeycloakRemoteException, AccessDeniedException { + UserNotFoundException, NotAllowedException, QueryMalformedException, DatabaseMalformedException { /* check */ final Database database = databaseService.findById(databaseId); final Container container = database.getContainer(); @@ -113,7 +112,7 @@ public class AccessServiceImpl extends HibernateConnector implements AccessServi @Transactional public void update(Long databaseId, UUID userId, DatabaseModifyAccessDto accessDto) throws DatabaseNotFoundException, UserNotFoundException, QueryMalformedException, - DatabaseMalformedException, NotAllowedException, KeycloakRemoteException, AccessDeniedException { + DatabaseMalformedException, NotAllowedException { /* check */ final Database database = databaseService.findById(databaseId); final Container container = database.getContainer(); @@ -150,7 +149,7 @@ public class AccessServiceImpl extends HibernateConnector implements AccessServi @Transactional public void delete(Long databaseId, UUID userId) throws DatabaseNotFoundException, UserNotFoundException, NotAllowedException, QueryMalformedException, - DatabaseMalformedException, KeycloakRemoteException, AccessDeniedException { + DatabaseMalformedException { /* check */ final Database database = databaseService.findById(databaseId); final Container container = database.getContainer(); diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/MariaDbServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/MariaDbServiceImpl.java index 88f490be5dd9ba43cc4729655aaa8ac71aa9d559..7ed5ae79a533a725498f118884215bd8794e5fb7 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/MariaDbServiceImpl.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/MariaDbServiceImpl.java @@ -183,7 +183,7 @@ public class MariaDbServiceImpl extends HibernateConnector implements DatabaseSe .stream() .distinct() .toList(); - log.trace("found {} distinct databases", databases.size()); + log.debug("found {} distinct databases where access for user with id {} is present", databases.size(), user.getId()); for (Database database : databases) { final ComboPooledDataSource dataSource = getPrivilegedDataSource(database.getContainer().getImage(), database.getContainer()); try { diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/RabbitMqServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/RabbitMqServiceImpl.java index db43f317d598bc03cd5f0581dcd67ef4a8d9adc6..40272285475a690f8904c7583f5c8a8f6b88d4e2 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/RabbitMqServiceImpl.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/RabbitMqServiceImpl.java @@ -21,6 +21,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.rabbitmq.client.BuiltinExchangeType; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; +import com.rabbitmq.client.ConnectionFactory; import lombok.extern.log4j.Log4j2; import org.apache.http.auth.BasicUserPrincipal; import org.springframework.boot.context.event.ApplicationReadyEvent; @@ -31,30 +32,33 @@ import org.springframework.transaction.annotation.Transactional; import java.io.IOException; import java.security.Principal; import java.util.List; +import java.util.concurrent.TimeoutException; @Log4j2 @Service public class RabbitMqServiceImpl implements MessageQueueService { - private Channel channel; private final AmqpConfig amqpConfig; private final AmqpMapper amqpMapper; private final ObjectMapper objectMapper; private final QueryService queryService; private final TableService tableService; private final TableRepository tableRepository; + private final ConnectionFactory connectionFactory; private final DatabaseRepository databaseRepository; private final BrokerServiceGateway brokerServiceGateway; public RabbitMqServiceImpl(AmqpConfig amqpConfig, AmqpMapper amqpMapper, ObjectMapper objectMapper, QueryService queryService, TableService tableService, TableRepository tableRepository, - DatabaseRepository databaseRepository, BrokerServiceGateway brokerServiceGateway) { + ConnectionFactory connectionFactory, DatabaseRepository databaseRepository, + BrokerServiceGateway brokerServiceGateway) { this.amqpConfig = amqpConfig; this.amqpMapper = amqpMapper; this.objectMapper = objectMapper; this.queryService = queryService; this.tableService = tableService; this.tableRepository = tableRepository; + this.connectionFactory = connectionFactory; this.databaseRepository = databaseRepository; this.brokerServiceGateway = brokerServiceGateway; } @@ -77,7 +81,7 @@ public class RabbitMqServiceImpl implements MessageQueueService { @Override public void createExchange(Database database, Principal principal) throws AmqpException { try { - channel.exchangeDeclare(database.getExchangeName(), BuiltinExchangeType.DIRECT, true); + getChannel().exchangeDeclare(database.getExchangeName(), BuiltinExchangeType.DIRECT, true); log.info("Declared exchange {}", database.getExchangeName()); } catch (IOException e) { log.error("Failed to declare exchange {}", database.getExchangeName()); @@ -89,6 +93,7 @@ public class RabbitMqServiceImpl implements MessageQueueService { @Transactional(readOnly = true) public void create(Table table) throws AmqpException { try { + final Channel channel = getChannel(); channel.queueDeclare(table.getQueueName(), true, false, false, null); channel.queueBind(table.getQueueName(), table.getDatabase().getExchangeName(), table.getRoutingKey()); } catch (IOException e) { @@ -117,7 +122,7 @@ public class RabbitMqServiceImpl implements MessageQueueService { @Override public void deleteExchange(Database database) throws AmqpException { try { - channel.exchangeDelete(database.getExchangeName()); + getChannel().exchangeDelete(database.getExchangeName()); log.info("Deleted exchange {}", database.getExchangeName()); } catch (IOException e) { log.error("Failed to delete exchange {}", database.getExchangeName()); @@ -128,13 +133,7 @@ public class RabbitMqServiceImpl implements MessageQueueService { @Override public void createConsumer(String queueName, Long databaseId, Long tableId) throws AmqpException { try { - if (!this.channel.isOpen()) { - log.warn("Channel with id {} is closed", this.channel.getChannelNumber()); - final Connection tmp = this.amqpConfig.connectionFactory().newConnection(); - this.channel = tmp.createChannel(); - log.info("Opened channel with id {}", this.channel.getChannelNumber()); - } - final String consumerTag = this.channel.basicConsume(queueName, true, new RabbitMqConsumer(databaseId, tableId, objectMapper, queryService)); + final String consumerTag = getChannel().basicConsume(queueName, true, new RabbitMqConsumer(databaseId, tableId, objectMapper, queryService)); log.debug("declared consumer for queue name {} with tag {}", queueName, consumerTag); } catch (IOException e) { log.error("Failed to create consumer for table with id {}, reason: {}", tableId, e.getMessage()); @@ -160,4 +159,12 @@ public class RabbitMqServiceImpl implements MessageQueueService { } } + protected Channel getChannel() throws IOException { + try { + return amqpConfig.getChannel(connectionFactory); + } catch (TimeoutException e) { + throw new IOException("Timeout", e); + } + } + } diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/StoreServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/StoreServiceImpl.java index 9c89af11d7623b7f80541891b872855e3906ce76..e7ac6a4cf35bef63bbbc9b5400694647db72d9c8 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/StoreServiceImpl.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/StoreServiceImpl.java @@ -105,7 +105,12 @@ public class StoreServiceImpl extends HibernateConnector implements StoreService log.error("Currently only MariaDB is supported"); throw new ImageNotSupportedException("Currently only MariaDB is supported"); } - final User user = userService.findByUsername(principal.getName()); + final User user; + if (principal == null) { + user = userService.findByUsername("system"); + } else { + user = userService.findByUsername(principal.getName()); + } /* save */ final ComboPooledDataSource dataSource = getPrivilegedDataSource(database.getContainer().getImage(), database.getContainer(), database); diff --git a/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java b/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java index f6001aed8e01a25f4a465ea1517210e2a6feb659..840b7670fbcd2779a11f0e2997c71df65a8fbcd0 100644 --- a/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java +++ b/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java @@ -615,6 +615,17 @@ public abstract class BaseTest { public final static Principal USER_5_PRINCIPAL = new UsernamePasswordAuthenticationToken(USER_5_DETAILS, USER_5_PASSWORD, USER_5_DETAILS.getAuthorities()); + public final static User USER_5 = User.builder() + .id(USER_5_ID) + .username(USER_5_USERNAME) + .email(USER_5_EMAIL) + .firstname(USER_5_FIRSTNAME) + .lastname(USER_5_LASTNAME) + .affiliation(USER_5_AFFILIATION) + .themeDark(USER_5_THEME_DARK) + .mariadbPassword(USER_5_DATABASE_PASSWORD) + .build(); + public final static UUID USER_6_ID = UUID.fromString("28ff851d-d7bc-4422-959c-edd7a5b15630"); public final static String USER_6_USERNAME = "system"; public final static String USER_6_FIRSTNAME = "System"; @@ -1021,8 +1032,11 @@ public abstract class BaseTest { .created(DATABASE_1_CREATED) .lastModified(DATABASE_1_LAST_MODIFIED) .createdBy(DATABASE_1_CREATOR) + .creator(USER_1) .ownedBy(DATABASE_1_OWNER) + .owner(USER_1) .contactPerson(USER_1_ID) + .contact(USER_1) .tables(List.of()) /* TABLE_1, TABLE_2, TABLE_3, TABLE_7 */ .views(List.of()) /* VIEW_2, VIEW_3 */ .build(); @@ -1152,8 +1166,11 @@ public abstract class BaseTest { .created(DATABASE_2_CREATED) .lastModified(DATABASE_2_LAST_MODIFIED) .createdBy(DATABASE_2_CREATOR) - .contactPerson(USER_2_ID) + .creator(USER_2) .ownedBy(DATABASE_2_OWNER) + .owner(USER_2) + .contactPerson(USER_2_ID) + .contact(USER_2) .tables(List.of()) /* TABLE_4, TABLE_5, TABLE_6 */ .views(List.of()) /* VIEW_4 */ .build(); @@ -1266,6 +1283,8 @@ public abstract class BaseTest { public final static String DATABASE_3_EXCHANGE = "dbrepo." + DATABASE_3_INTERNALNAME; public final static Instant DATABASE_3_CREATED = Instant.ofEpochSecond(1677399792) /* 2023-02-26 08:23:12 (UTC) */; public final static Instant DATABASE_3_LAST_MODIFIED = Instant.ofEpochSecond(1677399792) /* 2023-02-26 08:23:12 (UTC) */; + public final static UUID DATABASE_3_OWNER = USER_3_ID; + public final static UUID DATABASE_3_CREATOR = USER_3_ID; public final static Database DATABASE_3 = Database.builder() .id(DATABASE_3_ID) @@ -1280,9 +1299,12 @@ public abstract class BaseTest { .exchangeName(DATABASE_3_EXCHANGE) .created(DATABASE_3_CREATED) .lastModified(DATABASE_3_LAST_MODIFIED) + .createdBy(DATABASE_3_CREATOR) + .creator(USER_3) + .ownedBy(DATABASE_3_OWNER) + .owner(USER_3) .contactPerson(USER_3_ID) - .createdBy(USER_3_ID) - .ownedBy(USER_3_ID) + .contact(USER_3) .tables(List.of()) /* TABLE_8 */ .views(List.of()) /* VIEW_5 */ .build(); @@ -1394,6 +1416,8 @@ public abstract class BaseTest { public final static String DATABASE_4_EXCHANGE = "dbrepo." + DATABASE_4_INTERNALNAME; public final static Instant DATABASE_4_CREATED = Instant.ofEpochSecond(1677399813) /* 2023-02-26 08:23:33 (UTC) */; public final static Instant DATABASE_4_LAST_MODIFIED = Instant.ofEpochSecond(1677399813) /* 2023-02-26 08:23:33 (UTC) */; + public final static UUID DATABASE_4_OWNER = USER_4_ID; + public final static UUID DATABASE_4_CREATOR = USER_4_ID; public final static Database DATABASE_4 = Database.builder() .id(DATABASE_4_ID) @@ -1408,9 +1432,12 @@ public abstract class BaseTest { .exchangeName(DATABASE_4_EXCHANGE) .created(DATABASE_4_CREATED) .lastModified(DATABASE_4_LAST_MODIFIED) + .createdBy(DATABASE_4_CREATOR) + .creator(USER_4) + .ownedBy(DATABASE_4_OWNER) + .owner(USER_4) .contactPerson(USER_4_ID) - .createdBy(USER_4_ID) - .ownedBy(USER_4_ID) + .contact(USER_4) .tables(List.of()) .views(List.of()) .build(); diff --git a/dbrepo-search-sync-agent/rest-service/src/test/java/at/tuwien/app/SearchSyncComponentTest.java b/dbrepo-search-sync-agent/rest-service/src/test/java/at/tuwien/app/SearchSyncComponentTest.java index 0c069f26ab0df4e9f14443feefa1d99b4fee61cc..81e8880fd40382a364cb572c5e3d32b2a4cab8e1 100644 --- a/dbrepo-search-sync-agent/rest-service/src/test/java/at/tuwien/app/SearchSyncComponentTest.java +++ b/dbrepo-search-sync-agent/rest-service/src/test/java/at/tuwien/app/SearchSyncComponentTest.java @@ -45,9 +45,6 @@ public class SearchSyncComponentTest extends BaseUnitTest { @Autowired private IndexConfig indexConfig; - @Autowired - private RealmRepository realmRepository; - @Autowired private UserRepository userRepository; @@ -122,7 +119,6 @@ public class SearchSyncComponentTest extends BaseUnitTest { @BeforeEach public void beforeEach() { - realmRepository.save(REALM_DBREPO); licenseRepository.save(LICENSE_1); userRepository.save(USER_1); imageRepository.save(IMAGE_1);