mock for getListItemsForStatus and getSizeOfListItemsForStatus

This commit is contained in:
Francesco Mangiacrapa 2021-06-14 15:04:43 +02:00
parent 2426bd16bd
commit 052c27c8c7
7 changed files with 694 additions and 10 deletions

View File

@ -4,6 +4,12 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [v1.1.0-SNAPSHOT] - 2021-06-14
**New Features**
[#21643] Integrated with the content-moderator-system facilities
## [v1.0.2] - 2021-06-03
**Fixes**

View File

@ -12,7 +12,7 @@
<groupId>org.gcube.datacatalogue</groupId>
<artifactId>catalogue-util-library</artifactId>
<version>1.0.2</version>
<version>1.1.0-SNAPSHOT</version>
<name>Ckan utility library</name>
<description>
@ -40,7 +40,7 @@
<dependency>
<groupId>org.gcube.distribution</groupId>
<artifactId>maven-portal-bom</artifactId>
<version>3.6.2</version>
<version>3.6.2-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>

View File

@ -33,6 +33,8 @@ import org.gcube.datacatalogue.utillibrary.ckan.MarshUnmarshCkanObject.METHOD;
import org.gcube.datacatalogue.utillibrary.db.DBCaller;
import org.gcube.datacatalogue.utillibrary.gcat.GCatCaller;
import org.gcube.datacatalogue.utillibrary.server.DataCatalogueRunningCluster.ACCESS_LEVEL_TO_CATALOGUE_PORTLET;
import org.gcube.datacatalogue.utillibrary.server.cms.CatalogueContentModeratorSystem;
import org.gcube.datacatalogue.utillibrary.server.cms.DataCatalogueCMSImpl;
import org.gcube.datacatalogue.utillibrary.server.utils.CKANConveter;
import org.gcube.datacatalogue.utillibrary.server.utils.CatalogueUtilMethods;
import org.gcube.datacatalogue.utillibrary.server.utils.GCubeUtils;
@ -57,6 +59,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
// TODO: Auto-generated Javadoc
/**
* This is the Ckan Utils implementation class.
*
@ -87,27 +90,28 @@ public class DataCatalogueImpl implements DataCatalogue {
private Map<String, String> extendRoleInOrganization;
public Map<ACCESS_LEVEL_TO_CATALOGUE_PORTLET, String> mapAccessURLToCatalogue;
private static final String CATALOGUE_TAB_ENDING_URL = "/catalogue";
// gCat client
private GCatCaller gCatCaller;
// db client
private DBCaller dbCaller;
// ckan client
private ExtendCkanClient ckanCaller;
// hashmap for ckan api keys
private ConcurrentHashMap<String, CKANTokenBean> apiKeysMap;
//http ckan caller
//private DirectCkanCaller directCkanCaller; //is not needed anymore?
// http ckan caller
// private DirectCkanCaller directCkanCaller; //is not needed anymore?
// apikey bean expires after X minutes in the above map
private static final int EXPIRE_KEY_TIME = 60 * 60 * 1000;
private DataCatalogueCMSImpl dataCatalogueCMSImpl = null;
/**
@ -168,6 +172,11 @@ public class DataCatalogueImpl implements DataCatalogue {
ckanCaller = new ExtendCkanClient(CKAN_CATALOGUE_URL, CKAN_TOKEN_SYS);
}
/**
* Gets the catalogue url.
*
* @return the catalogue url
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getCatalogueUrl()
*/
@ -177,6 +186,11 @@ public class DataCatalogueImpl implements DataCatalogue {
}
/**
* Gets the portlet url.
*
* @return the portlet url
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getPortletUrl()
*/
@ -207,6 +221,12 @@ public class DataCatalogueImpl implements DataCatalogue {
}
/**
* Find license id by license title.
*
* @param chosenLicense the chosen license
* @return the string
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#findLicenseIdByLicenseTitle(java.lang.String)
*/
@ -228,6 +248,11 @@ public class DataCatalogueImpl implements DataCatalogue {
return null;
}
/**
* Gets the license titles.
*
* @return the license titles
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getLicenseTitles()
*/
@ -248,6 +273,11 @@ public class DataCatalogueImpl implements DataCatalogue {
return result;
}
/**
* Gets the licenses.
*
* @return the licenses
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getLicenses()
*/
@ -259,6 +289,13 @@ public class DataCatalogueImpl implements DataCatalogue {
}
/**
* Gets the dataset.
*
* @param datasetIdOrName the dataset id or name
* @param username the username
* @return the dataset
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getDataset(java.lang.String, java.lang.String)
*/
@ -289,7 +326,27 @@ public class DataCatalogueImpl implements DataCatalogue {
return null;
}
/**
* Gets the catalogue content moderator system
*
* @return the catalogue content moderator
*/
public CatalogueContentModeratorSystem getCatalogueContentModerator() {
if(dataCatalogueCMSImpl==null) {
dataCatalogueCMSImpl = new DataCatalogueCMSImpl();
}
return dataCatalogueCMSImpl;
}
/**
* Gets the unencrypted url from dataset id or name.
*
* @param datasetIdOrName the dataset id or name
* @return the unencrypted url from dataset id or name
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getUnencryptedUrlFromDatasetIdOrName(java.lang.String)
*/
@ -324,6 +381,12 @@ public class DataCatalogueImpl implements DataCatalogue {
}
/**
* Gets the user role by group.
*
* @param username the username
* @return the user role by group
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getUserRoleByGroup(java.lang.String)
*/
@ -358,6 +421,12 @@ public class DataCatalogueImpl implements DataCatalogue {
}
/**
* Gets the user role by organization.
*
* @param username the username
* @return the user role by organization
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getUserRoleByOrganization(java.lang.String)
*/
@ -432,6 +501,12 @@ public class DataCatalogueImpl implements DataCatalogue {
return toReturn;
}
/**
* Gets the landing pages.
*
* @return the landing pages
* @throws Exception the exception
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getLandingPages()
*/
@ -446,6 +521,11 @@ public class DataCatalogueImpl implements DataCatalogue {
return landingPages;
}
/**
* Gets the uri resolver url.
*
* @return the uri resolver url
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getUriResolverUrl()
*/
@ -464,6 +544,12 @@ public class DataCatalogueImpl implements DataCatalogue {
return MANAGE_PRODUCT_BUTTON;
}
/**
* Gets the group by name.
*
* @param name the name
* @return the group by name
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getGroupByName(java.lang.String)
*/
@ -478,6 +564,11 @@ public class DataCatalogueImpl implements DataCatalogue {
return null;
}
/**
* Checks if is notification to users enabled.
*
* @return true, if is notification to users enabled
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#isNotificationToUsersEnabled()
*/
@ -487,6 +578,12 @@ public class DataCatalogueImpl implements DataCatalogue {
}
/**
* Gets the organizations by user.
*
* @param username the username
* @return the organizations by user
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getOrganizationsByUser(java.lang.String)
*/
@ -518,6 +615,12 @@ public class DataCatalogueImpl implements DataCatalogue {
return toReturn;
}
/**
* Gets the groups by user.
*
* @param username the username
* @return the groups by user
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getGroupsByUser(java.lang.String)
*/
@ -548,6 +651,11 @@ public class DataCatalogueImpl implements DataCatalogue {
return toReturn;
}
/**
* Gets the organizations ids.
*
* @return the organizations ids
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getOrganizationsIds()
*/
@ -565,6 +673,11 @@ public class DataCatalogueImpl implements DataCatalogue {
return toReturn;
}
/**
* Gets the organizations names.
*
* @return the organizations names
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getOrganizationsNames()
*/
@ -582,6 +695,12 @@ public class DataCatalogueImpl implements DataCatalogue {
return toReturn;
}
/**
* Gets the organizations names by user.
*
* @param username the username
* @return the organizations names by user
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getOrganizationsNamesByUser(java.lang.String)
*/
@ -607,6 +726,13 @@ public class DataCatalogueImpl implements DataCatalogue {
}
/**
* Gets the role of user in organization.
*
* @param username the username
* @param orgName the org name
* @return the role of user in organization
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getRoleOfUserInOrganization(java.lang.String, java.lang.String)
*/
@ -695,6 +821,12 @@ public class DataCatalogueImpl implements DataCatalogue {
return null;
}
/**
* Exist product with name or id.
*
* @param nameOrId the name or id
* @return true, if successful
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#existProductWithNameOrId(java.lang.String)
*/
@ -714,6 +846,12 @@ public class DataCatalogueImpl implements DataCatalogue {
}
}
/**
* Gets the organization by id or name.
*
* @param idOrName the id or name
* @return the organization by id or name
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getOrganizationByIdOrName(java.lang.String)
*/
@ -792,6 +930,13 @@ public class DataCatalogueImpl implements DataCatalogue {
/**
* Gets the parent groups.
*
* @param groupName the group name
* @param apiKey the api key
* @return the parent groups
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getParentGroups(java.lang.String, java.lang.String)
*/
@ -811,6 +956,12 @@ public class DataCatalogueImpl implements DataCatalogue {
return null;
}
/**
* Gets the organization by name.
*
* @param name the name
* @return the organization by name
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getOrganizationByName(java.lang.String)
*/
@ -908,6 +1059,14 @@ public class DataCatalogueImpl implements DataCatalogue {
return false;
}
/**
* Check role into group.
*
* @param username the username
* @param groupName the group name
* @param correspondentRoleToCheck the correspondent role to check
* @return true, if successful
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#checkRoleIntoGroup(java.lang.String, java.lang.String, org.gcube.datacatalogue.utillibrary.shared.RolesCkanGroupOrOrg)
*/
@ -966,6 +1125,29 @@ public class DataCatalogueImpl implements DataCatalogue {
return false;
}
/**
* Creates the ckan dataset multiple custom fields.
*
* @param username the username
* @param title the title
* @param name the name
* @param organizationName the organization name
* @param author the author
* @param authorMail the author mail
* @param maintainer the maintainer
* @param maintainerMail the maintainer mail
* @param version the version
* @param description the description
* @param licenseId the license id
* @param tags the tags
* @param customFieldsMultiple the custom fields multiple
* @param resources the resources
* @param setPublic the set public
* @param setSearchable the set searchable
* @param socialPost the social post
* @return the string
* @throws Exception the exception
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#createCkanDatasetMultipleCustomFields(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, long, java.lang.String, java.lang.String, java.util.List, java.util.Map, java.util.List, boolean, boolean, boolean)
*/
@ -1019,6 +1201,14 @@ public class DataCatalogueImpl implements DataCatalogue {
}
/**
* Patch fields for dataset.
*
* @param datasetIdOrName the dataset id or name
* @param mapFields the map fields
* @return true, if successful
* @throws Exception the exception
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#patchFieldsForDataset(java.lang.String, java.util.Map)
*/
@ -1052,6 +1242,14 @@ public class DataCatalogueImpl implements DataCatalogue {
}
/**
* Sets the searchable field for dataset.
*
* @param datasetId the dataset id
* @param searchable the searchable
* @return true, if successful
* @throws Exception the exception
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#setSearchableFieldForDataset(java.lang.String, boolean)
*/
@ -1079,6 +1277,15 @@ public class DataCatalogueImpl implements DataCatalogue {
}
/**
* Adds the resource to dataset.
*
* @param resourceBean the resource bean
* @param organizationName the organization name
* @param username the username
* @return the string
* @throws Exception the exception
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#addResourceToDataset(org.gcube.datacatalogue.utillibrary.shared.ResourceBean)
*/
@ -1132,6 +1339,14 @@ public class DataCatalogueImpl implements DataCatalogue {
return null;
}
/**
* Delete resource from dataset.
*
* @param resourceId the resource id
* @param username the username
* @return true, if successful
* @throws Exception the exception
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#deleteResourceFromDataset(java.lang.String)
*/
@ -1168,6 +1383,15 @@ public class DataCatalogueImpl implements DataCatalogue {
}
/**
* Creates the group.
*
* @param name the name
* @param title the title
* @param description the description
* @return the ckan group
* @throws Exception the exception
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#createGroup(java.lang.String, java.lang.String, java.lang.String)
*/
@ -1207,6 +1431,12 @@ public class DataCatalogueImpl implements DataCatalogue {
}
/**
* Gets the roles and users group.
*
* @param groupName the group name
* @return the roles and users group
*/
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#getRolesAndUsersGroup(java.lang.String)
*/
@ -1245,6 +1475,13 @@ public class DataCatalogueImpl implements DataCatalogue {
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#assignDatasetToGroup(java.lang.String, java.lang.String)
*/
/**
* Assign dataset to group.
*
* @param groupNameOrId the group name or id
* @param datasetNameOrId the dataset name or id
* @return true, if successful
*/
//TODO HAS TO BE REVISITED by gCAT
@Override
public boolean assignDatasetToGroup(String groupNameOrId, String datasetNameOrId) {
@ -1255,6 +1492,15 @@ public class DataCatalogueImpl implements DataCatalogue {
/* (non-Javadoc)
* @see org.gcube.datacatalogue.utillibrary.server.DataCatalogue#patchProductCustomFields(java.lang.String, java.lang.String, java.util.Map, boolean)
*/
/**
* Patch product custom fields.
*
* @param productId the product id
* @param username the username
* @param customFieldsToChange the custom fields to change
* @param removeOld the remove old
* @return true, if successful
*/
//TODO HAS TO BE REVISITED by gCAT
@Override
public boolean patchProductCustomFields(String productId, String username,

View File

@ -0,0 +1,81 @@
package org.gcube.datacatalogue.utillibrary.server.cms;
import java.net.MalformedURLException;
import java.util.List;
import javax.ws.rs.WebApplicationException;
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanDataset;
import org.json.JSONException;
/**
* The Interface CatalogueContentModeratorSystem.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Jun 14, 2021
*/
public interface CatalogueContentModeratorSystem {
/**
* Checks if is content moderator enabled.
*
* @return true, if is content moderator enabled
*/
boolean isContentModeratorEnabled();
/**
* Sets the status.
*
* @param itemId the item id
* @param theStatus the the status
*/
void setStatus(String itemId, ItemStatus theStatus);
/**
* Gets the list items for status.
*
* @param theStatus the the status
* @param limit the limit
* @param offset the offset
* @return the list items for status
* @throws WebApplicationException the web application exception
* @throws MalformedURLException the malformed URL exception
* @throws JSONException the JSON exception
*/
public List<CkanDataset> getListItemsForStatus(ItemStatus theStatus, int limit, int offset)
throws WebApplicationException, MalformedURLException, JSONException;
/**
* Approve item.
*
* @param itemId the item id
*/
void approveItem(String itemId);
/**
* Reject item.
*
* @param itemId the item id
* @param permanentlyDelete the permanently delete
* @param reasonMsg the reason msg
*/
void rejectItem(String itemId, boolean permanentlyDelete, String reasonMsg);
/**
* Permanently delete.
*
* @param itemId the item id
*/
void permanentlyDelete(String itemId);
/**
* Count list items for status.
*
* @param theStatus the the status
* @return the long
*/
long countListItemsForStatus(ItemStatus theStatus);
}

View File

@ -0,0 +1,199 @@
package org.gcube.datacatalogue.utillibrary.server.cms;
import static com.google.common.base.Preconditions.checkNotNull;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.WebApplicationException;
import org.gcube.datacatalogue.utillibrary.ckan.MarshUnmarshCkanObject;
import org.gcube.datacatalogue.utillibrary.ckan.MarshUnmarshCkanObject.METHOD;
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanDataset;
import org.gcube.gcat.client.Item;
import org.json.JSONArray;
import org.json.JSONException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
// TODO: Auto-generated Javadoc
/**
* The Class DataCatalogueCMSImpl.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Jun 14, 2021
*/
public class DataCatalogueCMSImpl implements CatalogueContentModeratorSystem {
private static final Logger LOG = LoggerFactory.getLogger(DataCatalogueCMSImpl.class);
/**
* Instantiates a new data catalogue CMS impl.
*/
public DataCatalogueCMSImpl() {
}
/**
* Checks if is content moderator enabled.
*
* @return true, if is content moderator enabled
*/
@Override
public boolean isContentModeratorEnabled() {
// TODO Auto-generated method stub
return false;
}
/**
* Sets the status.
*
* @param itemId the item id
* @param theStatus the the status
*/
@Override
public void setStatus(String itemId, ItemStatus theStatus) {
// TODO Auto-generated method stub
}
/**
* Gets the list items for status.
*
* @param theStatus the the status
* @param limit the limit
* @param offset the offset
* @return the list items for status
* @throws WebApplicationException the web application exception
* @throws MalformedURLException the malformed URL exception
* @throws JSONException
*/
@Override
public List<CkanDataset> getListItemsForStatus(ItemStatus theStatus, int limit, int offset)
throws WebApplicationException, MalformedURLException, JSONException {
LOG.info("called getListItemsForStatus with [status: " + theStatus + "], [limit: " + limit + "], [offset: "
+ offset + "]");
List<CkanDataset> listDataset = null;
checkNotNull(theStatus);
JSONArray jsonArray = getSourceArrayOfItemsForStatus(theStatus, limit, offset);
if (jsonArray != null) {
int size = jsonArray.length();
listDataset = new ArrayList<CkanDataset>(size);
LOG.debug("converting " + size + " dataset...");
for (int i = 0; i < size; i++) {
String datasetName = null;
try {
datasetName = jsonArray.getString(i);
LOG.trace("reading dataset: " + datasetName);
String jsonValueDataset = new Item().read(datasetName);
CkanDataset toCkanDataset = MarshUnmarshCkanObject.toCkanDataset(jsonValueDataset,
METHOD.TO_READ);
LOG.trace("converted as dataset: " + toCkanDataset);
listDataset.add(toCkanDataset);
} catch (JSONException | IOException e) {
LOG.warn("Error on reading/converting the dataset name: " + datasetName, e);
}
}
}
if (listDataset == null) {
LOG.info("no dataset returned with status: " + theStatus);
return listDataset;
}
LOG.info("returning listDataset with size: " + listDataset.size());
return listDataset;
}
/**
* Gets the source array of items for status read by gCatClient.
*
* @param theStatus the the status
* @param limit the limit
* @param offset the offset
* @return the source array of items for status
* @throws WebApplicationException the web application exception
* @throws MalformedURLException the malformed URL exception
* @throws JSONException the JSON exception
*/
protected JSONArray getSourceArrayOfItemsForStatus(ItemStatus theStatus, int limit, int offset)
throws WebApplicationException, MalformedURLException, JSONException {
LOG.info("called getSourceArrayOfItemsForStatus with [status: " + theStatus + "], [limit: " + limit
+ "], [offset: " + offset + "]");
checkNotNull(theStatus);
// TODO MUST BE CHANGED FOR THE STATUS
JSONArray jsonArray = null;
String datasetNames = new Item().list(limit, offset);
if (datasetNames != null) {
LOG.debug("for status " + theStatus + " found dataset: " + datasetNames);
jsonArray = new JSONArray(datasetNames);
}
return jsonArray;
}
/**
* Count list items for status.
*
* @param theStatus the the status
* @return the long
*/
@Override
public long countListItemsForStatus(ItemStatus theStatus) {
LOG.info("called countListItemsForStatus with [status: " + theStatus + "]");
checkNotNull(theStatus);
int count = 0;
try {
// TODO MUST BE CHANGED FOR THE STATUS
count = new Item().count();
} catch (Exception e) {
LOG.error("Error on couting list items for status "+theStatus, e);
return -1;
}
return count;
}
/**
* Approve item.
*
* @param itemId the item id
*/
@Override
public void approveItem(String itemId) {
// TODO Auto-generated method stub
}
/**
* Reject item.
*
* @param itemId the item id
* @param permanentlyDelete the permanently delete
* @param reasonMsg the reason msg
*/
@Override
public void rejectItem(String itemId, boolean permanentlyDelete, String reasonMsg) {
// TODO Auto-generated method stub
}
/**
* Permanently delete.
*
* @param itemId the item id
*/
@Override
public void permanentlyDelete(String itemId) {
// TODO Auto-generated method stub
}
}

View File

@ -0,0 +1,45 @@
package org.gcube.datacatalogue.utillibrary.server.cms;
/**
* The Enum ItemStatus.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* May 7, 2021
*/
public enum ItemStatus {
PENDING("pending", "Pending"), APPROVED("approved", "Approved"), REJECTED("rejected", "Rejected");
private String id;
private String label;
/**
* Instantiates a new item status.
*
* @param id the id
* @param label the label
*/
private ItemStatus(String id, String label) {
this.id = id;
this.label = label;
}
/**
* Gets the id.
*
* @return the id
*/
public String getId() {
return id;
}
/**
* Gets the label.
*
* @return the label
*/
public String getLabel() {
return label;
}
}

View File

@ -0,0 +1,107 @@
package org.gcube.datacatalogue.utillibrary.test;
import java.util.List;
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.datacatalogue.utillibrary.server.DataCatalogueFactory;
import org.gcube.datacatalogue.utillibrary.server.DataCatalogueImpl;
import org.gcube.datacatalogue.utillibrary.server.cms.CatalogueContentModeratorSystem;
import org.gcube.datacatalogue.utillibrary.server.cms.ItemStatus;
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanDataset;
import org.junit.Test;
import org.slf4j.LoggerFactory;
/**
* The Class TestDataCatalogueLib.
*
* @author Francesco Mangiacrapa at ISTI-CNR Pisa (Italy) Jun 1, 2020
*/
public class TestDataCatalogueCMS {
private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(TestDataCatalogueCMS.class);
private DataCatalogueFactory factory;
private String scope = "/gcube/devsec/devVRE";
private String testUser = "francesco.mangiacrapa";
private String authorizationToken = "8e74a17c-92f1-405a-b591-3a6090066248-98187548";
/**
* Before.
*
* @throws Exception the exception
*/
// @Before
public void before() throws Exception {
factory = DataCatalogueFactory.getFactory();
}
/**
* Factory test.
*
* @throws Exception the exception
*/
// @Test
public void contentModeratorTest() throws Exception {
ScopeProvider.instance.set(scope);
SecurityTokenProvider.instance.set(authorizationToken);
DataCatalogueFactory factory = DataCatalogueFactory.getFactory();
DataCatalogueImpl dImpl = factory.getUtilsPerScope(scope);
CatalogueContentModeratorSystem cCMS = dImpl.getCatalogueContentModerator();
LOG.debug(CatalogueContentModeratorSystem.class.getName() + " instancied correclty");
}
/**
* Gets the scope per url.
*
* @return the scope per url
* @throws Exception
*/
//@Test
public void getListItemsForStatus() throws Exception {
try {
ScopeProvider.instance.set(scope);
SecurityTokenProvider.instance.set(authorizationToken);
DataCatalogueFactory factory = DataCatalogueFactory.getFactory();
DataCatalogueImpl dImpl = factory.getUtilsPerScope(scope);
CatalogueContentModeratorSystem cCMS = dImpl.getCatalogueContentModerator();
LOG.debug(CatalogueContentModeratorSystem.class.getName() + " instancied correclty");
List<CkanDataset> listDatasets = cCMS.getListItemsForStatus(ItemStatus.PENDING, 20, 0);
for (CkanDataset ckanDataset : listDatasets) {
LOG.debug("CkanDataset read: " + ckanDataset);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Gets the scope per url.
*
* @return the scope per url
* @throws Exception
*/
//@Test
public void getSizeOfListItemsForStatus() throws Exception {
try {
ItemStatus theStatus = ItemStatus.PENDING;
ScopeProvider.instance.set(scope);
SecurityTokenProvider.instance.set(authorizationToken);
DataCatalogueFactory factory = DataCatalogueFactory.getFactory();
DataCatalogueImpl dImpl = factory.getUtilsPerScope(scope);
CatalogueContentModeratorSystem cCMS = dImpl.getCatalogueContentModerator();
LOG.debug(CatalogueContentModeratorSystem.class.getName() + " instancied correclty");
long size = cCMS.countListItemsForStatus(theStatus);
LOG.debug("Size of list of items for status "+theStatus + " is: "+ size);
} catch (Exception e) {
e.printStackTrace();
}
}
}