diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/SubsetEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/SubsetEndpointUnitTest.java index 023ed55471036fe464f8dea0cd300bb48d899f48..195e42026ddbe710855d4b6ceb9248cb8e486c97 100644 --- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/SubsetEndpointUnitTest.java +++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/endpoint/SubsetEndpointUnitTest.java @@ -71,21 +71,25 @@ public class SubsetEndpointUnitTest extends BaseTest { @WithAnonymousUser public void list_publicDataPrivateSchemaAnonymous_succeeds() throws QueryNotFoundException, DatabaseNotFoundException, RemoteUnavailableException, SQLException, MetadataServiceException, - DatabaseUnavailableException, NotAllowedException { + DatabaseUnavailableException, NotAllowedException, UserNotFoundException { /* mock */ when(subsetService.findAll(DATABASE_3_PRIVILEGED_DTO, null)) .thenReturn(List.of(QUERY_3_DTO, QUERY_4_DTO, QUERY_5_DTO)); /* test */ - generic_list(DATABASE_3_ID, DATABASE_3_PRIVILEGED_DTO, null); + final List<QueryDto> response = generic_list(DATABASE_3_ID, DATABASE_3_PRIVILEGED_DTO, null); + assertEquals(3, response.size()); + assertEquals(QUERY_3_DTO, response.get(0)); + assertEquals(QUERY_4_DTO, response.get(1)); + assertEquals(QUERY_5_DTO, response.get(2)); } @Test @WithMockUser(username = USER_3_USERNAME) public void list_publicDataPrivateSchema_succeeds() throws DatabaseUnavailableException, NotAllowedException, QueryNotFoundException, DatabaseNotFoundException, RemoteUnavailableException, SQLException, - MetadataServiceException { + MetadataServiceException, UserNotFoundException { /* mock */ when(cacheService.getAccess(DATABASE_3_ID, USER_3_ID)) @@ -96,6 +100,12 @@ public class SubsetEndpointUnitTest extends BaseTest { /* test */ final List<QueryDto> response = generic_list(DATABASE_3_ID, DATABASE_3_PRIVILEGED_DTO, USER_3_PRINCIPAL); assertEquals(6, response.size()); + assertEquals(QUERY_1_DTO, response.get(0)); + assertEquals(QUERY_2_DTO, response.get(1)); + assertEquals(QUERY_3_DTO, response.get(2)); + assertEquals(QUERY_4_DTO, response.get(3)); + assertEquals(QUERY_5_DTO, response.get(4)); + assertEquals(QUERY_6_DTO, response.get(5)); } @Test @@ -111,7 +121,7 @@ public class SubsetEndpointUnitTest extends BaseTest { @Test @WithMockUser(username = USER_3_USERNAME) public void list_publicDataAndPrivateSchemaUnavailable_fails() throws SQLException, QueryNotFoundException, - DatabaseNotFoundException, RemoteUnavailableException, MetadataServiceException { + DatabaseNotFoundException, RemoteUnavailableException, MetadataServiceException, UserNotFoundException { /* mock */ when(cacheService.getDatabase(DATABASE_3_ID)) diff --git a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/SubsetServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/SubsetServiceIntegrationTest.java index abc992bf4bdb96233004f20e0bab866f5e2776aa..d6f657ed2b937beb1b286895a123663ec1b170c4 100644 --- a/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/SubsetServiceIntegrationTest.java +++ b/dbrepo-data-service/rest-service/src/test/java/at/ac/tuwien/ifs/dbrepo/service/SubsetServiceIntegrationTest.java @@ -66,8 +66,9 @@ public class SubsetServiceIntegrationTest extends BaseTest { } @Test - public void findAll_succeeds() throws SQLException, QueryNotFoundException, RemoteUnavailableException, - MetadataServiceException, DatabaseNotFoundException, InterruptedException { + public void findAll_succeeds() throws SQLException, QueryNotFoundException, + RemoteUnavailableException, MetadataServiceException, DatabaseNotFoundException, InterruptedException, + UserNotFoundException { /* test */ final List<QueryDto> response = findAll_generic(null); @@ -77,8 +78,9 @@ public class SubsetServiceIntegrationTest extends BaseTest { } @Test - public void findAll_onlyPersisted_succeeds() throws SQLException, QueryNotFoundException, - RemoteUnavailableException, MetadataServiceException, DatabaseNotFoundException, InterruptedException { + public void findAll_onlyPersisted_succeeds() throws SQLException, QueryNotFoundException, + RemoteUnavailableException, MetadataServiceException, DatabaseNotFoundException, InterruptedException, + UserNotFoundException { /* test */ final List<QueryDto> response = findAll_generic(true); @@ -88,7 +90,8 @@ public class SubsetServiceIntegrationTest extends BaseTest { @Test public void findAll_onlyNonPersisted_succeeds() throws SQLException, QueryNotFoundException, - RemoteUnavailableException, MetadataServiceException, DatabaseNotFoundException, InterruptedException { + RemoteUnavailableException, MetadataServiceException, DatabaseNotFoundException, InterruptedException, + UserNotFoundException { /* test */ final List<QueryDto> response = findAll_generic(false); @@ -303,7 +306,7 @@ public class SubsetServiceIntegrationTest extends BaseTest { protected List<QueryDto> findAll_generic(Boolean filterPersisted) throws SQLException, QueryNotFoundException, RemoteUnavailableException, MetadataServiceException, DatabaseNotFoundException, - InterruptedException { + InterruptedException, UserNotFoundException { /* pre-condition */ Thread.sleep(1000) /* wait for test container some more */; diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/DataMapper.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/DataMapper.java index ddf7f9a882ab9b460f101b09a4a83b7c3b41e410..065e8f140e76e1f793a831a907a1832be77deb6c 100644 --- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/DataMapper.java +++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/mapper/DataMapper.java @@ -257,6 +257,7 @@ public interface DataMapper { final QueryDto subset = QueryDto.builder() .id(UUID.fromString(data.getString(1))) .query(data.getString(4)) + .queryNormalized(data.getString(4)) .queryHash(data.getString(5)) .resultHash(data.getString(6)) .resultNumber(data.getLong(7)) diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/SubsetService.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/SubsetService.java index eb341c95eb13ddd824f5ec177dd273094e4f47fc..a7ee9b1ca08d2c3389efad0d07f9959bfaa5fb7c 100644 --- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/SubsetService.java +++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/SubsetService.java @@ -63,7 +63,7 @@ public interface SubsetService { * @throws MetadataServiceException The Metadata Service responded unexpected. */ List<QueryDto> findAll(DatabaseDto database, Boolean filterPersisted) throws SQLException, - QueryNotFoundException, RemoteUnavailableException, DatabaseNotFoundException, MetadataServiceException; + QueryNotFoundException, RemoteUnavailableException, DatabaseNotFoundException, MetadataServiceException, UserNotFoundException; /** * Executes a subset query without saving it. diff --git a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/SubsetServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/SubsetServiceMariaDbImpl.java index b8044175dc5abbed006093211e2b89335b90e316..a9e1a07213a728c8338b2f11574da7a257dbcbe7 100644 --- a/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/SubsetServiceMariaDbImpl.java +++ b/dbrepo-data-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/SubsetServiceMariaDbImpl.java @@ -2,6 +2,7 @@ package at.ac.tuwien.ifs.dbrepo.service.impl; import at.ac.tuwien.ifs.dbrepo.core.api.database.DatabaseDto; import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryDto; +import at.ac.tuwien.ifs.dbrepo.core.api.database.query.QueryTypeDto; import at.ac.tuwien.ifs.dbrepo.core.api.database.query.SubsetDto; import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierBriefDto; import at.ac.tuwien.ifs.dbrepo.core.api.identifier.IdentifierTypeDto; @@ -82,7 +83,7 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer @Override public List<QueryDto> findAll(DatabaseDto database, Boolean filterPersisted) throws SQLException, - QueryNotFoundException, RemoteUnavailableException, DatabaseNotFoundException, MetadataServiceException { + QueryNotFoundException, RemoteUnavailableException, DatabaseNotFoundException, MetadataServiceException, UserNotFoundException { final List<IdentifierBriefDto> identifiers = metadataServiceGateway.getIdentifiers(database.getId(), null); final ComboPooledDataSource dataSource = getDataSource(database); final Connection connection = dataSource.getConnection(); @@ -102,6 +103,11 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer .filter(i -> i.getType().equals(IdentifierTypeDto.SUBSET)) .filter(i -> i.getQueryId().equals(query.getId())) .toList()); + query.setOwner(dataMapper.userDtoToUserBriefDto(metadataServiceGateway.getUserById(query.getOwner() + .getId()))); + query.setType(QueryTypeDto.QUERY); + query.setDatabaseId(database.getId()); + queries.add(query); } log.info("Find {} queries", queries.size()); @@ -150,6 +156,7 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer final QueryDto query = dataMapper.resultSetToQueryDto(resultSet); query.setOwner(dataMapper.userDtoToUserBriefDto(metadataServiceGateway.getUserById(query.getOwner() .getId()))); + query.setType(QueryTypeDto.QUERY); query.setDatabaseId(database.getId()); return query; } catch (SQLException e) {