gcube-cms-suite/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/providers/MongoProviderTest.java

73 lines
3.2 KiB
Java

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