diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewColumnDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewColumnDto.java index 613f9c5e71e54bdc09a8c78752d7a40f0eb0eb88..3c093d19310e5a9aed257af731c09fd8610737a1 100644 --- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewColumnDto.java +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewColumnDto.java @@ -73,11 +73,6 @@ public class ViewColumnDto { @Schema(example = "Column comment") private String description; - @NotNull - @JsonProperty("is_public") - @Schema(example = "true") - private Boolean isPublic; - @NotNull @JsonProperty("is_null_allowed") @Schema(example = "false") diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java index 92092fca33d726616ccba63f08a4b4fefbdba1a2..435d26522dc8fe2580f092b2febe3d6cde0e0043 100644 --- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java @@ -122,11 +122,6 @@ public class ColumnDto { @JsonIgnore private transient List<ViewDto> views; - @NotNull - @JsonProperty("is_public") - @Schema(example = "true") - private Boolean isPublic; - @NotNull @JsonProperty("is_null_allowed") @Schema(example = "false") diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java index 71f52235cdcf5231b021095d926436548cd893b1..c2de8a0f52b2bc6834862fded7a6f4d739b76138 100644 --- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java +++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java @@ -721,7 +721,6 @@ public interface MetadataMapper { @Mappings({ @Mapping(target = "tableId", source = "table.id"), @Mapping(target = "databaseId", source = "table.database.id"), - @Mapping(target = "isPublic", source = "table.isSchemaPublic"), @Mapping(target = "description", source = "description"), @Mapping(target = "table", ignore = true), @Mapping(target = "views", ignore = true) @@ -833,7 +832,6 @@ public interface MetadataMapper { @Mappings({ @Mapping(target = "databaseId", source = "view.vdbid"), - @Mapping(target = "isPublic", source = "view.isPublic") }) ViewColumnDto viewColumnToViewColumnDto(ViewColumn data); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/DatabaseEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/DatabaseEndpointUnitTest.java index 5f27f99acc636acae92fe384b90e85c976c658d6..556a2a958de4878528f2477c65c9e119c63dbde2 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/DatabaseEndpointUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/DatabaseEndpointUnitTest.java @@ -110,15 +110,12 @@ public class DatabaseEndpointUnitTest extends AbstractUnitTest { /* mock */ when(containerService.find(CONTAINER_1_ID)) .thenReturn(CONTAINER_1); - when(databaseService.create(CONTAINER_1, request, USER_1, List.of(USER_LOCAL))) - .thenReturn(DATABASE_1); - doNothing() - .when(messageQueueService) - .setVirtualHostPermissions(USER_1); - when(keycloakGateway.findByUsername(USER_1_USERNAME)) - .thenReturn(USER_1_KEYCLOAK_DTO); when(userService.findById(USER_1_ID)) .thenReturn(USER_1); + when(userService.findAllInternalUsers()) + .thenReturn(List.of(USER_LOCAL)); + when(databaseService.create(CONTAINER_1, request, USER_1, List.of(USER_LOCAL))) + .thenReturn(DATABASE_1); /* test */ create_generic(request, USER_1_PRINCIPAL, USER_1); @@ -278,11 +275,12 @@ public class DatabaseEndpointUnitTest extends AbstractUnitTest { @WithAnonymousUser public void list_anonymous_succeeds() throws DatabaseNotFoundException, UserNotFoundException { - /* pre-condition */ - assertFalse(DATABASE_1_PUBLIC); + /* mock */ + when(databaseService.findAllPublic()) + .thenReturn(List.of(DATABASE_1)); /* test */ - list_generic(List.of(DATABASE_1), null, null); + list_generic(null, null, 1); } @Test @@ -292,8 +290,12 @@ public class DatabaseEndpointUnitTest extends AbstractUnitTest { /* pre-condition */ assertTrue(DATABASE_3_PUBLIC); + /* mock */ + when(databaseService.findAllPublicOrReadAccess(any(UUID.class))) + .thenReturn(List.of(DATABASE_3)); + /* test */ - list_generic(List.of(DATABASE_3), null, USER_1_PRINCIPAL); + list_generic(null, USER_1_PRINCIPAL, 1); } @Test @@ -303,24 +305,36 @@ public class DatabaseEndpointUnitTest extends AbstractUnitTest { /* pre-condition */ assertTrue(DATABASE_3_PUBLIC); + /* mock */ + when(databaseService.findAllPublicOrReadAccess(USER_1_ID)) + .thenReturn(List.of(DATABASE_3)); + /* test */ - list_generic(List.of(DATABASE_3), null, USER_1_PRINCIPAL); + list_generic(null, USER_1_PRINCIPAL, 1); } @Test @WithMockUser(username = USER_1_USERNAME, authorities = {"list-databases"}) public void list_hasRoleFilter_succeeds() throws DatabaseNotFoundException, UserNotFoundException { + /* mock */ + when(databaseService.findAllPublicOrReadAccessByInternalName(USER_1_ID, DATABASE_3_INTERNALNAME)) + .thenReturn(List.of(DATABASE_3)); + /* test */ - list_generic(List.of(DATABASE_3), DATABASE_3_INTERNALNAME, USER_1_PRINCIPAL); + list_generic(DATABASE_3_INTERNALNAME, USER_1_PRINCIPAL, 1); } @Test @WithMockUser(username = USER_1_USERNAME, authorities = {"list-databases"}) public void list_hasRoleFilterNoResult_succeeds() throws DatabaseNotFoundException, UserNotFoundException { + /* mock */ + when(databaseService.findAllPublicOrReadAccessByInternalName(USER_1_ID, "i_do_not_exist")) + .thenReturn(List.of()); + /* test */ - list_generic(List.of(), "i_do_not_exist", USER_1_PRINCIPAL); + list_generic("i_do_not_exist", USER_1_PRINCIPAL, 0); } @Test @@ -644,46 +658,15 @@ public class DatabaseEndpointUnitTest extends AbstractUnitTest { /* ## GENERIC TEST CASES ## */ /* ################################################################################################### */ - public void list_generic(List<Database> databases, String internalName, Principal principal) + public void list_generic(String internalName, Principal principal, Integer expectedSize) throws DatabaseNotFoundException, UserNotFoundException { - /* mock */ - when(databaseService.findAll()) - .thenReturn(databases); - if (principal != null) { - if (internalName != null) { - if (databases.isEmpty()) { - when(databaseService.findAllPublicOrReadAccessByInternalName(any(UUID.class), eq(internalName))) - .thenReturn(List.of()); - } else { - when(databaseService.findAllPublicOrReadAccessByInternalName(any(UUID.class), eq(internalName))) - .thenReturn(List.of(databases.get(0))); - } - } else { - when(databaseService.findAllPublicOrReadAccess(any(UUID.class))) - .thenReturn(databases); - } - } else { - if (internalName != null) { - if (databases.isEmpty()) { - when(databaseService.findAllPublicByInternalName(eq(internalName))) - .thenReturn(List.of()); - } else { - when(databaseService.findAllPublicByInternalName(eq(internalName))) - .thenReturn(List.of(databases.get(0))); - } - } else { - when(databaseService.findAllPublicOrReadAccess(any(UUID.class))) - .thenReturn(databases); - } - } - /* test */ final ResponseEntity<List<DatabaseBriefDto>> response = databaseEndpoint.list(internalName, principal); assertEquals(HttpStatus.OK, response.getStatusCode()); assertNotNull(response.getBody()); final List<DatabaseBriefDto> body = response.getBody(); - assertEquals(databases.size(), body.size()); + assertEquals(expectedSize, body.size()); } public void create_generic(DatabaseCreateDto data, Principal principal, User user) throws DataServiceException, 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 12dc533cb9b44c726c87e552aa845c21025857b3..39e305923ff6e7fe51b002c2eccc786e09fcd621 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 @@ -192,7 +192,7 @@ public class UserEndpointUnitTest extends AbstractUnitTest { .firstname(USER_1_FIRSTNAME) .lastname(USER_1_LASTNAME) .affiliation(USER_1_AFFILIATION) - .orcid(USER_1_ORCID) + .orcid(USER_1_ORCID_URL) .build(); /* test */ @@ -208,7 +208,7 @@ public class UserEndpointUnitTest extends AbstractUnitTest { .firstname(USER_1_FIRSTNAME) .lastname(USER_1_LASTNAME) .affiliation(USER_1_AFFILIATION) - .orcid(USER_1_ORCID) + .orcid(USER_1_ORCID_URL) .build(); /* test */ @@ -224,7 +224,7 @@ public class UserEndpointUnitTest extends AbstractUnitTest { .firstname(USER_1_FIRSTNAME) .lastname(USER_1_LASTNAME) .affiliation(USER_1_AFFILIATION) - .orcid(USER_1_ORCID) + .orcid(USER_1_ORCID_URL) .build(); /* test */ @@ -240,7 +240,7 @@ public class UserEndpointUnitTest extends AbstractUnitTest { .firstname(USER_1_FIRSTNAME) .lastname(USER_1_LASTNAME) .affiliation(USER_1_AFFILIATION) - .orcid(USER_1_ORCID) + .orcid(USER_1_ORCID_URL) .build(); /* test */ diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java index 5e7e1dbc5b233694ba7afe8eafa312103ae34fb5..2d4fa435062789e6b43e6c0fd28189c76061df25 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java @@ -69,14 +69,6 @@ public class MetadataMapperUnitTest extends AbstractUnitTest { assertEquals(IdentifierType.DATABASE, metadataMapper.identifierTypeDtoToIdentifierType(IdentifierTypeDto.DATABASE)); } - @Test - public void identifierCreateDtoToIdentifier_succeeds() { - - /* test */ - final Identifier response = metadataMapper.identifierCreateDtoToIdentifier(IDENTIFIER_1_CREATE_DTO); - assertEquals(IDENTIFIER_1, response); - } - @Test public void identifierCreateDtoToIdentifier_withDoi_succeeds() { @@ -103,22 +95,6 @@ public class MetadataMapperUnitTest extends AbstractUnitTest { assertEquals(IDENTIFIER_2_TYPE, response.getType()); } - @Test - public void identifierCreateDtoToIdentifier_view_succeeds() { - - /* test */ - final Identifier response = metadataMapper.identifierCreateDtoToIdentifier(IDENTIFIER_3_CREATE_DTO); - assertEquals(IDENTIFIER_3, response); - } - - @Test - public void customDatabaseToDatabaseDto_succeeds() { - - /* test */ - final DatabaseDto response = metadataMapper.customDatabaseToDatabaseDto(DATABASE_1); - assertEquals(DATABASE_1_DTO, response); - } - public static Stream<Arguments> nameToInternalName_parameters() { return Stream.of( Arguments.arguments("dash_minus", "OE/NO-027", "oe_no_027"), diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java index e4cdcdbdd884a3a1f28f0a20a244824f6ac3702c..2594eb70b1240d7ba39c866e2ee8c900cf191ea7 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java @@ -42,7 +42,7 @@ public class IdentifierEndpointMvcTest extends AbstractUnitTest { .thenReturn(ORCID_1_DTO); /* test */ - this.mockMvc.perform(get("/api/identifier/retrieve?url=http://orcid.org/" + USER_1_ORCID_UNCOMPRESSED) + this.mockMvc.perform(get("/api/identifier/retrieve?url=" + USER_1_ORCID_URL) .contentType(MediaType.APPLICATION_JSON) .accept(MediaType.APPLICATION_JSON)) .andExpect(content().string(FileUtils.getContentsAsString(new File("src/test/resources/json/ext_orcid_jdoe.json")))) diff --git a/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/AbstractUnitTest.java b/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/AbstractUnitTest.java index 8a7db23fe064c8d88a656bdc0992250cb5b79522..c37739e7e7dd8097222d22c8a7f172a8bacb4416 100644 --- a/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/AbstractUnitTest.java +++ b/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/AbstractUnitTest.java @@ -42,6 +42,7 @@ public abstract class AbstractUnitTest extends BaseTest { TABLE_1_PRIVILEGED_DTO.setColumns(new LinkedList<>(TABLE_1_COLUMNS_DTO)); TABLE_1_PRIVILEGED_DTO.setDatabase(DATABASE_1_PRIVILEGED_DTO); VIEW_1_DTO.setDatabase(DATABASE_1_DTO); + VIEW_1_DTO.setIdentifiers(VIEW_1_DTO_IDENTIFIERS); DATABASE_1.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_1, IDENTIFIER_2, IDENTIFIER_3, IDENTIFIER_4))); IDENTIFIER_1.setDatabase(DATABASE_1); IDENTIFIER_2.setDatabase(DATABASE_1); 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 13a68c4e3e207603b446219b9859bf0742939529..ccd12292bab2bc4905b1573ab8102dc4f47c6f5d 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 @@ -460,12 +460,10 @@ public abstract class BaseTest { public final static String USER_1_DATABASE_PASSWORD = "*440BA4FD1A87A0999647DB67C0EE258198B247BA" /* junit1 */; public final static String USER_1_FIRSTNAME = "John"; public final static String USER_1_LASTNAME = "Doe"; - public final static String USER_1_QUALIFIED_NAME = "@" + USER_1_USERNAME + " — " + USER_1_FIRSTNAME + " " + USER_1_LASTNAME; + public final static String USER_1_QUALIFIED_NAME = USER_1_FIRSTNAME + " " + USER_1_LASTNAME + " — @" + USER_1_USERNAME; public final static String USER_1_NAME = "John Doe"; public final static String USER_1_AFFILIATION = "TU Graz"; - public final static String USER_1_ORCID = "000000034216302X"; - public final static String USER_1_ORCID_UNCOMPRESSED = "0000-0003-4216-302X"; - public final static String USER_1_ORCID_URL = "https://orcid.org/" + USER_1_ORCID_UNCOMPRESSED; + public final static String USER_1_ORCID_URL = "https://orcid.org/0000-0003-4216-302X"; public final static String USER_1_TITLES_BEFORE = "Dr."; public final static String USER_1_TITLES_AFTER = "MSc BSc"; public final static Boolean USER_1_VERIFIED = false; @@ -486,7 +484,7 @@ public abstract class BaseTest { public final static UserAttributesDto USER_1_ATTRIBUTES_DTO = UserAttributesDto.builder() .theme(USER_1_THEME) - .orcid(USER_1_ORCID_UNCOMPRESSED) + .orcid(USER_1_ORCID_URL) .affiliation(USER_1_AFFILIATION) .mariadbPassword(USER_1_DATABASE_PASSWORD) .language(USER_1_LANGUAGE) @@ -531,7 +529,7 @@ public abstract class BaseTest { .firstname(USER_1_FIRSTNAME) .lastname(USER_1_LASTNAME) .affiliation(USER_1_AFFILIATION) - .orcid(USER_1_ORCID) + .orcid(USER_1_ORCID_URL) .theme(USER_1_THEME) .mariadbPassword(USER_1_DATABASE_PASSWORD) .language(USER_1_LANGUAGE) @@ -552,7 +550,7 @@ public abstract class BaseTest { .firstname(USER_1_FIRSTNAME) .lastname(USER_1_LASTNAME) .affiliation(USER_1_AFFILIATION) - .orcid(USER_1_ORCID) + .orcid(USER_1_ORCID_URL) .theme(USER_1_THEME) .language(USER_1_LANGUAGE) .build(); @@ -581,6 +579,7 @@ public abstract class BaseTest { .lastname(USER_1_LASTNAME) .name(USER_1_NAME) .qualifiedName(USER_1_QUALIFIED_NAME) + .orcid(USER_1_ORCID_URL) .build(); public final static UserDetails USER_1_DETAILS = UserDetailsDto.builder() @@ -4967,6 +4966,7 @@ public abstract class BaseTest { public final static List<ViewColumnDto> VIEW_1_COLUMNS_DTO = List.of( ViewColumnDto.builder() .id(1L) + .ordinalPosition(0) .databaseId(DATABASE_1_ID) .name("location") .internalName("location") @@ -4977,24 +4977,29 @@ public abstract class BaseTest { .build(), ViewColumnDto.builder() .id(2L) + .ordinalPosition(1) .databaseId(DATABASE_1_ID) .name("lat") .internalName("lat") .ordinalPosition(1) - .columnType(ColumnTypeDto.DOUBLE) - .size(22L) + .columnType(ColumnTypeDto.DECIMAL) + .size(10L) + .d(0L) .isNullAllowed(true) .build(), ViewColumnDto.builder() .id(3L) + .ordinalPosition(2) .databaseId(DATABASE_1_ID) .name("lng") .internalName("lng") .ordinalPosition(2) - .columnType(ColumnTypeDto.DOUBLE) - .size(22L) + .columnType(ColumnTypeDto.DECIMAL) + .size(10L) + .d(0L) .isNullAllowed(true) - .build()); + .build() + ); public final static View VIEW_1 = View.builder() .id(VIEW_1_ID) @@ -5076,6 +5081,7 @@ public abstract class BaseTest { .vdbid(VIEW_1_DATABASE_ID) .isPublic(VIEW_1_PUBLIC) .isSchemaPublic(VIEW_1_SCHEMA_PUBLIC) + .identifiers(null /* VIEW_1_DTO_IDENTIFIERS */) .owner(USER_1_BRIEF_DTO) .query(VIEW_1_QUERY) .queryHash(VIEW_1_QUERY_HASH) @@ -7970,6 +7976,8 @@ public abstract class BaseTest { .huserid(USER_3_ID) .build(); + public final static List<IdentifierDto> VIEW_1_DTO_IDENTIFIERS = List.of(IDENTIFIER_3_DTO); + public final static Constraints TABLE_1_CONSTRAINTS = Constraints.builder() .checks(new LinkedHashSet<>()) .foreignKeys(new LinkedList<>())