From 06930ba4e1a9849dd4f11b557532bc51ad16375a Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Mon, 22 Jun 2020 19:53:51 +0200 Subject: [PATCH] Improved test to check the organization filter --- .../persistence/ckan/CKANPackageTest.java | 84 ++++++++++--------- 1 file changed, 46 insertions(+), 38 deletions(-) diff --git a/src/test/java/org/gcube/gcat/persistence/ckan/CKANPackageTest.java b/src/test/java/org/gcube/gcat/persistence/ckan/CKANPackageTest.java index 520a5ab..e16c0d0 100644 --- a/src/test/java/org/gcube/gcat/persistence/ckan/CKANPackageTest.java +++ b/src/test/java/org/gcube/gcat/persistence/ckan/CKANPackageTest.java @@ -69,48 +69,56 @@ public class CKANPackageTest extends ContextTest { parameters.put(CKANPackage.START_KEY, String.valueOf(0)); boolean[] values = new boolean[]{true, false}; - - for(boolean includeFakeOrganization : values) { - - MultivaluedMap queryParameters = new MultivaluedHashMap<>(); - if(includeFakeOrganization) { - queryParameters.add(GCatConstants.Q_KEY, "organization:ckand4scienceharvest OR organization:"+ckanOrganizationName); - }else { - queryParameters.add(GCatConstants.Q_KEY, "organization:"+ckanOrganizationName); - } - // parameters.put(GCatConstants.Q_KEY, "organization:ckand4scienceharvest"); - // parameters.put(GCatConstants.Q_KEY, "organization:dorne"); - - /* - queryParameters.add(CKANPackage.ROWS_KEY, String.valueOf(10)); - queryParameters.add(CKANPackage.START_KEY, String.valueOf(0)); - */ + for(boolean includeValidOrganization : values) { + for(boolean includeFakeOrganization : values) { - /* - parameters.put("fl","[\"name\"]"); - */ - - /* - parameters.put("facet.field","[\"name\"]"); - parameters.put("sort","name asc"); - */ - - try { - parameters = ckanPackage.checkListParameters(queryParameters, parameters); - }catch (ForbiddenException e) { + MultivaluedMap queryParameters = new MultivaluedHashMap<>(); + StringWriter stringWriter = new StringWriter(); + + boolean addOr = false; if(includeFakeOrganization) { - // This is the expected behaviour - continue; - }else { - throw e; + stringWriter.append("organization:fakeorganization"); + addOr = true; } + + if(includeValidOrganization) { + if(addOr) { + stringWriter.append(" OR "); + } + stringWriter.append("organization:"); + stringWriter.append(ckanOrganizationName); + } + + String filter = stringWriter.toString(); + if(filter.length()>0) { + queryParameters.add(GCatConstants.Q_KEY, filter); + } + + /* + parameters.put("fl","[\"name\"]"); + */ + /* + parameters.put("facet.field","[\"name\"]"); + parameters.put("sort","name asc"); + */ + + try { + parameters = ckanPackage.checkListParameters(queryParameters, parameters); + }catch (ForbiddenException e) { + if(includeFakeOrganization) { + // This is the expected behaviour + continue; + }else { + throw e; + } + } + + String ret = ckanPackage.list(parameters); + JsonNode gotList = mapper.readTree(ret); + Assert.assertTrue(gotList instanceof ArrayNode); + + logger.debug("List :\n{}", mapper.writeValueAsString(gotList)); } - - String ret = ckanPackage.list(parameters); - JsonNode gotList = mapper.readTree(ret); - Assert.assertTrue(gotList instanceof ArrayNode); - - logger.debug("List :\n{}", mapper.writeValueAsString(gotList)); } }