[Extend Measure] added test to verify the new serialization model and the serialization at the level of the result
This commit is contained in:
parent
b5ee457969
commit
eb06474106
|
@ -5,8 +5,6 @@ import java.io.Serializable;
|
|||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import eu.dnetlib.dhp.schema.common.ModelConstants;
|
||||
import eu.dnetlib.dhp.schema.oaf.*;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import eu.dnetlib.dhp.eosc.model.EoscInteroperabilityFramework;
|
||||
|
@ -27,7 +25,8 @@ import eu.dnetlib.dhp.oa.model.community.CommunityInstance;
|
|||
import eu.dnetlib.dhp.oa.model.community.CommunityResult;
|
||||
import eu.dnetlib.dhp.oa.model.community.Context;
|
||||
import eu.dnetlib.dhp.oa.model.graph.GraphResult;
|
||||
|
||||
import eu.dnetlib.dhp.schema.common.ModelConstants;
|
||||
import eu.dnetlib.dhp.schema.oaf.*;
|
||||
|
||||
public class ResultMapper implements Serializable {
|
||||
|
||||
|
@ -231,19 +230,22 @@ public class ResultMapper implements Serializable {
|
|||
|
||||
out.setType(input.getResulttype().getClassid());
|
||||
|
||||
if(Optional.ofNullable(input.getMeasures()).isPresent() && input.getMeasures().size() > 0 && !Constants.DUMPTYPE.EOSC.getType().equals(dumpType)){
|
||||
if (Optional.ofNullable(input.getMeasures()).isPresent() && input.getMeasures().size() > 0
|
||||
&& !Constants.DUMPTYPE.EOSC.getType().equals(dumpType)) {
|
||||
List<Indicator> indicators = new ArrayList<>();
|
||||
input.getMeasures()
|
||||
.forEach(
|
||||
m -> indicators
|
||||
.add(
|
||||
Indicator
|
||||
.newInstance(
|
||||
m.getId(),
|
||||
m.getUnit()
|
||||
.stream()
|
||||
.map(u -> Measure.newInstance(u.getKey(), u.getValue()))
|
||||
.collect(Collectors.toList()))));
|
||||
input
|
||||
.getMeasures()
|
||||
.forEach(
|
||||
m -> indicators
|
||||
.add(
|
||||
Indicator
|
||||
.newInstance(
|
||||
m.getId(),
|
||||
m
|
||||
.getUnit()
|
||||
.stream()
|
||||
.map(u -> Measure.newInstance(u.getKey(), u.getValue()))
|
||||
.collect(Collectors.toList()))));
|
||||
out.setIndicators(indicators);
|
||||
}
|
||||
|
||||
|
@ -498,7 +500,8 @@ public class ResultMapper implements Serializable {
|
|||
Indicator
|
||||
.newInstance(
|
||||
m.getId(),
|
||||
m.getUnit()
|
||||
m
|
||||
.getUnit()
|
||||
.stream()
|
||||
.map(u -> Measure.newInstance(u.getKey(), u.getValue()))
|
||||
.collect(Collectors.toList()))));
|
||||
|
|
|
@ -76,41 +76,6 @@ public class DumpJobTest {
|
|||
|
||||
}
|
||||
|
||||
List<String> communityMap = Arrays
|
||||
.asList(
|
||||
"<community id=\"egi\" label=\"EGI Federation\"/>",
|
||||
"<community id=\"fet-fp7\" label=\"FET FP7\"/>",
|
||||
"<community id=\"fet-h2020\" label=\"FET H2020\"/>",
|
||||
"<community id=\"clarin\" label=\"CLARIN\"/>",
|
||||
"<community id=\"rda\" label=\"Research Data Alliance\"/>",
|
||||
"<community id=\"ee\" label=\"SDSN - Greece\"/>",
|
||||
"<community id=\"dh-ch\" label=\"Digital Humanities and Cultural Heritage\"/>",
|
||||
"<community id=\"fam\" label=\"Fisheries and Aquaculture Management\"/>",
|
||||
"<community id=\"ni\" label=\"Neuroinformatics\"/>",
|
||||
"<community id=\"mes\" label=\"European Marine Science\"/>",
|
||||
"<community id=\"instruct\" label=\"Instruct-ERIC\"/>",
|
||||
"<community id=\"elixir-gr\" label=\"ELIXIR GR\"/>",
|
||||
"<community id=\"aginfra\" label=\"Agricultural and Food Sciences\"/>",
|
||||
"<community id=\"dariah\" label=\"DARIAH EU\"/>",
|
||||
"<community id=\"risis\" label=\"RISIS\"/>",
|
||||
"<community id=\"epos\" label=\"EPOS\"/>",
|
||||
"<community id=\"beopen\" label=\"Transport Research\"/>",
|
||||
"<community id=\"euromarine\" label=\"EuroMarine\"/>",
|
||||
"<community id=\"ifremer\" label=\"Ifremer\"/>",
|
||||
"<community id=\"oa-pg\" label=\"EC Post-Grant Open Access Pilot\"/>",
|
||||
"<community id=\"science-innovation-policy\" label=\"Science and Innovation Policy Studies\"/>",
|
||||
"<community id=\"covid-19\" label=\"COVID-19\"/>",
|
||||
"<community id=\"enermaps\" label=\"Energy Research\"/>");
|
||||
|
||||
private static final String XQUERY = "for $x in collection('/db/DRIVER/ContextDSResources/ContextDSResourceType') "
|
||||
+
|
||||
" where $x//CONFIGURATION/context[./@type='community' or ./@type='ri'] " +
|
||||
" return " +
|
||||
"<community> " +
|
||||
"{$x//CONFIGURATION/context/@id}" +
|
||||
"{$x//CONFIGURATION/context/@label}" +
|
||||
"</community>";
|
||||
|
||||
@BeforeAll
|
||||
public static void beforeAll() throws IOException {
|
||||
workingDir = Files.createTempDirectory(DumpJobTest.class.getSimpleName());
|
||||
|
@ -355,6 +320,204 @@ public class DumpJobTest {
|
|||
|
||||
Assertions.assertEquals("2020-03-23T00:20:51.392Z", gr.getDateofcollection());
|
||||
|
||||
Assertions.assertEquals(7, gr.getIndicators().size());
|
||||
|
||||
Assertions
|
||||
.assertEquals(1, gr.getIndicators().stream().filter(i -> i.getId().equalsIgnoreCase("influence")).count());
|
||||
Assertions
|
||||
.assertEquals(
|
||||
1, gr.getIndicators().stream().filter(i -> i.getId().equalsIgnoreCase("popularity_alt")).count());
|
||||
Assertions
|
||||
.assertEquals(1, gr.getIndicators().stream().filter(i -> i.getId().equalsIgnoreCase("popularity")).count());
|
||||
Assertions
|
||||
.assertEquals(
|
||||
1, gr.getIndicators().stream().filter(i -> i.getId().equalsIgnoreCase("influence_alt")).count());
|
||||
Assertions
|
||||
.assertEquals(1, gr.getIndicators().stream().filter(i -> i.getId().equalsIgnoreCase("impulse")).count());
|
||||
Assertions
|
||||
.assertEquals(1, gr.getIndicators().stream().filter(i -> i.getId().equalsIgnoreCase("downloads")).count());
|
||||
Assertions
|
||||
.assertEquals(1, gr.getIndicators().stream().filter(i -> i.getId().equalsIgnoreCase("views")).count());
|
||||
|
||||
Assertions.assertEquals(2, gr.getIndicators().stream().filter(i -> i.getId().equalsIgnoreCase("influence"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure().stream().count());
|
||||
|
||||
Assertions.assertEquals(2, gr.getIndicators().stream().filter(i -> i.getId().equalsIgnoreCase("influence_alt"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure().stream().count());
|
||||
|
||||
Assertions.assertEquals(2, gr.getIndicators().stream().filter(i -> i.getId().equalsIgnoreCase("popularity"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure().stream().count());
|
||||
|
||||
Assertions.assertEquals(2, gr.getIndicators().stream().filter(i -> i.getId().equalsIgnoreCase("popularity_alt"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure().stream().count());
|
||||
|
||||
Assertions.assertEquals(2, gr.getIndicators().stream().filter(i -> i.getId().equalsIgnoreCase("impulse"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure().stream().count());
|
||||
|
||||
Assertions.assertEquals(1, gr.getIndicators().stream().filter(i -> i.getId().equalsIgnoreCase("downloads"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure().stream().count());
|
||||
|
||||
Assertions.assertEquals(1, gr.getIndicators().stream().filter(i -> i.getId().equalsIgnoreCase("views"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure().stream().count());
|
||||
|
||||
Assertions
|
||||
.assertTrue(
|
||||
gr
|
||||
.getIndicators()
|
||||
.stream()
|
||||
.filter(i -> i.getId().equalsIgnoreCase("influence"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure()
|
||||
.stream()
|
||||
.anyMatch(m -> m.getKey().equals("score") && m.getValue().equals("6.01504990349e-09")));
|
||||
|
||||
Assertions
|
||||
.assertTrue(
|
||||
gr
|
||||
.getIndicators()
|
||||
.stream()
|
||||
.filter(i -> i.getId().equalsIgnoreCase("influence"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure()
|
||||
.stream()
|
||||
.anyMatch(m -> m.getKey().equals("class") && m.getValue().equals("C")));
|
||||
|
||||
Assertions
|
||||
.assertTrue(
|
||||
gr
|
||||
.getIndicators()
|
||||
.stream()
|
||||
.filter(i -> i.getId().equalsIgnoreCase("popularity_alt"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure()
|
||||
.stream()
|
||||
.anyMatch(m -> m.getKey().equals("score") && m.getValue().equals("2.304")));
|
||||
|
||||
Assertions
|
||||
.assertTrue(
|
||||
gr
|
||||
.getIndicators()
|
||||
.stream()
|
||||
.filter(i -> i.getId().equalsIgnoreCase("popularity_alt"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure()
|
||||
.stream()
|
||||
.anyMatch(m -> m.getKey().equals("class") && m.getValue().equals("C")));
|
||||
|
||||
Assertions
|
||||
.assertTrue(
|
||||
gr
|
||||
.getIndicators()
|
||||
.stream()
|
||||
.filter(i -> i.getId().equalsIgnoreCase("popularity"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure()
|
||||
.stream()
|
||||
.anyMatch(m -> m.getKey().equals("score") && m.getValue().equals("1.81666032463e-08")));
|
||||
|
||||
Assertions
|
||||
.assertTrue(
|
||||
gr
|
||||
.getIndicators()
|
||||
.stream()
|
||||
.filter(i -> i.getId().equalsIgnoreCase("popularity"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure()
|
||||
.stream()
|
||||
.anyMatch(m -> m.getKey().equals("class") && m.getValue().equals("C")));
|
||||
|
||||
Assertions
|
||||
.assertTrue(
|
||||
gr
|
||||
.getIndicators()
|
||||
.stream()
|
||||
.filter(i -> i.getId().equalsIgnoreCase("influence_alt"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure()
|
||||
.stream()
|
||||
.anyMatch(m -> m.getKey().equals("score") && m.getValue().equals("8.0")));
|
||||
|
||||
Assertions
|
||||
.assertTrue(
|
||||
gr
|
||||
.getIndicators()
|
||||
.stream()
|
||||
.filter(i -> i.getId().equalsIgnoreCase("influence_alt"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure()
|
||||
.stream()
|
||||
.anyMatch(m -> m.getKey().equals("class") && m.getValue().equals("C")));
|
||||
|
||||
Assertions
|
||||
.assertTrue(
|
||||
gr
|
||||
.getIndicators()
|
||||
.stream()
|
||||
.filter(i -> i.getId().equalsIgnoreCase("impulse"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure()
|
||||
.stream()
|
||||
.anyMatch(m -> m.getKey().equals("score") && m.getValue().equals("8.0")));
|
||||
|
||||
Assertions
|
||||
.assertTrue(
|
||||
gr
|
||||
.getIndicators()
|
||||
.stream()
|
||||
.filter(i -> i.getId().equalsIgnoreCase("impulse"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure()
|
||||
.stream()
|
||||
.anyMatch(m -> m.getKey().equals("class") && m.getValue().equals("C")));
|
||||
|
||||
Assertions
|
||||
.assertTrue(
|
||||
gr
|
||||
.getIndicators()
|
||||
.stream()
|
||||
.filter(i -> i.getId().equalsIgnoreCase("downloads"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure()
|
||||
.stream()
|
||||
.anyMatch(m -> m.getKey().equals("count") && m.getValue().equals("0")));
|
||||
|
||||
Assertions
|
||||
.assertTrue(
|
||||
gr
|
||||
.getIndicators()
|
||||
.stream()
|
||||
.filter(i -> i.getId().equalsIgnoreCase("views"))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getMeasure()
|
||||
.stream()
|
||||
.anyMatch(m -> m.getKey().equals("count") && m.getValue().equals("1")));
|
||||
|
||||
Assertions.assertEquals(1, gr.getInstance().size());
|
||||
|
||||
Instance instance = gr.getInstance().get(0);
|
||||
|
@ -384,6 +547,7 @@ public class DumpJobTest {
|
|||
Assertions.assertEquals("2017-01-01", instance.getPublicationdate());
|
||||
Assertions.assertEquals(null, instance.getArticleprocessingcharge());
|
||||
Assertions.assertEquals("peerReviewed", instance.getRefereed());
|
||||
Assertions.assertEquals(5, instance.getIndicators().stream().count());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue