adding test classes

This commit is contained in:
Miriam Baglioni 2023-10-31 10:38:09 +01:00
parent 818bb4b11c
commit 012d4cece6
8 changed files with 192 additions and 916 deletions

View File

@ -20,24 +20,24 @@ public class CommunityModel implements Serializable {
private String type;
private List<String> subject;
private List<String> subjects;
private String zenodoCOmmunity;
private String zenodoCommunity;
public List<String> getSubject() {
return subject;
public List<String> getSubjects() {
return subjects;
}
public void setSubject(List<String> subject) {
this.subject = subject;
public void setSubjects(List<String> subjects) {
this.subjects = subjects;
}
public String getZenodoCOmmunity() {
return zenodoCOmmunity;
public String getZenodoCommunity() {
return zenodoCommunity;
}
public void setZenodoCOmmunity(String zenodoCOmmunity) {
this.zenodoCOmmunity = zenodoCOmmunity;
public void setZenodoCommunity(String zenodoCommunity) {
this.zenodoCommunity = zenodoCommunity;
}
public String getType() {

View File

@ -6,9 +6,9 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import com.fasterxml.jackson.core.JsonProcessingException;
import eu.dnetlib.dhp.communityapi.model.*;
import eu.dnetlib.dhp.oa.graph.dump.complete.ContextInfo;
import org.slf4j.Logger;
@ -83,37 +83,49 @@ public class UtilCommunityAPI {
}
public List<ContextInfo> getContextInformation(final Consumer<ContextInfo> consumer) throws IOException {
public List<ContextInfo> getContextInformation() throws IOException {
List<ContextInfo> ret = new ArrayList<>();
getValidCommunities()
.forEach(c -> {
ContextInfo cinfo = new ContextInfo();
cinfo.setId(c.getId());
cinfo.setDescription(c.getDescription());
CommunityModel cm =null;
try {
cm = getCommunity(c.getId());
} catch (IOException e) {
throw new RuntimeException(e);
}
cinfo.setSubject(cm.getSubject());
cinfo.setZenodocommunity(c.getZenodoCOmmunity());
cinfo.setType(c.getType());
ret.add(cinfo);
});
.forEach(c ->
ret.add(getContext(c)));
return ret;
}
public void getContextRelation(final Consumer<ContextInfo> consumer) throws IOException {
getValidCommunities().forEach(c -> {
public ContextInfo getContext(CommunityModel c){
ContextInfo cinfo = new ContextInfo();
cinfo.setId(c.getId());
cinfo.setDescription(c.getDescription());
CommunityModel cm =null;
try {
cm = getCommunity(c.getId());
} catch (IOException e) {
throw new RuntimeException(e);
}
cinfo.setSubject(new ArrayList<>());
cinfo.getSubject().addAll(cm.getSubjects());
cinfo.setZenodocommunity(c.getZenodoCommunity());
cinfo.setType(c.getType());
return cinfo;
}
public List<ContextInfo> getContextRelation() throws IOException {
return getValidCommunities().stream().map(c -> {
ContextInfo cinfo = new ContextInfo();
cinfo.setId(c.getId());
cinfo.setDatasourceList( getDatasourceList(c.getId()));
cinfo.setProjectList(getProjectList(c.getId()));
consumer.accept(cinfo);
});
// try {
// if(cinfo.getId().equals("ni"))
// System.out.println(new ObjectMapper().writeValueAsString(cinfo));
// } catch (JsonProcessingException e) {
// throw new RuntimeException(e);
// }
return cinfo;
}).collect(Collectors.toList());
}
private List<String> getDatasourceList(String id) {

View File

@ -36,6 +36,7 @@ public class CreateContextEntities implements Serializable {
private final transient Configuration conf;
private final transient BufferedWriter writer;
public static void main(String[] args) throws Exception {
String jsonConfiguration = IOUtils
.toString(
@ -92,7 +93,7 @@ public class CreateContextEntities implements Serializable {
final Consumer<ContextInfo> consumer = ci -> writeEntity(producer.apply(ci));
queryInformationSystem.getContextInformation(consumer);
queryInformationSystem.getContextInformation().forEach(ci -> consumer.accept(ci));
}
protected <R extends ResearchInitiative> void writeEntity(final R r) {

View File

@ -117,7 +117,7 @@ public class CreateContextRelation implements Serializable {
final Consumer<ContextInfo> consumer = ci -> producer.apply(ci).forEach(this::writeEntity);
UtilCommunityAPI queryCommunityAPI = new UtilCommunityAPI();
queryCommunityAPI.getContextRelation(consumer);
queryCommunityAPI.getContextRelation().forEach(ci -> consumer.accept(ci));
}
protected void writeEntity(final Relation r) {

View File

@ -54,38 +54,13 @@ public class Process implements Serializable {
List<Relation> relationList = new ArrayList<>();
ci
.getDatasourceList()
.forEach(ds -> {
String nodeType = ModelSupport.idPrefixEntity.get(ds.substring(0, 2));
String datasourceId = ds;
if (ds.startsWith("10|") || ds.startsWith("40|"))
datasourceId = ds.substring(3);
.forEach(ds ->
relationList.addAll(addRelations(ci, ds, ModelSupport.idPrefixEntity.get("10"))));
String contextId = Utils.getContextId(ci.getId());
relationList
.add(
Relation
.newInstance(
contextId, eu.dnetlib.dhp.oa.model.graph.Constants.CONTEXT_ENTITY,
datasourceId, nodeType,
RelType.newInstance(ModelConstants.IS_RELATED_TO, ModelConstants.RELATIONSHIP),
Provenance
.newInstance(
Constants.USER_CLAIM,
Constants.DEFAULT_TRUST)));
relationList
.add(
Relation
.newInstance(
datasourceId, nodeType,
contextId, eu.dnetlib.dhp.oa.model.graph.Constants.CONTEXT_ENTITY,
RelType.newInstance(ModelConstants.IS_RELATED_TO, ModelConstants.RELATIONSHIP),
Provenance
.newInstance(
Constants.USER_CLAIM,
Constants.DEFAULT_TRUST)));
});
ci
.getProjectList()
.forEach(p ->
relationList.addAll(addRelations(ci, p, ModelSupport.idPrefixEntity.get("40"))));
return relationList;
@ -94,4 +69,34 @@ public class Process implements Serializable {
}
}
private static List<Relation> addRelations(ContextInfo ci, String ds, String nodeType) {
List<Relation> relationList = new ArrayList<>();
String contextId = Utils.getContextId(ci.getId());
relationList
.add(
Relation
.newInstance(
contextId, eu.dnetlib.dhp.oa.model.graph.Constants.CONTEXT_ENTITY,
ds, nodeType,
RelType.newInstance(ModelConstants.IS_RELATED_TO, ModelConstants.RELATIONSHIP),
Provenance
.newInstance(
Constants.USER_CLAIM,
Constants.DEFAULT_TRUST)));
relationList
.add(
Relation
.newInstance(
ds, nodeType,
contextId, eu.dnetlib.dhp.oa.model.graph.Constants.CONTEXT_ENTITY,
RelType.newInstance(ModelConstants.IS_RELATED_TO, ModelConstants.RELATIONSHIP),
Provenance
.newInstance(
Constants.USER_CLAIM,
Constants.DEFAULT_TRUST)));
return relationList;
}
}

View File

@ -1,71 +0,0 @@
package eu.dnetlib.dhp.oa.graph.dump;
import java.io.IOException;
import java.util.Map;
import org.dom4j.DocumentException;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;
import org.xml.sax.SAXException;
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException;
@ExtendWith(MockitoExtension.class)
class QueryInformationSystemTest {
private UtilCommunityAPI queryInformationSystem;
private Map<String, String> map;
@BeforeEach
public void setUp() throws ISLookUpException, DocumentException, SAXException, IOException {
queryInformationSystem = new UtilCommunityAPI();
map = queryInformationSystem.getCommunityMap(false, null);
}
@Test
void testSize() throws ISLookUpException {
Assertions.assertEquals(23, map.size());
}
@Test
void testContent() {
Assertions.assertTrue(map.containsKey("egi") && map.get("egi").equals("EGI Federation"));
Assertions.assertTrue(map.containsKey("fet-fp7") && map.get("fet-fp7").equals("FET FP7"));
Assertions.assertTrue(map.containsKey("fet-h2020") && map.get("fet-h2020").equals("FET H2020"));
Assertions.assertTrue(map.containsKey("clarin") && map.get("clarin").equals("CLARIN"));
Assertions.assertTrue(map.containsKey("rda") && map.get("rda").equals("Research Data Alliance"));
Assertions.assertTrue(map.containsKey("ee") && map.get("ee").equals("SDSN - Greece"));
Assertions
.assertTrue(
map.containsKey("dh-ch") && map.get("dh-ch").equals("Digital Humanities and Cultural Heritage"));
Assertions.assertTrue(map.containsKey("fam") && map.get("fam").equals("Fisheries and Aquaculture Management"));
Assertions.assertTrue(map.containsKey("ni") && map.get("ni").equals("Neuroinformatics"));
Assertions.assertTrue(map.containsKey("mes") && map.get("mes").equals("European Marine Science"));
Assertions.assertTrue(map.containsKey("instruct") && map.get("instruct").equals("Instruct-ERIC"));
Assertions.assertTrue(map.containsKey("elixir-gr") && map.get("elixir-gr").equals("ELIXIR GR"));
Assertions
.assertTrue(map.containsKey("aginfra") && map.get("aginfra").equals("Agricultural and Food Sciences"));
Assertions.assertTrue(map.containsKey("dariah") && map.get("dariah").equals("DARIAH EU"));
Assertions.assertTrue(map.containsKey("risis") && map.get("risis").equals("RISIS"));
Assertions.assertTrue(map.containsKey("epos") && map.get("epos").equals("EPOS"));
Assertions.assertTrue(map.containsKey("beopen") && map.get("beopen").equals("Transport Research"));
Assertions.assertTrue(map.containsKey("euromarine") && map.get("euromarine").equals("EuroMarine"));
Assertions.assertTrue(map.containsKey("ifremer") && map.get("ifremer").equals("Ifremer"));
Assertions.assertTrue(map.containsKey("oa-pg") && map.get("oa-pg").equals("EC Post-Grant Open Access Pilot"));
Assertions
.assertTrue(
map.containsKey("science-innovation-policy")
&& map.get("science-innovation-policy").equals("Science and Innovation Policy Studies"));
Assertions.assertTrue(map.containsKey("covid-19") && map.get("covid-19").equals("COVID-19"));
Assertions.assertTrue(map.containsKey("enermaps") && map.get("enermaps").equals("Energy Research"));
}
}

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,13 @@
package eu.dnetlib.dhp.oa.graph.dump.complete;
import java.io.IOException;
import java.util.*;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import eu.dnetlib.dhp.communityapi.QueryCommunityAPI;
import eu.dnetlib.dhp.oa.graph.dump.UtilCommunityAPI;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@ -22,542 +25,26 @@ import eu.dnetlib.dhp.utils.DHPUtils;
class CreateRelationTest {
List<String> communityContext = Arrays
.asList(
"<context id=\"clarin\" label=\"CLARIN\" type=\"ri\">\n" +
" <param name=\"status\">all</param>\n" +
" <param name=\"description\">CLARIN</param>\n" +
" <param name=\"logourl\">https://www.clarin.eu/sites/default/files/clarin-frontpage-logo.jpg</param>\n"
+
" <param name=\"name\">Common Language Resources and Technology Infrastructure</param>\n" +
" <param name=\"manager\">maria@clarin.eu,dieter@clarin.eu,f.m.g.dejong@uu.nl,paolo.manghi@isti.cnr.it</param>\n"
+
" <param name=\"subject\"/>\n" +
" <param name=\"suggestedAcknowledgement\">(Part of) the work reported here was made possible by using the CLARIN infrastructure.</param>\n"
+
" <param name=\"suggestedAcknowledgement\">The work reported here has received funding through &lt;CLARIN national consortium member, e.g. CLARIN.SI&gt;, &lt;XYZ&gt; project, grant no. &lt;XYZ&gt;.</param>\n"
+
" <param name=\"suggestedAcknowledgement\">The work reported here has received funding (through CLARIN ERIC) from the European Unions Horizon 2020 research and innovation programme under grant agreement No &lt;0-9&gt; for project &lt;XYZ&gt;.\n"
+
" (E.g. No 676529 for project CLARIN-PLUS.)</param>\n" +
" <param name=\"zenodoCommunity\">oac_clarin</param>\n" +
" <param name=\"creationdate\">2018-03-01T12:00:00</param>\n" +
" <category claim=\"true\" id=\"clarin::projects\" label=\"CLARIN Projects\">\n" +
" <concept claim=\"false\" id=\"clarin::projects::1\" label=\"CLARIN-PLUS\">\n" +
" <param name=\"projectfullname\">CLARIN-PLUS</param>\n" +
" <param name=\"suggestedAcknowledgement\"/>\n" +
" <param name=\"rule\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">676529</param>\n" +
" <param name=\"url\">http://www.clarin.eu</param>\n" +
" <param name=\"funder\">EC</param>\n" +
" <param name=\"funding\">H2020-INFRADEV-1-2015-1</param>\n" +
" <param name=\"acronym\">CLARIN+</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"clarin::projects::2\" label=\"CLARIN\">\n" +
" <param name=\"projectfullname\">Common Language Resources and Technology Infrastructure</param>\n"
+
" <param name=\"acronym\">CLARIN</param>\n" +
" <param name=\"CD_PROJECT_NUMBER\">212230</param>\n" +
" <param name=\"funder\">EC</param>\n" +
" <param name=\"openaireId\">corda_______::ef782b2d85676aa3e5a907427feb18c4</param>\n" +
" </concept>\n" +
" </category>\n" +
" <category claim=\"false\" id=\"clarin::contentproviders\" label=\"CLARIN Content providers\">" +
"<!--<concept claim=\"true\" id=\"clarin::contentproviders::1\" label=\"Zotero\">\n" +
" <param name=\"openaireId\">opendoar____::d96409bf894217686ba124d7356686c9</param>\n"
+
" <param name=\"name\">Public Knowledge Project EPrint Archive</param>\n" +
" <param name=\"officialname\">Public Knowledge Project EPrint Archive</param>\n"
+
" <param name=\"enabled\">true</param>\n" +
" </concept> -->\n" +
" <concept claim=\"false\" id=\"clarin::contentproviders::2\" label=\"\">\n" +
" <param name=\"name\">LINDAT/CLARIN repository</param>\n" +
" <param name=\"officialname\">LINDAT/CLARIN repository</param>\n" +
" <param name=\"enabled\">true</param>\n" +
" </concept>\n" +
" </category>\n" +
" <category claim=\"true\" id=\"clarin::subcommunity\" label=\"CLARIN communities\">\n" +
" <concept claim=\"true\" id=\"clarin::subcommunity::1\" label=\"CLARIN-D\">\n" +
" <param name=\"fullname\">CLARIN-D</param>\n" +
" <param name=\"homepageUrl\">https://www.clarin-d.de/en/</param>\n" +
" <param name=\"suggestedAcknowledgement\"/>\n" +
" <param name=\"example\">http://www.lrec-conf.org/proceedings/lrec2018/pdf/504.pdf</param>\n"
+
" <param name=\"nation\">Germany</param>\n" +
" </concept>\n" +
" </category>\n" +
" <category claim=\"false\" id=\"clarin::zenodocommunities\" label=\"CLARIN Zenodo Communities\"/>\n"
+
" <category claim=\"false\" id=\"clarin::organizations\" label=\"CLARIN Organizations\"/>\n" +
"</context>",
"<context id=\"dh-ch\" label=\"Digital Humanities and Cultural Heritage\" type=\"community\">\n" +
" <param name=\"status\">all</param>\n" +
" <param name=\"description\">This community gathers research results, data, scientific publications and projects related to the domain of Digital Humanities. This broad definition includes Humanities, Cultural Heritage, History, Archaeology and related fields.</param>\n"
+
" <param name=\"logourl\">http://sanmamante.org/DH_CH_logo.png</param>\n" +
" <param name=\"name\">Digital Humanities and Cultural Heritage</param>\n" +
" <param name=\"manager\">ileniagalluccio87@gmail.com,achille.felicetti@gmail.com,paolo.manghi@isti.cnr.it,tim.evans@york.ac.uk</param>\n"
+
" <param name=\"subject\">modern art,monuments,europeana data model,sites,field walking,frescoes,LIDO metadata schema,art history,excavation,Arts and Humanities General,cities,coins,temples,numismatics,lithics,roads,environmental archaeology,digital cultural heritage,archaeological reports,history,CRMba,churches,cultural heritage,archaeological stratigraphy,religious art,buidings,digital humanities,survey,archaeological sites,linguistic studies,bioarchaeology,architectural orders,palaeoanthropology,fine arts,europeana,CIDOC CRM,decorations,classic art,stratigraphy,digital archaeology,intangible cultural heritage,walls,humanities,chapels,CRMtex,Language and Literature,paintings,archaeology,fair data,mosaics,burials,architecture,medieval art,castles,CARARE metadata schema,statues,natural language processing,inscriptions,CRMsci,vaults,contemporary art,Arts and Humanities,CRMarchaeo,pottery,site,architectural,vessels</param>\n"
+
" <param name=\"suggestedAcknowledgement\">The present work has been partially supported by the PARTHENOS project, funded by the European Commission (Grant Agreement No. 654119) under the HORIZON 2020 - INFRADEV-4-2014/2015 call</param>\n"
+
" <param name=\"zenodoCommunity\">oac_dh-ch</param>\n" +
" <param name=\"creationdate\">2018-03-01T12:00:00</param>\n" +
" <category claim=\"false\" id=\"dh-ch::projects\" label=\"DH-CH Projects\">\n" +
" <concept claim=\"false\" id=\"dh-ch::projects::1\" label=\"Pooling Activities, Resources and Tools for Heritage E-research Networking, Optimization and Synergies\">\n"
+
" <param name=\"projectfullname\">Pooling Activities, Resources and Tools for Heritage E-research Networking, Optimization and Synergies</param>\n"
+
" <param name=\"suggestedAcknowledgement\">The present work has been partially supported by the PARTHENOS project, funded by the European Commission (Grant Agreement No. 654119) under the HORIZON 2020 - INFRADEV-4-2014/2015 call</param>\n"
+
" <param name=\"rule\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">654119</param>\n" +
" <param name=\"url\">http://www.parthenos-project.eu</param>\n" +
" <param name=\"funder\">EC</param>\n" +
" <param name=\"acronym\">PARTHENOS</param>\n" +
" </concept>\n" +
" </category>\n" +
" <category claim=\"false\" id=\"dh-ch::contentproviders\" label=\"DH-CH Content providers\">\n" +
" <concept claim=\"false\" id=\"dh-ch::contentproviders::2\" label=\"The UK's largest collection of digital research data in the social sciences and humanities\">\n"
+
" <param name=\"openaireId\">re3data_____::9ebe127e5f3a0bf401875690f3bb6b81</param>\n" +
" <param name=\"name\">The UK's largest collection of digital research data in the social sciences and humanities</param>\n"
+
" <param name=\"officialname\">UK Data Archive</param>\n" +
" <param name=\"enabled\">true</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"dh-ch::contentproviders::3\" label=\"Journal of Data Mining and Digital Humanities\">\n"
+
" <param name=\"openaireId\">doajarticles::c6cd4b532e12868c1d760a8d7cda6815</param>\n" +
" <param name=\"name\">Journal of Data Mining and Digital Humanities</param>\n" +
" <param name=\"officialname\">Journal of Data Mining and Digital Humanities</param>\n" +
" <param name=\"enabled\">true</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"dh-ch::contentproviders::6\" label=\"Frontiers in Digital Humanities\">\n"
+
" <param name=\"openaireId\">doajarticles::a6de4499bb87bf3c01add0a9e2c9ed0b</param>\n" +
" <param name=\"name\">Frontiers in Digital Humanities</param>\n" +
" <param name=\"officialname\">Frontiers in Digital Humanities</param>\n" +
" <param name=\"enabled\">true</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"dh-ch::contentproviders::7\" label=\"Il Capitale Culturale: Studies on the Value of Cultural Heritage\">\n"
+
" <param name=\"openaireId\">doajarticles::6eb31d13b12bc06bbac06aef63cf33c9</param>\n" +
" <param name=\"name\">Il Capitale Culturale: Studies on the Value of Cultural Heritage</param>\n"
+
" <param name=\"officialname\">Il Capitale Culturale: Studies on the Value of Cultural Heritage</param>\n"
+
" <param name=\"enabled\">true</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"dh-ch::contentproviders::8\" label=\"Conservation Science in Cultural Heritage\">\n"
+
" <param name=\"openaireId\">doajarticles::0da84e9dfdc8419576169e027baa8028</param>\n" +
" <param name=\"name\">Conservation Science in Cultural Heritage</param>\n" +
" <param name=\"officialname\">Conservation Science in Cultural Heritage</param>\n" +
" <param name=\"enabled\">true</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"dh-ch::contentproviders::9\" label=\"Electronic Archiving System\">\n"
+
" <param name=\"openaireId\">re3data_____::84e123776089ce3c7a33db98d9cd15a8</param>\n" +
" <param name=\"name\">Electronic Archiving System</param>\n" +
" <param name=\"officialname\">EASY</param>\n" +
" <param name=\"enabled\">true</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"dh-ch::contentproviders::10\" label=\"DANS-KB Harvester\">\n" +
" <param name=\"openaireId\">openaire____::c5502a43e76feab55dd00cf50f519125</param>\n" +
" <param name=\"name\">DANS-KB Harvester</param>\n" +
" <param name=\"officialname\">Gemeenschappelijke Harvester DANS-KB</param>\n" +
" <param name=\"enabled\">true</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"dh-ch::contentproviders::11\" label=\"ads\">\n" +
" <param name=\"openaireId\">re3data_____::a48f09c562b247a9919acfe195549b47</param>\n" +
" <param name=\"name\">ads</param>\n" +
" <param name=\"officialname\">Archaeology Data Service</param>\n" +
" <param name=\"enabled\">true</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"dh-ch::contentproviders::12\" label=\"\">\n" +
" <param name=\"openaireId\">opendoar____::97275a23ca44226c9964043c8462be96</param>\n" +
" <param name=\"name\">KNAW Repository</param>\n" +
" <param name=\"officialname\">KNAW Repository</param>\n" +
" <param name=\"enabled\">true</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"dh-ch::contentproviders::13\" label=\"Internet Archaeology\">\n"
+
" <param name=\"openaireId\">doajarticles::2899208a99aa7d142646e0a80bfeef05</param>\n" +
" <param name=\"name\">Internet Archaeology</param>\n" +
" <param name=\"officialname\">Internet Archaeology</param>\n" +
" <param name=\"enabled\">true</param>\n" +
" <param name=\"selcriteria\"/>\n" +
" </concept>\n" +
" </category>\n" +
"</context>\n",
"<context id=\"ni\" label=\"Neuroinformatics\" type=\"community\">\n" +
" <param name=\"status\">all</param>\n" +
" <param name=\"description\">The neuroinformatics dashboard gathers research outputs from the 'neuroinformatics' community at large including the fields of: neuroscience, neuroinformatics, brain imaging databases and standards, brain imaging techniques, neuroimaging methods including statistics and machine learning. The dashboard covers a wide range of imaging methods including (but not limited to): MRI, TEP, EEG, MEG, and studies involving human participants as well as animal studies.</param>\n"
+
" <param name=\"logourl\">https://docs.google.com/drawings/u/0/d/10e191xGoGf4uaRluMqbt_7cCj6LSCs2a29im4CmWjqU/export/png</param>\n"
+
" <param name=\"name\">Neuroinformatics</param>\n" +
" <param name=\"manager\">sorina.pop@creatis.insa-lyon.fr,camille.maumet@inria.fr,christian.barillot@irisa.fr,xavier.rolland@irisa.fr,axel.bonnet@creatis.insa-lyon.fr,paolo.manghi@isti.cnr.it</param>\n"
+
" <param name=\"subject\">brain mapping,brain imaging,electroencephalography,arterial spin labelling,brain fingerprinting,brain,neuroimaging,Multimodal Brain Image Analysis,fMRI,neuroinformatics,fetal brain,brain ultrasonic imaging,topographic brain mapping,diffusion tensor imaging,computerized knowledge assessment,connectome mapping,brain magnetic resonance imaging,brain abnormalities</param>\n"
+
" <param name=\"suggestedAcknowledgement\"/>\n" +
" <param name=\"zenodoCommunity\">oac_ni</param>\n" +
" <param name=\"creationdate\">2018-03-01T12:00:00</param>\n" +
" <category claim=\"false\" id=\"ni::projects\" label=\"NI Content providers\"/>\n" +
" <category claim=\"false\" id=\"ni::contentproviders\" label=\"NI Content providers\">\n" +
" <concept claim=\"false\" id=\"ni::contentproviders::1\" label=\"OpenNeuro\">\n" +
" <param name=\"openaireId\">re3data_____::5b9bf9171d92df854cf3c520692e9122</param>\n" +
" <param name=\"name\">Formerly:OpenFMRI</param>\n" +
" <param name=\"officialname\">OpenNeuro</param>\n" +
" <param name=\"enabled\">true</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"ni::contentproviders::2\" label=\"RIO\">\n" +
" <param name=\"openaireId\">doajarticles::c7d3de67dc77af72f6747157441252ec</param>\n" +
" <param name=\"name\">Research Ideas and Outcomes</param>\n" +
" <param name=\"officialname\">Research Ideas and Outcomes</param>\n" +
" <param name=\"enabled\">true</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"ni::contentproviders::3\" label=\"NITRC\">\n" +
" <param name=\"openaireId\">re3data_____::8515794670370f49c1d176c399c714f5</param>\n" +
" <param name=\"name\">Neuroimaging Informatics Tools and Resources Clearinghouse</param>\n"
+
" <param name=\"officialname\">NITRC</param>\n" +
" <param name=\"enabled\">true</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"ni::contentproviders::4\" label=\"FRONTIERSNI\">\n" +
" <param name=\"openaireId\">doajarticles::d640648c84b10d425f96f11c3de468f3</param>\n" +
" <param name=\"name\">Frontiers in Neuroinformatics</param>\n" +
" <param name=\"officialname\">Frontiers in Neuroinformatics</param>\n" +
" <param name=\"enabled\">true</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"ni::contentproviders::5\" label=\"NeuroImage: Clinical\">\n" +
" <param name=\"openaireId\">doajarticles::0c0e74daa5d95504eade9c81ebbd5b8a</param>\n" +
" <param name=\"name\">NeuroImage: Clinical</param>\n" +
" <param name=\"officialname\">NeuroImage: Clinical</param>\n" +
" <param name=\"enabled\">true</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"ni::contentproviders::6\" label=\"NeuroVault\">\n" +
" <param name=\"openaireId\">rest________::fb1a3d4523c95e63496e3bc7ba36244b</param>\n" +
" <param name=\"name\">NeuroVault</param>\n" +
" <param name=\"officialname\">NeuroVault</param>\n" +
" <param name=\"enabled\">true</param>\n" +
" </concept>\n" +
" </category>\n" +
"</context>\n",
"<context id=\"instruct\" label=\"Instruct-ERIC\" type=\"ri\">\n" +
" <param name=\"status\">all</param>\n" +
" <param name=\"description\">Instruct-ERIC is the European Research Infrastructure for Structural Biology</param>\n"
+
" <param name=\"logourl\">https://instruct-eric.eu/templates/instructeric/images/logos/instruct-eric-logo-noline.png</param>\n"
+
" <param name=\"name\">Instruct-ERIC</param>\n" +
" <param name=\"manager\">claudia@instruct-eric.eu,carazo@cnb.csic.es,echrysina@eie.gr,susan@instruct-eric.eu,naomi@instruct-eric.eu,natalie@instruct-eric.eu,pmarie@igbmc.fr,darren.hart@ibs.fr,claudia@strubi.ox.ac.uk,paolo.manghi@isti.cnr.it</param>\n"
+
" <param name=\"subject\"/>\n" +
" <param name=\"suggestedAcknowledgement\">The authors acknowledge the support and the use of resources of Instruct-ERIC.</param>\n"
+
" <param name=\"suggestedAcknowledgement\">The authors acknowledge the support and the use of resources of Instruct (PID # or APPID #), a Landmark ESFRI project</param>\n"
+
" <param name=\"zenodoCommunity\">oac_instruct</param>\n" +
" <param name=\"creationdate\">2018-03-01T12:00:00</param>\n" +
" <category claim=\"false\" id=\"instruct::projects\" label=\"Instruct-ERIC Projects\">\n" +
" <concept claim=\"false\" id=\"instruct::projects::1\" label=\"Authentication and Authorisation For Research and Collaboration\">\n"
+
" <param name=\"projectfullname\">Authentication and Authorisation For Research and Collaboration</param>\n"
+
" <param name=\"rule\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">730941</param>\n" +
" <param name=\"url\"/>\n" +
" <param name=\"funding\">H2020-EINFRA-2016-1</param>\n" +
" <param name=\"acronym\">AARC2</param>\n" +
" <param name=\"funder\">EC</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"instruct::projects::2\" label=\"Building data bridges between biological and medical infrastructures in Europe\">\n"
+
" <param name=\"projectfullname\">Building data bridges between biological and medical infrastructures in Europe</param>\n"
+
" <param name=\"rule\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">284209</param>\n" +
" <param name=\"url\"/>\n" +
" <param name=\"funding\">FP7-INFRASTRUCTURES-2011-1</param>\n" +
" <param name=\"funder\">EC</param>\n" +
" <param name=\"acronym\">BioMedBridges</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"instruct::projects::3\" label=\"Transnational access and enhancement of integrated Biological Structure determination at synchrotron X-ray radiation facilities\">\n"
+
" <param name=\"projectfullname\">Transnational access and enhancement of integrated Biological Structure determination at synchrotron X-ray radiation facilities</param>\n"
+
" <param name=\"rule\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">283570</param>\n" +
" <param name=\"url\"/>\n" +
" <param name=\"funding\">FP7-INFRASTRUCTURES-2011-1</param>\n" +
" <param name=\"funder\">EC</param>\n" +
" <param name=\"acronym\">BioStruct-X</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"instruct::projects::4\" label=\"Coordinated Research Infrastructures Building Enduring Life-science services\">\n"
+
" <param name=\"projectfullname\">Coordinated Research Infrastructures Building Enduring Life-science services</param>\n"
+
" <param name=\"rule\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">654248</param>\n" +
" <param name=\"url\"/>\n" +
" <param name=\"funding\">H2020-INFRADEV-1-2014-1</param>\n" +
" <param name=\"funder\">EC</param>\n" +
" <param name=\"acronym\">CORBEL</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"instruct::projects::5\" label=\"Infrastructure for NMR, EM and X-rays for translational research\">\n"
+
" <param name=\"projectfullname\">Infrastructure for NMR, EM and X-rays for translational research</param>\n"
+
" <param name=\"rule\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">653706</param>\n" +
" <param name=\"url\"/>\n" +
" <param name=\"funding\">H2020-INFRAIA-2014-2015</param>\n" +
" <param name=\"funder\">EC</param>\n" +
" <param name=\"acronym\">iNEXT</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"instruct::projects::6\" label=\"Integrated Structural Biology Infrastructure\">\n"
+
" <param name=\"projectfullname\">Integrated Structural Biology Infrastructure</param>\n" +
" <param name=\"rule\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">211252</param>\n" +
" <param name=\"url\"/>\n" +
" <param name=\"funding\">FP7-INFRASTRUCTURES-2007-1</param>\n" +
" <param name=\"funder\">EC</param>\n" +
" <param name=\"acronym\">INSTRUCT</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"instruct::projects::7\" label=\"Releasing the full potential of Instruct to expand and consolidate infrastructure services for integrated structural life science research\">\n"
+
" <param name=\"projectfullname\">Releasing the full potential of Instruct to expand and consolidate infrastructure services for integrated structural life science research</param>\n"
+
" <param name=\"rule\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">731005</param>\n" +
" <param name=\"url\"/>\n" +
" <param name=\"funding\">H2020-INFRADEV-2016-1</param>\n" +
" <param name=\"funder\">EC</param>\n" +
" <param name=\"acronym\">INSTRUCT-ULTRA</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"instruct::projects::8\" label=\"Opening Synchrotron Light for Experimental Science and Applications in the Middle East\">\n"
+
" <param name=\"projectfullname\">Opening Synchrotron Light for Experimental Science and Applications in the Middle East</param>\n"
+
" <param name=\"rule\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">730943</param>\n" +
" <param name=\"url\"/>\n" +
" <param name=\"funding\">H2020-INFRASUPP-2016-1</param>\n" +
" <param name=\"funder\">EC</param>\n" +
" <param name=\"acronym\">OPEN SESAME</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"instruct::projects::9\" label=\"Infrastructure for Protein Production Platforms\">\n"
+
" <param name=\"projectfullname\">Infrastructure for Protein Production Platforms</param>\n"
+
" <param name=\"rule\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">227764</param>\n" +
" <param name=\"url\"/>\n" +
" <param name=\"funding\">FP7-INFRASTRUCTURES-2008-1</param>\n" +
" <param name=\"funder\">EC</param>\n" +
" <param name=\"acronym\">PCUBE</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"instruct::projects::10\" label=\"European Vaccine Research and Development Infrastructure\">\n"
+
" <param name=\"projectfullname\">European Vaccine Research and Development Infrastructure</param>\n"
+
" <param name=\"rule\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">730964</param>\n" +
" <param name=\"url\"/>\n" +
" <param name=\"funding\">H2020-INFRAIA-2016-1</param>\n" +
" <param name=\"funder\">EC</param>\n" +
" <param name=\"acronym\">TRAMSVAC2</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"instruct::projects::11\" label=\"World-wide E-infrastructure for structural biology\">\n"
+
" <param name=\"projectfullname\">World-wide E-infrastructure for structural biology</param>\n"
+
" <param name=\"rule\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">675858</param>\n" +
" <param name=\"url\"/>\n" +
" <param name=\"funding\">EC | H2020 | RIA</param>\n" +
" <param name=\"funder\">EC</param>\n" +
" <param name=\"acronym\">West-Life</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"instruct::projects::12\" label=\"RI-VIS\">\n" +
" <param name=\"projectfullname\">Expanding research infrastructure visibility to strengthen strategic partnerships</param>\n"
+
" <param name=\"acronym\">RI-VIS</param>\n" +
" <param name=\"CD_PROJECT_NUMBER\">824063</param>\n" +
" <param name=\"funder\">EC</param>\n" +
" <param name=\"openaireId\">corda__h2020::af93b591b76991d8437993a8f6fc6538</param>\n" +
" </concept>\n" +
" </category>\n" +
" <category claim=\"false\" id=\"instruct::contentproviders\" label=\"Instruct-ERIC Content providers\"/>\n"
+
" <category claim=\"false\" id=\"instruct::zenodocommunities\" label=\"Instruct-ERIC Zenodo Communities\">\n"
+
" <concept claim=\"false\" id=\"instruct::zenodocommunities::1\" label=\"Instruct\">\n" +
" <param name=\"zenodoid\">instruct</param>\n" +
" <param name=\"selcriteria\"/>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"instruct::zenodocommunities::2\" label=\"West-Life Virtual Research Environment for Structural Biology\">\n"
+
" <param name=\"zenodoid\">west-life</param>\n" +
" <param name=\"selcriteria\"/>\n" +
" </concept>\n" +
" </category>\n" +
" <category claim=\"false\" id=\"instruct::organizations\" label=\"Instruct-ERIC Organizations\">\n"
+
" <concept claim=\"false\" id=\"instruct::organizations::1\" label=\"FRISBI\">\n" +
" <param name=\"name\">FRISBI</param>\n" +
" <param name=\"logourl\">aHR0cDovL2ZyaXNiaS5ldS9zdGF0aWMvaW1hZ2VzL2xvZ29zL2xvZ28tZnJpc2JpLnBuZw==</param>\n"
+
" <param name=\"websiteurl\">aHR0cDovL2ZyaXNiaS5ldS8=</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"instruct::organizations::2\" label=\"RI-VIS\">\n" +
" <param name=\"name\">RI-VIS</param>\n" +
" <param name=\"logourl\">aHR0cHM6Ly9yaS12aXMuZXUvbmV0d29yay9yaXZpcy90ZW1wbGF0ZXMvcml2aXMvaW1hZ2VzL1JJLVZJU0xvZ29GaW5hbC0wNi5wbmc=</param>\n"
+
" <param name=\"websiteurl\">aHR0cHM6Ly9yaS12aXMuZXU=</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"instruct::organizations::3\" label=\"CIISB\">\n" +
" <param name=\"name\">CIISB</param>\n" +
" <param name=\"logourl\">aHR0cDovL2JpYy5jZWl0ZWMuY3ovZmlsZXMvMjkyLzEyNS5KUEc=</param>\n" +
" <param name=\"websiteurl\">aHR0cHM6Ly93d3cuY2lpc2Iub3Jn</param>\n" +
" </concept>\n" +
" </category>\n" +
"</context>\n",
"<context id=\"elixir-gr\" label=\"ELIXIR GR\" type=\"ri\">\n" +
" <param name=\"status\">all</param>\n" +
" <param name=\"description\">ELIXIR-GR enhances the potential of the Greek bioinformatics community to offer open, easily accessible and state -of- the- art services to the Greek and the international academic community and other stakeholders, such as industry and the health sector. More importantly, by providing these services, the infrastructure facilitates discoveries in the field of the life-sciences, having strong spill over effects in promoting innovation in sectors such as discovery of new drug targets and development of novel therapeutic agents, development of innovative diagnostics, personalized medicine, and development of innovative biotechnological products and processes.</param>\n"
+
" <param name=\"logourl\">https://elixir-greece.org/sites/default/files/ELIXIR_GREECE_white_background.png</param>\n"
+
" <param name=\"name\">The Greek National Node of the ESFRI European RI ELIXIR</param>\n" +
" <param name=\"manager\">vergoulis@imis.athena-innovation.gr,schatz@imis.athena-innovation.gr,paolo.manghi@isti.cnr.it</param>\n"
+
" <param name=\"subject\"/>\n" +
" <param name=\"suggestedAcknowledgement\"/>\n" +
" <param name=\"zenodoCommunity\">oaa_elixir-gr</param>\n" +
" <param name=\"creationdate\">2018-03-01T12:00:00</param>\n" +
" <category claim=\"false\" id=\"elixir-gr::projects\" label=\"ELIXIR GR Projects\">\n" +
" <concept claim=\"false\" id=\"ni::projects::12\" label=\"\">\n" +
" <param name=\"projectfullname\">BIO-INFORMATICS RESEARCH NETWORK COORDINATING CENTER (BIRN-CC)</param>\n"
+
" <param name=\"acronym\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">1U24RR025736-01</param>\n" +
" <param name=\"funder\">NIH</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"ni::projects::13\" label=\"\">\n" +
" <param name=\"projectfullname\">COLLABORATIVE RESEARCH: The Cognitive Neuroscience of Category Learning</param>\n"
+
" <param name=\"acronym\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">0223843</param>\n" +
" <param name=\"funder\">NSF</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"ni::projects::14\" label=\"\">\n" +
" <param name=\"projectfullname\">The Cognitive Atlas: Developing an Interdisciplinary Knowledge Base Through Socia</param>\n"
+
" <param name=\"acronym\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">5R01MH082795-05</param>\n" +
" <param name=\"funder\">NIH</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"ni::projects::15\" label=\"\">\n" +
" <param name=\"projectfullname\">Fragmented early life environmental and emotional / cognitive vulnerabilities</param>\n"
+
" <param name=\"acronym\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">1P50MH096889-01A1</param>\n" +
" <param name=\"funder\">NIH</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"ni::projects::16\" label=\"\">\n" +
" <param name=\"projectfullname\">Enhancement of the 1000 Functional Connectome Project</param>\n"
+
" <param name=\"acronym\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">1R03MH096321-01A1</param>\n" +
" <param name=\"funder\">TUBITAK</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"ni::projects::17\" label=\"\">\n" +
" <param name=\"projectfullname\">CRCNS Data Sharing: An open data repository for cognitive neuroscience: The OpenfMRI Project</param>\n"
+
" <param name=\"acronym\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">1131441</param>\n" +
" <param name=\"funder\">NSF</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"ni::projects::18\" label=\"\">\n" +
" <param name=\"projectfullname\">Enhancing Human Cortical Plasticity: Visual Psychophysics and fMRI</param>\n"
+
" <param name=\"acronym\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">0121950</param>\n" +
" <param name=\"funder\">NSF</param>\n" +
" </concept>\n" +
" <concept claim=\"false\" id=\"ni::projects::18\" label=\"\">\n" +
" <param name=\"projectfullname\">Transforming statistical methodology for neuroimaging meta-analysis.</param>\n"
+
" <param name=\"acronym\"/>\n" +
" <param name=\"CD_PROJECT_NUMBER\">100309</param>\n" +
" <param name=\"funder\">WT</param>\n" +
" </concept>\n" +
" </category>" +
" <category claim=\"false\" id=\"elixir-gr::contentproviders\" label=\"Elixir-GR Content providers\">\n"
+
" <concept claim=\"false\" id=\"elixir-gr::contentproviders::1\" label=\"bio.tools\">\n" +
" <param name=\"openaireId\">rest________::b8e502674c3c3499d5374e9b2ea6d8d5</param>\n" +
" <param name=\"name\">bio.tools</param>\n" +
" <param name=\"officialname\">bio.tools</param>\n" +
" <param name=\"enabled\">false</param>\n" +
" <param name=\"selcriteria\"/>\n" +
" </concept>\n" +
" </category>\n" +
" <category claim=\"false\" id=\"elixir-gr::zenodocommunities\" label=\"Elixir-GR Zenodo Communities\"/>\n"
+
" <category claim=\"false\" id=\"elixir-gr::organizations\" label=\"Elixir-GR Organizations\">\n" +
" <concept claim=\"false\" id=\"elixir-gr::organizations::1\" label=\"ATHENA RC\">\n" +
" <param name=\"name\">ATHENA RC</param>\n" +
" <param name=\"logourl\">aHR0cHM6Ly9lbGl4aXItZ3JlZWNlLm9yZy9zaXRlcy9kZWZhdWx0L2ZpbGVzL3N0eWxlcy90aHVtYm5haWwvcHVibGljL3BhcnRuZXJfbG9nb3MvYXRoZW5hX2xvZ28uanBnP2l0b2s9VXdGWFNpZng=</param>\n"
+
" <param name=\"websiteurl\">aHR0cHM6Ly93d3cuYXRoZW5hLWlubm92YXRpb24uZ3IvZW4=</param>\n" +
" </concept>\n" +
" </category><!-- <category claim=\"false\" id=\"elixir-gr::resultorganizations\" label=\"Elixir-GR Results through organizations\"/> -->\n"
+
"</context>");
private QueryInformationSystem queryInformationSystem;
private Map<String, String> map;
@BeforeEach
public void setUp() {
queryInformationSystem = new QueryInformationSystem();
queryInformationSystem.setContextRelationResult(communityContext);
}
String contextInfo1 = "{\"id\":\"eut\",\"description\":null,\"type\":null,\"zenodocommunity\":null,\"name\":null,\"projectList\":[],\"datasourceList\":[\"opendoar____::39e4973ba3321b80f37d9b55f63ed8b8\",\"opendoar____::cda72177eba360ff16b7f836e2754370\",\"opendoar____::71f6278d140af599e06ad9bf1ba03cb0\",\"opendoar____::f5c59267dae7d123f54b741a76f28f84\",\"opendoar____::532a082cc38eaffa923d73bce41b4061\",\"opendoar____::00a03ec6533ca7f5c644d198d815329c\",\"opendoar____::33a854e247155d590883b93bca53848a\"],\"subject\":null}" ;
String contextInfo2 ="{\"id\":\"knowmad\",\"description\":null,\"type\":null,\"zenodocommunity\":null,\"name\":null,\"projectList\":[],\"datasourceList\":[\"issn___print::81db6614a3fa07becf706193d4754f30\",\"doajarticles::71eae002613af3569ea42b7093eefdbd\",\"doajarticles::daf53452e1199952d6c95ee7d0088d35\",\"issn___print::ff1a02f622ff006edc668e55fc865ae8\",\"doajarticles::14c007581eb12d843050ebf0493f2254\",\"issn__online::14c007581eb12d843050ebf0493f2254\",\"doajarticles::19a7308c7287b3784aacdb1979141c50\",\"doajarticles::c28985d2363f1ed20048dfd682ee14be\",\"issn__online::c28985d2363f1ed20048dfd682ee14be\",\"doajarticles::81db6614a3fa07becf706193d4754f30\",\"doajarticles::588fc0f98218e9f29a0dabe1182851c4\",\"doajarticles::5ccbe475390dfa642a356c7fd678b70a\",\"doajarticles::cf63b988539f8d28ed366220691f751b\",\"doajarticles::c03353a080ac66c37a1f6aa2de05ca63\",\"issn__online::efec4cc1b1143f69d7d0954a2e9b18b6\",\"doajarticles::25ddd7bb737fc8b027b455f6712111a0\",\"doajarticles::ca2e3cc507ff73298333ed53177e9916\",\"doajarticles::220ab67f748963b6932600585452ad83\",\"doajarticles::b718013941a35a86b17b9b57aca9d260\",\"doajarticles::934e4b68deaeee0781f18a6a6e4fd906\",\"doajarticles::43587737046be23d692860e3212d6966\",\"doajarticles::23a27fb45b9af1f2b57632b7ceb98448\",\"doajarticles::9d32313b109db4f024eb1c802ad4e353\",\"fairsharing_::b4944963b5c83d545c3d3022bcf03282\",\"doajarticles::b5a2cadc830f94ceb2f8035369cf66a1\",\"doajarticles::8d64614210c51d4bc9e1470bbe1b5607\",\"doajarticles::e258604e7e1132683570d4178e9bec8f\",\"doajarticles::260c4ba804c4c08842ad39a6e8fd2a97\",\"doajarticles::8c9f0a0c20cb062a0ab7823af8262d0e\",\"issn__online::ef2866d8e4561162a1b115c24ebd7887\",\"doajarticles::de16206a48e58e344ef049670a1a0134\",\"doajarticles::96621c5056169f56ff3131ea90aa07c9\",\"issn__online::4558a062701b28ec0b4a6b2f0fbe8d09\",\"issn___print::5571b62bd2e69e2311990fceb7fe2e3a\",\"doajarticles::c61ecda4a5a75b94a28b1c782008e64c\",\"doajarticles::fd825a036d04fcdf0ab805d87e16d1de\",\"issn___print::61d35d3f7e7f635fa9818eb5c5724833\",\"doajarticles::685e5ac5fb55c74ee8a2b266923e1f1d\",\"doajarticles::b99614718f7a6545b1eed9b68d3441de\",\"doajarticles::7d2d2e0095bf1ec755bf3e39d31a5bcb\",\"doajarticles::6124a1bc19d8f538c1bb45da8fda914b\",\"issn___print::6f2e006697b7a4f9d6e2e4d61d9e87c2\",\"issn___print::24d6c4cc60c9446680a4bf6464f232cc\",\"issn___print::0482ed6012f16fa029dd0434b644cb90\",\"issn___print::74d68388e8ad50f80b754f5036c80fcf\",\"issn__online::22b586e63e4962054a332a538e5d2b71\",\"issn___print::4bceffb60baed7f1e3f25b171b8fcf63\",\"issn__online::4074709fc410b3be61ea1769634ae8ff\",\"issn__online::d787423124beb54d12945b8fb6effe17\",\"issn__online::92d6a58173da7e479557acb8701da9dc\",\"issn___print::36813e86616b329b06101afab0f2d115\",\"issn___print::60f102cf59ddbfc2297dbfd2efe1c006\",\"issn__online::e2bedb8ffd0dd9a05af59c2651eb4200\",\"issn___print::3a5263873041ce993d856c3a08b87e66\",\"issn___print::c0118216b90b4ec13c4344c302eb1cc2\",\"issn___print::36cb3b21af46a23327d120d848ac5256\",\"issn___print::f6528b255fa5b915efddf5bdd4b12bef\",\"issn___print::50ae07b765e6c893d93701b63dc885eb\",\"issn___print::1efd4ac736f64f83bc537339bf112882\",\"issn___print::f46704a2eb1338c3524391c7fcdc5f50\",\"issn__online::6e823cb8d73afda60e12a0ce7ec65fe3\",\"doajarticles::df6746f5d17a6c27cf1033e2888b934d\",\"issn___print::8a8a700ac926378b330e57d7faf5948e\",\"issn___print::6fbc352ab2267a17490b922033c2ce8c\",\"issn___print::692e57ca190e52967683bca19dcc6200\",\"issn___print::4f657189126a3c51cf8f2d58410d09b8\",\"issn___print::2fd71afb352b4ec1ee58b2bfa4d536da\",\"doajarticles::e91e4788bfb04277b61416fd184416b2\",\"issn__online::3097c43f11470b27e74f040cf267eedf\",\"doajarticles::942ba9d488531f3a60633b716db0b05c\",\"doajarticles::1aefeb2e98d29b17473e3f4dbcc5000e\",\"issn___print::223b857892c5de7247b3f906e1e1b96a\",\"doajarticles::b64f9c27d2c8899df904930cd6d2316a\"],\"subject\":null}" ;
String contextInfo3 ="{\"id\":\"ni\",\"description\":null,\"type\":null,\"zenodocommunity\":null,\"name\":null,\"projectList\":[\"nih_________::412379d1e2683a9571405e6621d3cdeb\",\"nsf_________::1e685a3d3ca1d62192bb51d42d44c6d1\",\"nsf_________::8ff441b675f2c62061f15210b05c1584\",\"nih_________::2d8bd32ed8cb2f0b0d4508df61d494dd\",\"nsf_________::e71b0a0f6a347d76816adb29b322441c\",\"nih_________::c27d60d28c9bc5cf17dd7ae7ad2d4ab4\",\"nih_________::b28919975c85cfee114e442c30c918c6\",\"wt__________::d709ac8e1ed393d036c895d239d825a4\"],\"datasourceList\":[\"re3data_____::5b9bf9171d92df854cf3c520692e9122\",\"doajarticles::c7d3de67dc77af72f6747157441252ec\",\"re3data_____::8515794670370f49c1d176c399c714f5\",\"doajarticles::d640648c84b10d425f96f11c3de468f3\",\"doajarticles::0c0e74daa5d95504eade9c81ebbd5b8a\",\"rest________::fb1a3d4523c95e63496e3bc7ba36244b\",\"opendoar____::7e7757b1e12abcb736ab9a754ffb617a\"],\"subject\":null}" ;
@Test
void test1() {
void test1() throws IOException {
ObjectMapper mapper = new ObjectMapper();
List<ContextInfo> cInfoList = new ArrayList<>();
final Consumer<ContextInfo> consumer = ci -> cInfoList.add(ci);
queryInformationSystem
.getContextRelation(consumer, "contentproviders", ModelSupport.getIdPrefix(Datasource.class));
cInfoList.forEach(c -> System.out.println(new Gson().toJson(c)));
consumer.accept(mapper.readValue(contextInfo1,ContextInfo.class));
consumer.accept(mapper.readValue(contextInfo2,ContextInfo.class));
consumer.accept(mapper.readValue(contextInfo3,ContextInfo.class));
List<Relation> rList = new ArrayList<>();
cInfoList.forEach(cInfo -> Process.getRelation(cInfo).forEach(rList::add));
rList.forEach(r -> {
try {
System.out.println(new ObjectMapper().writeValueAsString(r));
} catch (JsonProcessingException e) {
e.printStackTrace();
}
});
Assertions.assertEquals(34, rList.size());
Assertions.assertEquals(190, rList.size());
Assertions
.assertTrue(
@ -570,11 +57,11 @@ class CreateRelationTest {
.format(
"%s::%s",
Constants.CONTEXT_NS_PREFIX,
DHPUtils.md5("dh-ch"))));
DHPUtils.md5("eut"))));
Assertions
.assertEquals(
10,
7,
rList
.stream()
.filter(
@ -586,13 +73,13 @@ class CreateRelationTest {
.format(
"%s::%s",
Constants.CONTEXT_NS_PREFIX,
DHPUtils.md5("dh-ch"))))
DHPUtils.md5("eut"))))
.collect(Collectors.toList())
.size());
Assertions
.assertEquals(
10,
7,
rList
.stream()
.filter(
@ -604,7 +91,7 @@ class CreateRelationTest {
.format(
"%s::%s",
Constants.CONTEXT_NS_PREFIX,
DHPUtils.md5("dh-ch"))))
DHPUtils.md5("eut"))))
.collect(Collectors.toList())
.size());
@ -619,224 +106,83 @@ class CreateRelationTest {
.format(
"%s::%s",
Constants.CONTEXT_NS_PREFIX,
DHPUtils.md5("dh-ch"))))
DHPUtils.md5("eut"))))
.map(r -> r.getTarget())
.collect(Collectors.toSet());
Assertions
.assertTrue(
tmp.contains("re3data_____::9ebe127e5f3a0bf401875690f3bb6b81") &&
tmp.contains("doajarticles::c6cd4b532e12868c1d760a8d7cda6815") &&
tmp.contains("doajarticles::a6de4499bb87bf3c01add0a9e2c9ed0b") &&
tmp.contains("doajarticles::6eb31d13b12bc06bbac06aef63cf33c9") &&
tmp.contains("doajarticles::0da84e9dfdc8419576169e027baa8028") &&
tmp.contains("re3data_____::84e123776089ce3c7a33db98d9cd15a8") &&
tmp.contains("openaire____::c5502a43e76feab55dd00cf50f519125") &&
tmp.contains("re3data_____::a48f09c562b247a9919acfe195549b47") &&
tmp.contains("opendoar____::97275a23ca44226c9964043c8462be96") &&
tmp.contains("doajarticles::2899208a99aa7d142646e0a80bfeef05"));
tmp.contains("opendoar____::532a082cc38eaffa923d73bce41b4061") &&
tmp.contains("opendoar____::00a03ec6533ca7f5c644d198d815329c") &&
tmp.contains("opendoar____::33a854e247155d590883b93bca53848a") &&
tmp.contains("opendoar____::71f6278d140af599e06ad9bf1ba03cb0") &&
tmp.contains("opendoar____::f5c59267dae7d123f54b741a76f28f84") &&
tmp.contains("opendoar____::cda72177eba360ff16b7f836e2754370") &&
tmp.contains("opendoar____::39e4973ba3321b80f37d9b55f63ed8b8") )
;
Assertions.assertTrue(rList
.stream()
.filter(
r -> r
.getSource()
.equals(
String
.format(
"%s::%s",
Constants.CONTEXT_NS_PREFIX,
DHPUtils.md5("eut"))))
.map(r -> r.getTargetType())
.collect(Collectors.toSet()).stream().allMatch(t -> t.equals("datasource")));
Assertions
.assertEquals(
15,
rList
.stream()
.filter(
r -> r
.getTarget()
.equals(
String
.format(
"%s::%s",
Constants.CONTEXT_NS_PREFIX,
DHPUtils.md5("ni"))))
.collect(Collectors.toList())
.size());
Assertions.assertEquals(7,rList
.stream()
.filter(
r -> r
.getSource()
.equals(
String
.format(
"%s::%s",
Constants.CONTEXT_NS_PREFIX,
DHPUtils.md5("ni"))) &&
r.getTargetType().equals("datasource")).count());
Assertions.assertEquals(8,rList
.stream()
.filter(
r -> r
.getSource()
.equals(
String
.format(
"%s::%s",
Constants.CONTEXT_NS_PREFIX,
DHPUtils.md5("ni"))) &&
r.getTargetType().equals("project")).count());
}
@Test
public void test2() {
List<ContextInfo> cInfoList = new ArrayList<>();
final Consumer<ContextInfo> consumer = ci -> cInfoList.add(ci);
queryInformationSystem
.getContextRelation(consumer, "projects", ModelSupport.getIdPrefix(Project.class));
cInfoList.forEach(c -> System.out.println(new Gson().toJson(c)));
List<Relation> rList = new ArrayList<>();
cInfoList.forEach(cInfo -> Process.getRelation(cInfo).forEach(rList::add));
Assertions.assertEquals(44, rList.size());
Assertions
.assertFalse(
rList
.stream()
.map(r -> r.getSource())
.collect(Collectors.toSet())
.contains(
String
.format(
"%s::%s",
Constants.CONTEXT_NS_PREFIX,
DHPUtils.md5("dh-ch"))));
Assertions
.assertEquals(
2,
rList
.stream()
.filter(
r -> r
.getSource()
.equals(
String
.format(
"%s::%s",
Constants.CONTEXT_NS_PREFIX,
DHPUtils.md5("clarin"))))
.collect(Collectors.toList())
.size());
Assertions
.assertEquals(
2,
rList
.stream()
.filter(
r -> r
.getTarget()
.equals(
String
.format(
"%s::%s",
Constants.CONTEXT_NS_PREFIX,
DHPUtils.md5("clarin"))))
.collect(Collectors.toList())
.size());
Set<String> tmp = rList
.stream()
.filter(
r -> r
.getSource()
.equals(
String
.format(
"%s::%s",
Constants.CONTEXT_NS_PREFIX,
DHPUtils.md5("clarin"))))
.map(r -> r.getTarget())
.collect(Collectors.toSet());
Assertions
.assertTrue(
tmp.contains("corda__h2020::b5a4eb56bf84bef2ebc193306b4d423f") &&
tmp.contains("corda_______::ef782b2d85676aa3e5a907427feb18c4"));
rList.forEach(rel -> {
if (rel.getSourceType().equals("project")) {
String proj = rel.getSource();
Assertions.assertTrue(proj.substring(0, proj.indexOf("::")).length() == 12);
Assertions.assertFalse(proj.startsWith("40|"));
}
});
}
@Test
void test3() {
List<ContextInfo> cInfoList = new ArrayList<>();
final Consumer<ContextInfo> consumer = ci -> cInfoList.add(ci);
MasterDuplicate md1 = new MasterDuplicate();
md1.setMaster("10|fake________::9ebe127e5f3a0bf401875690f3bb6b81");
md1.setDuplicate("10|re3data_____::9ebe127e5f3a0bf401875690f3bb6b81");
queryInformationSystem
.getContextRelation(
consumer, "contentproviders", ModelSupport.getIdPrefix(Datasource.class), Arrays.asList(md1));
cInfoList.forEach(c -> System.out.println(new Gson().toJson(c)));
List<Relation> rList = new ArrayList<>();
cInfoList.forEach(cInfo -> Process.getRelation(cInfo).forEach(rList::add));
rList.forEach(r -> {
try {
System.out.println(new ObjectMapper().writeValueAsString(r));
} catch (JsonProcessingException e) {
e.printStackTrace();
}
});
Assertions.assertEquals(34, rList.size());
Assertions
.assertTrue(
rList
.stream()
.map(r -> r.getSource())
.collect(Collectors.toSet())
.contains(
String
.format(
"%s::%s",
Constants.CONTEXT_NS_PREFIX,
DHPUtils.md5("dh-ch"))));
Assertions
.assertEquals(
10,
rList
.stream()
.filter(
r -> r
.getSource()
.equals(
String
.format(
"%s::%s",
Constants.CONTEXT_NS_PREFIX,
DHPUtils.md5("dh-ch"))))
.collect(Collectors.toList())
.size());
Assertions
.assertEquals(
10,
rList
.stream()
.filter(
r -> r
.getTarget()
.equals(
String
.format(
"%s::%s",
Constants.CONTEXT_NS_PREFIX,
DHPUtils.md5("dh-ch"))))
.collect(Collectors.toList())
.size());
Set<String> tmp = rList
.stream()
.filter(
r -> r
.getSource()
.equals(
String
.format(
"%s::%s",
Constants.CONTEXT_NS_PREFIX,
DHPUtils.md5("dh-ch"))))
.map(r -> r.getTarget())
.collect(Collectors.toSet());
Assertions
.assertTrue(
tmp.contains("fake________::9ebe127e5f3a0bf401875690f3bb6b81") &&
tmp.contains("doajarticles::c6cd4b532e12868c1d760a8d7cda6815") &&
tmp.contains("doajarticles::a6de4499bb87bf3c01add0a9e2c9ed0b") &&
tmp.contains("doajarticles::6eb31d13b12bc06bbac06aef63cf33c9") &&
tmp.contains("doajarticles::0da84e9dfdc8419576169e027baa8028") &&
tmp.contains("re3data_____::84e123776089ce3c7a33db98d9cd15a8") &&
tmp.contains("openaire____::c5502a43e76feab55dd00cf50f519125") &&
tmp.contains("re3data_____::a48f09c562b247a9919acfe195549b47") &&
tmp.contains("opendoar____::97275a23ca44226c9964043c8462be96") &&
tmp.contains("doajarticles::2899208a99aa7d142646e0a80bfeef05"));
}
}