package org.gcube.portlets.user.geoportaldataentry.client; import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.mongoConcessioni; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.bson.Document; import org.gcube.application.geoportal.common.model.legacy.Concessione; import org.gcube.application.geoportal.common.model.rest.QueryRequest; import org.gcube.application.geoportal.common.model.rest.QueryRequest.OrderedRequest; import org.gcube.application.geoportal.common.model.rest.QueryRequest.OrderedRequest.Direction; import org.gcube.application.geoportal.common.model.rest.QueryRequest.PagedRequest; import org.gcube.application.geoportal.common.rest.MongoConcessioni; import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.scope.api.ScopeProvider; import org.gcube.portlets.user.geoportaldataentry.server.config.GNADataEntryConfigsProfileReader; import org.junit.Before; import org.junit.Test; import com.mongodb.BasicDBList; import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObjectBuilder; public class TestClass { private static String TOKEN = ""; private static String CONTEXT = "/gcube/devsec/devVRE"; private static String USERNAME = "francesco.mangiacrapa"; @Before public void init() { ScopeProvider.instance.set(CONTEXT); SecurityTokenProvider.instance.set(TOKEN); } // @Test public void getListConcessioniTest() throws Exception { MongoConcessioni clientMongo = mongoConcessioni().build(); Iterator concessioni = clientMongo.getList(); List listOfConcessioni = new ArrayList(); if (concessioni != null) { while (concessioni.hasNext()) { Concessione concessione = (Concessione) concessioni.next(); listOfConcessioni.add(concessione); } } int i = 0; for (Concessione concessione : listOfConcessioni) { System.out.println(++i + " " + concessione); } } // @Test public void queryConcessioniTest() throws Exception { try { MongoConcessioni clientMongo = mongoConcessioni().build(); int offsetIndex = 0; int limitIndex = 25; Direction sDirection = Direction.ASCENDING; List orderByFields = Arrays.asList("nome"); Map searchFields = new HashMap(); searchFields.put("nome", "test"); searchFields.put("authors", "fra"); QueryRequest request = new QueryRequest(); PagedRequest paging = new PagedRequest(); paging.setOffset(offsetIndex); paging.setLimit(limitIndex); request.setPaging(paging); OrderedRequest ordering = new OrderedRequest(); ordering.setDirection(sDirection); ordering.setFields(orderByFields); request.setOrdering(ordering); Document query = null; if (searchFields != null) { BasicDBObjectBuilder builder = BasicDBObjectBuilder.start(); query = new Document(); for (String key : searchFields.keySet()) { // builder.append(key, new BasicDBObject("$eq", searchFields.get(key))); BasicDBObject bs = new BasicDBObject(); bs.append("$regex", searchFields.get(key)); bs.append("$options", "i"); builder.append(key, bs); // query.put(key, new BasicDBObject("$eq", searchFields.get(key))); // query = new Document(key, searchFields.get(key)); } // query.putAll(builder.get().toMap()); // request.setFilter(query); BasicDBList list = new BasicDBList(); list.add(builder.get().toMap()); query.put("$or", list); // or(query); request.setFilter(query); // ************************************************ AND // query = new Document(); // for (String key : searchFields.keySet()) { // //AND // BasicDBObject bs = new BasicDBObject(); // bs.append("$regex", searchFields.get(key)); // bs.append("$options", "i"); // query.put(key, bs); // // } // request.setFilter(query); // ******************************************** END AND } // OR /* * query = new Document(); BasicDBObject container = new BasicDBObject(); * BsonArray bArray = new BsonArray(); for (String key : searchFields.keySet()) * { //AND BasicDBObject bs = new BasicDBObject(); bs.append("$regex", * searchFields.get(key)); bs.append("$options", "i"); query.put(key, bs); * * //container.put(key, bs); * * * // BasicDBObject bs2 = new BasicDBObject(); // bs2.append("$regex", * searchFields.get(key)); // bs2.append("$options", "i"); // BsonDocument bsK = * new BsonDocument(); // bsK.append(key, new BsonString(bs2.toJson())); // * bArray.add(bsK); * * } // query.put("$or", bArray); * * BasicDBList list = new BasicDBList(); list.add(query); * * Document orDocument = new Document(); orDocument.put("$or", list); // query = * orDocument; request.setFilter(query); */ System.out.println("Paging offset: " + offsetIndex + ", limit: " + limitIndex); System.out.println("Direction: " + sDirection); System.out.println("Order by Fields: " + orderByFields); System.out.println("Search for: " + query); System.out.println("Search for Query to JSON: " + query.toJson()); Iterator concessioni = clientMongo.query(request); if (concessioni.hasNext()) { System.out.println("Found concessioni, printing them..."); } else System.out.println("No concessione found"); if (concessioni != null) { while (concessioni.hasNext()) { Concessione concessione = (Concessione) concessioni.next(); System.out.println(concessione.getNome()); } } } catch (Exception e) { e.printStackTrace(); } } // @Test // public void readUserRights() throws Exception { // new GNARoleRitghtsConfigReader(); // List listUserRights = GNARoleRitghtsConfigReader.readRoleRightsConfig(); // System.out.println(listUserRights); // } @Test public void readUserRights() throws Exception { GNADataEntryConfigsProfileReader r = new GNADataEntryConfigsProfileReader(); try { r.readProfileFromInfrastrucure(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }