Mongo testing

This commit is contained in:
Fabio Sinibaldi 2022-05-24 14:26:47 +02:00
parent 1d12a8f025
commit 4e19170a9f
6 changed files with 108 additions and 16 deletions

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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);
}
});
}
}

View File

@ -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<Concessione> 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());

View File

@ -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";

View File

@ -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();