From db82bc0a53a45e2347d93b2dbc9c4006d4a88764 Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Fri, 11 Mar 2022 16:42:33 +0100 Subject: [PATCH] Refactored abstract mongo manager --- .../engine/mongo/ConcessioniMongoManager.java | 73 +++++++-------- .../service/engine/mongo/MongoManager.java | 91 ++++++++----------- .../engine/mongo/ProfiledMongoManager.java | 40 ++++---- .../service/engine/mongo/UCDMongoManager.java | 40 ++------ .../geoportal/service/UCDTests.java | 3 +- .../{ => engine/mongo}/MongoTests.java | 12 +-- .../AbstractProfiledDocumentsTests.java | 9 +- .../profiledDocuments/DummyProjectTest.java | 7 ++ .../configurations/profiledConcessioni.json | 18 ++++ 9 files changed, 133 insertions(+), 160 deletions(-) rename geoportal-service/src/test/java/org/gcube/application/geoportal/service/{ => engine/mongo}/MongoTests.java (91%) create mode 100644 test-data/profiledDocuments/configurations/profiledConcessioni.json diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ConcessioniMongoManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ConcessioniMongoManager.java index 10fa081..476e5ec 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ConcessioniMongoManager.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ConcessioniMongoManager.java @@ -46,25 +46,27 @@ public class ConcessioniMongoManager extends MongoManager{ public ConcessioniMongoManager() throws ConfigurationException { super(); + init(collectionName); + } private static final String collectionName="legacyConcessioni"; //private static final String DB_NAME="gna_dev"; - - private MongoDatabase db=null; - - @Override - @Synchronized - protected MongoDatabase getDatabase() { - if(db==null) { - String toUseDB=super.client.getConnection().getDatabase(); - log.info("Connecting to DB {} ",toUseDB); - - // TODO MAP OF DATABASES? - db=client.getTheClient().getDatabase(toUseDB); - } - return db; - } +// +// private MongoDatabase db=null; +// +// @Override +// @Synchronized +// protected MongoDatabase getDatabase() { +// if(db==null) { +// String toUseDB=super.client.getConnection().getDatabase(); +// log.info("Connecting to DB {} ",toUseDB); +// +// // TODO MAP OF DATABASES? +// db=client.getTheClient().getDatabase(toUseDB); +// } +// return db; +// } protected static Document asDocument (Concessione c) throws JsonProcessingException { Document toReturn=Document.parse(Serialization.write(c)); @@ -92,14 +94,14 @@ public class ConcessioniMongoManager extends MongoManager{ log.trace("Going to register {} ",toRegister); toRegister=onUpdate(toRegister); log.trace("Concessione with defaults is {}",toRegister); - ObjectId id=insert(asDocument(toRegister), collectionName); + ObjectId id=insertDoc(asDocument(toRegister)); log.trace("Obtained id {}",id); - Concessione toReturn=asConcessione(getById(id,collectionName)); + Concessione toReturn=asConcessione(getDocById(id)); toReturn.setMongo_id(asString(id)); - toReturn = asConcessione(replace(asDocument(toReturn),id,collectionName)); + toReturn = asConcessione(replaceDoc(asDocument(toReturn),id)); log.debug("Registered {} ",toReturn); return toReturn; } @@ -107,22 +109,13 @@ public class ConcessioniMongoManager extends MongoManager{ public Concessione replace(Concessione toRegister) throws IOException { log.trace("Replacing {} ",toRegister); toRegister=onUpdate(toRegister); - return asConcessione(replace(asDocument(toRegister),new ObjectId(toRegister.getMongo_id()),collectionName)); + return asConcessione(replaceDoc(asDocument(toRegister),new ObjectId(toRegister.getMongo_id()))); } -/* public Concessione update(String id,String json) throws IOException { - log.trace("Updating id {} with {} ",id,json); - Concessione toReturn=asConcessione(update(asId(id),asDoc(json),collectionName)); - log.debug("Refreshing defaults.."); - toReturn.setDefaults(); - return asConcessione(replace(asDocument(toReturn),collectionName)); - } -*/ - public Iterable list(){ LinkedBlockingQueue queue=new LinkedBlockingQueue(); - iterate(null,null, collectionName).forEach( + iterateDoc(null,null).forEach( new Consumer() { @Override public void accept(Document d) { @@ -140,7 +133,7 @@ public class ConcessioniMongoManager extends MongoManager{ public Iterable search(Document filter){ log.info("Searching concessione for filter {} ",filter); LinkedBlockingQueue queue=new LinkedBlockingQueue(); - iterate(filter,null,collectionName).forEach( + iterateDoc(filter,null).forEach( (Consumer) (Document d)->{try{ queue.put(asConcessione(d)); }catch(Throwable t){log.warn("Unable to translate "+d);}}); @@ -151,7 +144,7 @@ public class ConcessioniMongoManager extends MongoManager{ public Iterable query(QueryRequest queryRequest){ log.info("Searching concessione for filter {} ",queryRequest); LinkedBlockingQueue queue=new LinkedBlockingQueue(); - query(queryRequest,collectionName).forEach( + queryDoc(queryRequest).forEach( (Consumer) (Document d)->{try{ queue.put(d); }catch(Throwable t){log.warn("Unable to translate "+d);}}); @@ -161,7 +154,7 @@ public class ConcessioniMongoManager extends MongoManager{ public Concessione getById(String id)throws IOException { log.debug("Loading by ID "+id); - return asConcessione(getById(asId(id),collectionName)); + return asConcessione(getDocById(asId(id))); } public void deleteById(String id,boolean force) throws DeletionException { @@ -180,12 +173,12 @@ public class ConcessioniMongoManager extends MongoManager{ if (!concessione.getReport().getStatus().equals(ValidationStatus.PASSED)&&!force) throw new DeletionException("Unable to clean "+concessione.getMongo_id()); - delete(asId(id), collectionName); + deleteDoc(asId(id)); }catch(DeletionException e) { //storing updated - partially deleted log.error("Error while trying to delete",e); concessione=onUpdate(concessione); - replace(asDocument(concessione),new ObjectId(concessione.getMongo_id()), collectionName); + replaceDoc(asDocument(concessione),new ObjectId(concessione.getMongo_id())); throw e; } }catch(Throwable t){ @@ -198,21 +191,21 @@ public class ConcessioniMongoManager extends MongoManager{ public Concessione unpublish(String id) throws DeletionException { try{ - Concessione toReturn=asConcessione(getById(asId(id),collectionName)); + Concessione toReturn=asConcessione(getDocById(asId(id))); removeFromIndex(toReturn); log.debug("Removed from centroids "+toReturn.getMongo_id()); toReturn = unpublish(toReturn); log.debug("Concessione after unpublishing is "+toReturn); toReturn = onUpdate(toReturn); - return asConcessione(replace(asDocument(toReturn),new ObjectId(toReturn.getMongo_id()),collectionName)); + return asConcessione(replaceDoc(asDocument(toReturn),new ObjectId(toReturn.getMongo_id()))); }catch(Throwable t){ throw new DeletionException("Unable to unpublish "+id,t); } } public Concessione publish(String id) throws IOException{ - Concessione toReturn=asConcessione(getById(asId(id),collectionName)); + Concessione toReturn=asConcessione(getDocById(asId(id))); toReturn=onUpdate(toReturn); toReturn.validate(); @@ -224,7 +217,7 @@ public class ConcessioniMongoManager extends MongoManager{ toReturn=index(toReturn); // replace(asDocument(toReturn),collectionName); - return asConcessione(replace(asDocument(toReturn),new ObjectId(toReturn.getMongo_id()),collectionName)); + return asConcessione(replaceDoc(asDocument(toReturn),new ObjectId(toReturn.getMongo_id()))); } @@ -247,7 +240,7 @@ public class ConcessioniMongoManager extends MongoManager{ toClearContent.getActualContent().clear(); c=onUpdate(c); - return asConcessione(replace(asDocument(c),new ObjectId(c.getMongo_id()),collectionName)); + return asConcessione(replaceDoc(asDocument(c),new ObjectId(c.getMongo_id()))); }catch(Exception e) { throw new Exception("Unable to unregister files.",e); @@ -277,7 +270,7 @@ public class ConcessioniMongoManager extends MongoManager{ store(section,files,ws,storage,baseFolder); c=onUpdate(c); - return asConcessione(replace(asDocument(c),new ObjectId(c.getMongo_id()),collectionName)); + return asConcessione(replaceDoc(asDocument(c),new ObjectId(c.getMongo_id()))); }catch(Exception e) { throw new Exception("Unable to save file.",e); } diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/MongoManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/MongoManager.java index 0550a8b..5e3c013 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/MongoManager.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/MongoManager.java @@ -15,6 +15,8 @@ import org.gcube.application.cms.implementations.ImplementationProvider; import org.gcube.application.geoportal.service.model.internal.db.Mongo; import org.gcube.application.geoportal.common.model.rest.ConfigurationException; +import javax.print.Doc; + import static com.mongodb.client.model.Filters.eq; import static com.mongodb.client.model.Sorts.ascending; import static com.mongodb.client.model.Sorts.descending; @@ -24,7 +26,9 @@ public abstract class MongoManager { protected Mongo client=null; - + + protected MongoCollection collection=null; + protected static final String ID="_id"; protected static final ObjectId asId(String id) {return new ObjectId(id);} @@ -35,72 +39,62 @@ public abstract class MongoManager { public MongoManager() throws ConfigurationException { client=ImplementationProvider.get().getEngineByManagedClass(Mongo.class); - - log.info("Got Mongo Client at "+client.getConnection()); - log.debug("Mongo client is "+client); + log.debug("Cached client is {} ",client); } + protected void init(String collectionName){ + String toUseDB=client.getConnection().getDatabase(); + log.info("Opening collection {} : {} ",toUseDB); + collection=client.getTheClient().getDatabase(toUseDB).getCollection(collectionName); + } - // TODO check if existing DB - protected abstract MongoDatabase getDatabase(); + + MongoCollection getCollection(){ + return collection; + } protected abstract String mongoIDFieldName(); //*********** PROJECTS // NB BsonId - protected ObjectId insert(Document proj, String collectionName) { - MongoDatabase database=getDatabase(); - MongoCollection collection = database.getCollection(collectionName); - + protected ObjectId insertDoc(Document proj) { + MongoCollection collection = getCollection(); // Check if _id is present ObjectId id=proj.getObjectId(mongoIDFieldName()); if(id==null) { proj.append(mongoIDFieldName(), new ObjectId()); id=proj.getObjectId(mongoIDFieldName()); } - - - collection.insertOne(Document.parse(proj.toJson())); + collection.insertOne(Document.parse(proj.toJson())); return id; } - public void delete(ObjectId id, String collectionName) { - MongoDatabase database=getDatabase(); - MongoCollection collection = database.getCollection(collectionName); + public void deleteDoc(ObjectId id) { + MongoCollection collection = getCollection(); collection.deleteOne(eq(mongoIDFieldName(),id)); } - public Document getById(ObjectId id,String collectionName) { - MongoDatabase database=getDatabase(); - MongoCollection coll=database.getCollection(collectionName); + public Document getDocById(ObjectId id) { + MongoCollection coll=getCollection(); return coll.find(new Document(mongoIDFieldName(),id)).first(); } - public FindIterable iterate(Document filter, Document projection, String collectionName) { - log.debug("Iterate over {} ",collectionName); - MongoDatabase database=getDatabase(); - MongoCollection coll=database.getCollection(collectionName); - + public FindIterable iterateDoc(Document filter, Document projection) { + MongoCollection coll=getCollection(); if(filter == null) filter=new Document(); - log.debug("Applying Filter "+filter.toJson()); - - if(projection != null ) { log.debug("Applying projection "+projection.toJson()); return coll.find(filter).projection(projection); }else return coll.find(filter); - } - public FindIterable query(QueryRequest request, String collectionName){ - - FindIterable toReturn=iterate(request.getFilter(), request.getProjection(),collectionName); - + public FindIterable queryDoc(QueryRequest request){ + FindIterable toReturn=iterateDoc(request.getFilter(), request.getProjection()); if(request.getOrdering()!=null){ if(request.getOrdering().getDirection().equals(QueryRequest.OrderedRequest.Direction.ASCENDING)) @@ -117,34 +111,29 @@ public abstract class MongoManager { return toReturn; } - - public FindIterable iterateForClass(Document filter,String collectionName,Class clazz) { - MongoDatabase database=getDatabase(); - MongoCollection coll=database.getCollection(collectionName); - if(filter==null) - return coll.find(clazz); - else - return coll.find(filter,clazz); - } - - public Document replace(Document toUpdate,ObjectId id, String collectionName) { - MongoDatabase database=getDatabase(); - MongoCollection coll=database.getCollection(collectionName); +// +// public FindIterable iterateForClass(Document filter,Class clazz) { +// MongoCollection coll=getCollection(); +// if(filter==null) +// return coll.find(clazz); +// else +// return coll.find(filter,clazz); +// } +// + public Document replaceDoc(Document toUpdate,ObjectId id) { + MongoCollection coll=getCollection(); return coll.findOneAndReplace( eq(mongoIDFieldName(),id), toUpdate,new FindOneAndReplaceOptions().returnDocument(ReturnDocument.AFTER)); } - public Document update(ObjectId id, Document updateSet, String collectionName) { - MongoDatabase database=getDatabase(); - MongoCollection coll=database.getCollection(collectionName); + public Document updateDoc(ObjectId id, Document updateSet) { + MongoCollection coll=getCollection(); return coll.findOneAndUpdate( eq(mongoIDFieldName(),id), updateSet, new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)); } - //********** PROFILES - - + } diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java index 8bb2d2e..6cfeea2 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java @@ -67,7 +67,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< @Getter UseCaseDescriptor useCaseDescriptor; - MongoDatabase db=null; + @Override protected String mongoIDFieldName() { @@ -85,11 +85,13 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< // Connect to DB - String toUseDB=super.client.getConnection().getDatabase(); - log.info("Connecting to DB {} ",toUseDB); + init(getToUseCollectionName()); + } - db=client.getTheClient().getDatabase(toUseDB); + private String getToUseCollectionName(){ + //TODO collection name in UCD + return useCaseDescriptor.getId(); } @Getter(lazy = true) @@ -118,16 +120,6 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< } } - private String getCollectionName(){ - // TODO UseCaseDescriptor can directly specify, use ID only as default - - return useCaseDescriptor.getId(); - } - - @Override - public MongoDatabase getDatabase(){ - return db; - } @Override public Project registerNew(Document toRegisterDoc) throws IOException, StepException, EventException { @@ -165,7 +157,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< log.debug("Going to register {} ",toRegister); // Insert object - ObjectId id =insert(asDocumentWithId(toRegister),getCollectionName()); + ObjectId id =insertDoc(asDocumentWithId(toRegister)); log.info("Obtained id {} ",id); return getByID(id.toHexString()); @@ -179,7 +171,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< toUpdate.getLifecycleInformation().cleanState(); toUpdate=onUpdate(toUpdate); - Project toReturn =convert(replace(asDocumentWithId(toUpdate),new ObjectId(id),getCollectionName()), Project.class); + Project toReturn =convert(replaceDoc(asDocumentWithId(toUpdate),new ObjectId(id)), Project.class); log.debug("Updated Project is {}",toReturn); return toReturn; } @@ -224,7 +216,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< @Override public Project getByID(String id) throws WebApplicationException{ - Document doc=super.getById(asId(id),getCollectionName()); + Document doc=getDocById(asId(id)); if(doc==null) throw new WebApplicationException("No document with ID "+id); return convert(doc, Project.class); } @@ -233,7 +225,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< public Iterable query(QueryRequest queryRequest) { log.info("Querying {} ",queryRequest); LinkedBlockingQueue queue=new LinkedBlockingQueue(); - query(queryRequest,getCollectionName()).forEach( + queryDoc(queryRequest).forEach( (Consumer) (Document d)->{try{ queue.put(d); }catch(Throwable t){log.warn("Unable to translate "+d);}}); @@ -245,7 +237,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< public Iterable filter(QueryRequest queryRequest) { log.info("Searching concessione for filter {} ",queryRequest); LinkedBlockingQueue queue=new LinkedBlockingQueue(); - query(queryRequest,getCollectionName()).forEach( + queryDoc(queryRequest).forEach( (Consumer) (Document d)->{try{ queue.put(d); }catch(Throwable t){log.warn("Unable to translate "+d);}}); @@ -273,7 +265,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< step,document.getLifecycleInformation().getLastOperationStatus()); log.debug("LifecycleInformation is {} ",document.getLifecycleInformation()); if(log.isTraceEnabled())log.trace("Document is {} ",Serialization.write(document)); - return convert(replace(asDocumentWithId(document),new ObjectId(id),getCollectionName()), Project.class); + return convert(replaceDoc(asDocumentWithId(document),new ObjectId(id)), Project.class); } } @@ -366,7 +358,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< doc=onUpdate(doc); - return convert(replace(asDocumentWithId(doc),new ObjectId(id),getCollectionName()), Project.class); + return convert(replaceDoc(asDocumentWithId(doc),new ObjectId(id)), Project.class); } @Override @@ -388,7 +380,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< log.debug("Removing FS from document [ID : ] by path {}",id,path); wrapper.setElement(path,null); doc=onUpdate(doc); - return convert(replace(asDocumentWithId(doc),new ObjectId(id),getCollectionName()), Project.class); + return convert(replaceDoc(asDocumentWithId(doc),new ObjectId(id)), Project.class); } @Override @@ -405,9 +397,9 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< // Add Mongo Info Archive mongoArchive = new Archive("DOCUMENT-STORE-COLLECTION"); - MongoCollection coll=getDatabase().getCollection(getCollectionName()); + MongoCollection coll=getCollection(); mongoArchive.put("count",coll.count()); - mongoArchive.put("collection_name",getCollectionName()); + mongoArchive.put("collection_name",getToUseCollectionName()); archives.add(mongoArchive); // Set WS Info diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/UCDMongoManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/UCDMongoManager.java index b6ce99f..e5c5966 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/UCDMongoManager.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/UCDMongoManager.java @@ -2,6 +2,7 @@ package org.gcube.application.geoportal.service.engine.mongo; import com.fasterxml.jackson.core.JsonProcessingException; import com.mongodb.client.FindIterable; +import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.FindOneAndReplaceOptions; import com.mongodb.client.model.ReturnDocument; @@ -30,19 +31,8 @@ import java.util.function.Consumer; public class UCDMongoManager extends MongoManager implements UCDManagerI{ - MongoDatabase db=null; - public UCDMongoManager() throws ConfigurationException { - String toUseDB=super.client.getConnection().getDatabase(); - log.info("Connecting to DB {} ",toUseDB); - - - db=client.getTheClient().getDatabase(toUseDB); - } - - @Override - public MongoDatabase getDatabase(){ - return db; + init("UCD_"+ContextUtils.getCurrentScope().replaceAll("/","_")); } @Override @@ -50,11 +40,6 @@ public class UCDMongoManager extends MongoManager implements UCDManagerI{ return UseCaseDescriptor.MONGO_ID; } - private String getCollectionName(){ - return "profiles_"+ContextUtils.getCurrentScope(); - } - - public UseCaseDescriptor insert(UseCaseDescriptor desc) throws RegistrationException { try { if (desc.getMongoId() != null) @@ -62,9 +47,9 @@ public class UCDMongoManager extends MongoManager implements UCDManagerI{ //TODO validate - ObjectId id = super.insert(Serialization.asDocument(desc), mongoCollectionName()); + ObjectId id = insertDoc(Serialization.asDocument(desc)); desc.setMongoId(id); - return Serialization.convert(super.getById(id, mongoCollectionName()), UseCaseDescriptor.class); + return Serialization.convert(getDocById(id), UseCaseDescriptor.class); }catch(JsonProcessingException e){ log.error("Unexpected serialization exception ",e); throw new WebApplicationException("Unexpected exception ",e); @@ -80,7 +65,7 @@ public class UCDMongoManager extends MongoManager implements UCDManagerI{ // MONGO ID SHOULD MATCH IF PROVIDED filter.put(UseCaseDescriptor.MONGO_ID,desc.getMongoId()); try { - UseCaseDescriptor toReturn = Serialization.convert(getDatabase().getCollection(mongoCollectionName()).findOneAndReplace( + UseCaseDescriptor toReturn = Serialization.convert(getCollection().findOneAndReplace( filter, Serialization.asDocument(desc), new FindOneAndReplaceOptions().returnDocument(ReturnDocument.BEFORE)), UseCaseDescriptor.class); log.trace("Matching is {} ", toReturn); @@ -103,24 +88,17 @@ public class UCDMongoManager extends MongoManager implements UCDManagerI{ } } - - - private String mongoCollectionName(){ - return "_UCD"+ ContextUtils.getCurrentScope().replaceAll("/","_"); - } - - - @Override public Iterable query(QueryRequest queryRequest) { log.info("Searching UCD for {} ",queryRequest); LinkedBlockingQueue queue=new LinkedBlockingQueue(); - query(queryRequest,getCollectionName()).forEach( + FindIterable it=queryDoc(queryRequest); + it.forEach( (Consumer) d ->{try{ queue.put(Serialization.convert(d,UseCaseDescriptor.class)); - }catch(Throwable t){log.warn("Unable to translate "+d);}}); + }catch(Throwable t){log.warn("Unable to translate "+d,t);}}); log.info("Returned {} elements ",queue.size()); return queue; @@ -128,7 +106,7 @@ public class UCDMongoManager extends MongoManager implements UCDManagerI{ @Override public void deleteById(String id, boolean force) throws ConfigurationException { - delete(getById(id).getMongoId(),mongoCollectionName()); + deleteDoc(getById(id).getMongoId()); } diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/UCDTests.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/UCDTests.java index 6f56b8b..254e0e2 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/UCDTests.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/UCDTests.java @@ -17,6 +17,7 @@ import javax.ws.rs.core.MediaType; import java.util.Iterator; import java.util.concurrent.atomic.AtomicLong; +import static junit.framework.TestCase.assertTrue; import static org.junit.Assume.assumeTrue; @Slf4j @@ -51,6 +52,6 @@ public class UCDTests extends BasicServiceTestUnit{ QueryRequest request=new QueryRequest(); AtomicLong l = new AtomicLong(); query(request).forEachRemaining(u->l.incrementAndGet()); - assumeTrue(l.get()>0); + assertTrue(l.get()>0); } } diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/MongoTests.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/mongo/MongoTests.java similarity index 91% rename from geoportal-service/src/test/java/org/gcube/application/geoportal/service/MongoTests.java rename to geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/mongo/MongoTests.java index 26d879a..ac48c53 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/MongoTests.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/mongo/MongoTests.java @@ -1,4 +1,4 @@ -package org.gcube.application.geoportal.service; +package org.gcube.application.geoportal.service.engine.mongo; import com.fasterxml.jackson.core.JsonProcessingException; import com.mongodb.Block; @@ -25,15 +25,7 @@ public class MongoTests { public static class MongoTester extends MongoManager { public MongoTester() throws ConfigurationException { - } - - - - public MongoCollection getCollection(){return getDatabase().getCollection("legacyConcessioni");} - - @Override - protected MongoDatabase getDatabase() { - return client.getTheClient().getDatabase("gna_dev"); + init("legacyConcessioni"); } @Override diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/AbstractProfiledDocumentsTests.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/AbstractProfiledDocumentsTests.java index 8ef0d95..291fc67 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/AbstractProfiledDocumentsTests.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/AbstractProfiledDocumentsTests.java @@ -18,6 +18,7 @@ import org.gcube.application.geoportal.common.utils.tests.GCubeTest; import org.gcube.application.geoportal.service.BasicServiceTestUnit; import org.junit.Assert; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import javax.ws.rs.client.Entity; @@ -40,9 +41,10 @@ public abstract class AbstractProfiledDocumentsTests extends BasicServiceTestUni } - protected abstract WebTarget baseTarget(); + protected abstract WebTarget baseTarget(); + @Test public void getAll() { @@ -66,9 +68,10 @@ public abstract class AbstractProfiledDocumentsTests extends BasicServiceTestUni } @Test - public void getConfiguration() { + public void getConfiguration() throws Exception { assumeTrue(GCubeTest.isTestInfrastructureEnabled()); - System.out.println(baseTarget().path(InterfaceConstants.Methods.CONFIGURATION_PATH).request(MediaType.APPLICATION_JSON).get(Configuration.class)); + System.out.println(check( + baseTarget().path(InterfaceConstants.Methods.CONFIGURATION_PATH).request(MediaType.APPLICATION_JSON).get(),Configuration.class)); } // Queries diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/DummyProjectTest.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/DummyProjectTest.java index 54c91df..205aab7 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/DummyProjectTest.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/DummyProjectTest.java @@ -2,6 +2,7 @@ package org.gcube.application.geoportal.service.profiledDocuments; import org.bson.Document; import org.gcube.application.cms.serialization.Serialization; +import org.gcube.application.cms.tests.TokenSetter; import org.gcube.application.geoportal.common.model.JSONPathWrapper; import org.gcube.application.geoportal.common.model.document.Project; import org.gcube.application.geoportal.common.model.document.filesets.RegisteredFileSet; @@ -9,8 +10,10 @@ import org.gcube.application.geoportal.common.model.useCaseDescriptor.Field; import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest; import org.gcube.application.geoportal.common.rest.InterfaceConstants; import org.gcube.application.geoportal.common.utils.StorageUtils; +import org.gcube.application.geoportal.common.utils.tests.GCubeTest; import org.gcube.application.geoportal.service.BasicServiceTestUnit; import org.junit.Assert; +import org.junit.BeforeClass; import org.junit.Test; import javax.ws.rs.client.Entity; @@ -18,6 +21,7 @@ import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; import static org.junit.Assert.assertTrue; +import static org.junit.Assume.assumeTrue; public class DummyProjectTest extends AbstractProfiledDocumentsTests{ @@ -28,6 +32,9 @@ public class DummyProjectTest extends AbstractProfiledDocumentsTests{ } + + + @Test public void registerNew() throws Exception { diff --git a/test-data/profiledDocuments/configurations/profiledConcessioni.json b/test-data/profiledDocuments/configurations/profiledConcessioni.json new file mode 100644 index 0000000..868e12f --- /dev/null +++ b/test-data/profiledDocuments/configurations/profiledConcessioni.json @@ -0,0 +1,18 @@ +{ + "profile_id": "profiledConcessioni", + "context": "/gcube/devsec/devVRE", + "last_updated_time": "2022-03-11T15:53:41.099", + "indexes": null, + "archives": + [ + { + "_type": "DOCUMENT-STORE-COLLECTION", + "count": 41, + "collection_name": "profiledConcessioni" + }, + { + "_type": "W-STORAGE", + "folder_id": "2a688014-cf98-464d-aa7c-38f1667f5542" + } + ] +} \ No newline at end of file