[Extend Measure] added test to verify the new serialization model and the serialization at the level of the result

This commit is contained in:
Miriam Baglioni 2022-09-22 18:02:37 +02:00
parent b5ee457969
commit eb06474106
3 changed files with 219 additions and 52 deletions

View File

@ -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()))));

View File

@ -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