From 4e19170a9f0bd5b605533023cc147dfe3623c303 Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Tue, 24 May 2022 14:26:47 +0200 Subject: [PATCH] Mongo testing --- .../application/cms/tests/TokenSetter.java | 12 ++++ .../service/engine/mongo/MongoTests.java | 2 +- .../engine/providers/MongoProviderTest.java | 72 +++++++++++++++++++ .../usecases/ExportConcessioniAsProjects.java | 27 ++++--- .../cms/usecases/ExportMongoConcessioni.java | 4 +- .../cms/usecases/RepublishSingle.java | 7 +- 6 files changed, 108 insertions(+), 16 deletions(-) create mode 100644 geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/providers/MongoProviderTest.java diff --git a/cms-test-commons/src/main/java/org/gcube/application/cms/tests/TokenSetter.java b/cms-test-commons/src/main/java/org/gcube/application/cms/tests/TokenSetter.java index cffd248..6dd0189 100644 --- a/cms-test-commons/src/main/java/org/gcube/application/cms/tests/TokenSetter.java +++ b/cms-test-commons/src/main/java/org/gcube/application/cms/tests/TokenSetter.java @@ -1,9 +1,14 @@ package org.gcube.application.cms.tests; import lombok.extern.slf4j.Slf4j; +import org.gcube.application.geoportal.common.utils.Files; +import org.gcube.common.authorization.library.provider.AccessTokenProvider; import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.scope.api.ScopeProvider; +import java.io.File; +import java.io.IOException; +import java.nio.charset.Charset; import java.util.Properties; @Slf4j @@ -30,4 +35,11 @@ public class TokenSetter { } ScopeProvider.instance.set(scope); } + + public static void setUma() throws IOException { + File umaFile = new File("uma.json"); + String uma= Files.readFileAsString(umaFile.getAbsolutePath(), Charset.defaultCharset()); + AccessTokenProvider.instance.set(uma); + + } } diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/mongo/MongoTests.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/mongo/MongoTests.java index ac48c53..77a14c9 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/mongo/MongoTests.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/mongo/MongoTests.java @@ -42,7 +42,7 @@ public class MongoTests { ImplementationProvider.get().setEngine(new MongoClientProvider() { @Override public Mongo getObject() throws ConfigurationException { - TokenSetter.set("/gcube/devsec/devVRE"); + TokenSetter.set(GCubeTest.getContext()); return super.getObject(); } },Mongo.class); diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/providers/MongoProviderTest.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/providers/MongoProviderTest.java new file mode 100644 index 0000000..d69b60b --- /dev/null +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/providers/MongoProviderTest.java @@ -0,0 +1,72 @@ +package org.gcube.application.geoportal.service.engine.providers; + +import com.mongodb.client.MongoCollection; +import com.mongodb.client.model.FindOneAndReplaceOptions; +import com.mongodb.client.model.ReturnDocument; +import org.bson.Document; +import org.bson.types.ObjectId; +import org.gcube.application.cms.serialization.Serialization; +import org.gcube.application.cms.tests.TokenSetter; +import org.gcube.application.cms.tests.model.BasicTests; +import org.gcube.application.geoportal.common.model.JSONPathWrapper; +import org.gcube.application.geoportal.common.model.legacy.Concessione; +import org.gcube.application.geoportal.common.model.legacy.report.ValidationReport; +import org.gcube.application.geoportal.common.model.rest.ConfigurationException; +import org.gcube.application.geoportal.common.utils.tests.GCubeTest; +import org.gcube.application.geoportal.service.engine.mongo.MongoManager; +import org.gcube.application.geoportal.service.engine.postgis.PostgisIndex; +import org.gcube.application.geoportal.service.model.internal.db.Mongo; +import org.junit.Test; + + +import java.util.function.Consumer; + +import static com.mongodb.client.model.Filters.eq; +import static com.mongodb.client.model.Updates.combine; +import static com.mongodb.client.model.Updates.set; +import static junit.framework.TestCase.assertNotNull; +import static org.junit.Assume.assumeTrue; + +public class MongoProviderTest extends BasicTests { + + @Test + public void getConfiguration() throws ConfigurationException { + assumeTrue(GCubeTest.isTestInfrastructureEnabled()); + TokenSetter.set(GCubeTest.getContext()); + MongoClientProvider provider = new MongoClientProvider(); + Mongo m = provider.getObject(); + System.out.println(m); + assertNotNull(m); + } + + public void performManualUpdate() throws ConfigurationException { + assumeTrue(GCubeTest.isTestInfrastructureEnabled()); + TokenSetter.set(GCubeTest.getContext()); + MongoClientProvider provider = new MongoClientProvider(); + Mongo m = provider.getObject(); + MongoCollection c = m.getTheClient().getDatabase(m.getConnection().getDatabase()). + getCollection("legacyConcessioni"); + + + c.find(eq("centroidLat",null)) + .forEach((Consumer) doc ->{ + try{ + Concessione record = Serialization.convert(doc, Concessione.class); + record.setCentroidLat((record.getPosizionamentoScavo().getBbox().getMaxLat()+ + record.getPosizionamentoScavo().getBbox().getMinLat())/2); + record.setCentroidLong((record.getPosizionamentoScavo().getBbox().getMaxLong()+ + record.getPosizionamentoScavo().getBbox().getMinLong())/2); + + Document toSet = Document.parse(Serialization.write(record)); + toSet.put("_id",new ObjectId(record.getMongo_id())); + + c.findOneAndUpdate(eq("_id",toSet.get("_id")),toSet); + System.out.println("Updated "+record.getMongo_id()+" : "+record.getNome()); + }catch (Throwable e){ + e.printStackTrace(System.err); + } + }); + + } + +} diff --git a/use-cases/src/test/java/org/gcube/application/cms/usecases/ExportConcessioniAsProjects.java b/use-cases/src/test/java/org/gcube/application/cms/usecases/ExportConcessioniAsProjects.java index 3175139..52a0f50 100644 --- a/use-cases/src/test/java/org/gcube/application/cms/usecases/ExportConcessioniAsProjects.java +++ b/use-cases/src/test/java/org/gcube/application/cms/usecases/ExportConcessioniAsProjects.java @@ -1,5 +1,6 @@ package org.gcube.application.cms.usecases; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.bson.Document; import org.gcube.application.cms.custom.gna.concessioni.model.ProfiledConcessione; @@ -35,12 +36,18 @@ public class ExportConcessioniAsProjects { - + @SneakyThrows + private static final Concessione read(File jsonFile) { + log.info("Reading "+jsonFile.getAbsolutePath()); + String json= Files.readFileAsString(jsonFile.getAbsolutePath(), Charset.defaultCharset()); + return Serialization.read(json,Concessione.class); + } public static void main(String[] args) throws InterruptedException { // read from imported folder - File dir= new File("/Users/fabioisti/git/gcube-cms-suite/import1652276569045"); +// File dir= new File("/Users/fabioisti/git/gcube-cms-suite/import1652276569045"); + File dir = new File("/Users/fabioisti/Documents/Work/GNA DATA/Bug_23378"); String targetContext="/gcube/devsec/devVRE"; @@ -49,15 +56,13 @@ public class ExportConcessioniAsProjects { ArrayList found=new ArrayList<>(); - for(File elementFolder:dir.listFiles()) - for(File jsonFile:elementFolder.listFiles((dir1, name) -> {return name.endsWith(".json");})) - try { - log.info("Reading "+jsonFile.getAbsolutePath()); - String json= Files.readFileAsString(jsonFile.getAbsolutePath(), Charset.defaultCharset()); - found.add(Serialization.read(json,Concessione.class)); - } catch (IOException e) { - e.printStackTrace(); - } + for(File elementFolder:dir.listFiles()){ + if(elementFolder.isFile()&&elementFolder.getName().endsWith(".json")) + found.add(read(elementFolder)); + else + for(File jsonFile:elementFolder.listFiles((dir1, name) -> {return name.endsWith(".json");})) + found.add(read(jsonFile)); + } System.out.println("Loaded "+found.size()+" elements from "+dir.getAbsolutePath()); diff --git a/use-cases/src/test/java/org/gcube/application/cms/usecases/ExportMongoConcessioni.java b/use-cases/src/test/java/org/gcube/application/cms/usecases/ExportMongoConcessioni.java index 341711b..26f8549 100644 --- a/use-cases/src/test/java/org/gcube/application/cms/usecases/ExportMongoConcessioni.java +++ b/use-cases/src/test/java/org/gcube/application/cms/usecases/ExportMongoConcessioni.java @@ -35,8 +35,8 @@ public class ExportMongoConcessioni { public static void main(String[] args) { File dir= new File("/Users/fabioisti/git/gcube-cms-suite/import1632326294149"); - String targetContext="/d4science.research-infrastructures.eu/D4OS/GeoNA-Prototype"; -// String targetContext= "/gcube/devsec/devVRE"; +// String targetContext="/d4science.research-infrastructures.eu/D4OS/GeoNA-Prototype"; + String targetContext= "/gcube/devsec/devVRE"; diff --git a/use-cases/src/test/java/org/gcube/application/cms/usecases/RepublishSingle.java b/use-cases/src/test/java/org/gcube/application/cms/usecases/RepublishSingle.java index 84b8ce6..52ef90f 100644 --- a/use-cases/src/test/java/org/gcube/application/cms/usecases/RepublishSingle.java +++ b/use-cases/src/test/java/org/gcube/application/cms/usecases/RepublishSingle.java @@ -1,8 +1,10 @@ package org.gcube.application.cms.usecases; +import jdk.nashorn.internal.parser.Token; import org.gcube.application.cms.tests.TokenSetter; import org.gcube.application.geoportal.common.model.legacy.Concessione; import org.gcube.application.geoportal.common.rest.MongoConcessioni; +import org.gcube.application.geoportal.common.utils.tests.GCubeTest; import static org.gcube.application.geoportal.client.plugins.GeoportalAbstractPlugin.mongoConcessioni; @@ -10,9 +12,10 @@ import static org.gcube.application.geoportal.client.plugins.GeoportalAbstractPl public class RepublishSingle { public static void main(String[] args) throws Exception { - TokenSetter.set("/gcube/devsec/devVRE"); + TokenSetter.setUma(); - String id="6137497102ad3d1f0cd6586b"; + + String id="6229364595184b06331b860b"; MongoConcessioni manager=mongoConcessioni().build();