Skip to content
Snippets Groups Projects
Verified Commit 6d7b04a1 authored by Martin Weise's avatar Martin Weise
Browse files
parent e76bfd5a
No related branches found
No related tags found
4 merge requests!422Fixed a library issue where the value could not be empty,!421Fixed a library issue where the value could not be empty,!419Fixed a library issue where the value could not be empty,!412Fixed a library issue where the value could not be empty
......@@ -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))
......
......@@ -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 */;
......
......@@ -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))
......
......@@ -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.
......
......@@ -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) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment