1
|
package eu.dnetlib.iis.export.actionmanager.module;
|
2
|
|
3
|
import java.util.Collections;
|
4
|
import java.util.HashMap;
|
5
|
import java.util.Iterator;
|
6
|
import java.util.Map;
|
7
|
import java.util.SortedSet;
|
8
|
import java.util.TreeSet;
|
9
|
|
10
|
import org.junit.Assert;
|
11
|
import org.junit.Test;
|
12
|
|
13
|
import eu.dnetlib.iis.common.citations.schemas.CitationEntry;
|
14
|
import eu.dnetlib.iis.common.hbase.HBaseConstants;
|
15
|
import eu.dnetlib.iis.common.model.extrainfo.citations.BlobCitationEntry;
|
16
|
import eu.dnetlib.iis.common.model.extrainfo.converter.CitationsExtraInfoConverter;
|
17
|
|
18
|
/**
|
19
|
* {@link CitationsExtraInfoConverter} test class.
|
20
|
* @author mhorst
|
21
|
*
|
22
|
*/
|
23
|
public class CitationsActionBuilderModuleFactoryTest {
|
24
|
|
25
|
@Test
|
26
|
public void testConversion() throws Exception {
|
27
|
SortedSet<BlobCitationEntry> sortedCitations = new TreeSet<BlobCitationEntry>();
|
28
|
|
29
|
CitationEntry.Builder rawTextCitationEntryBuilder = CitationEntry.newBuilder();
|
30
|
rawTextCitationEntryBuilder.setPosition(44);
|
31
|
rawTextCitationEntryBuilder.setRawText("[44] S. Mukhi and R. Nigam, “Constraints on ’rare’ dyon decays,” JHEP 12 (2008) 056, 0809.1157.");
|
32
|
rawTextCitationEntryBuilder.setExternalDestinationDocumentIds(Collections.<CharSequence,CharSequence>emptyMap());
|
33
|
|
34
|
CitationEntry.Builder internalCitationEntryBuilder = CitationEntry.newBuilder();
|
35
|
internalCitationEntryBuilder.setRawText("Rugama, Y., Kloosterman, J. L., Winkelman, A., 2004. Prog. Nucl. Energy 44, 1-12.");
|
36
|
internalCitationEntryBuilder.setPosition(100);
|
37
|
internalCitationEntryBuilder.setDestinationDocumentId("od______2367::00247be440c2188b82d5905b5b1e22bb");
|
38
|
internalCitationEntryBuilder.setConfidenceLevel(0.8f);
|
39
|
internalCitationEntryBuilder.setExternalDestinationDocumentIds(Collections.<CharSequence,CharSequence>emptyMap());
|
40
|
|
41
|
CitationEntry.Builder externalPmidCitationEntryBuilder = CitationEntry.newBuilder();
|
42
|
externalPmidCitationEntryBuilder.setRawText("[5] A. Sen, “Walls of Marginal Stability and Dyon Spectrum in N=4 Supersymmetric String Theories,” JHEP 05 (2007) 039, hep-th/0702141.");
|
43
|
externalPmidCitationEntryBuilder.setPosition(5);
|
44
|
Map<CharSequence, CharSequence> externalPmidDestinationDocumentIds = new HashMap<CharSequence, CharSequence>();
|
45
|
externalPmidDestinationDocumentIds.put("pmid", "20856923");
|
46
|
externalPmidCitationEntryBuilder.setExternalDestinationDocumentIds(externalPmidDestinationDocumentIds);
|
47
|
|
48
|
CitationEntry.Builder externalDoiCitationEntryBuilder = CitationEntry.newBuilder();
|
49
|
externalDoiCitationEntryBuilder.setRawText("[17] N. Koblitz. Hyperelliptic cryptosystems. J. Cryptology, 1(3):139–150, 1989.");
|
50
|
externalDoiCitationEntryBuilder.setPosition(17);
|
51
|
Map<CharSequence, CharSequence> externalDoiDestinationDocumentIds = new HashMap<CharSequence, CharSequence>();
|
52
|
externalDoiDestinationDocumentIds.put("doi", "10.1186/1753-6561-5-S6-P38");
|
53
|
externalDoiDestinationDocumentIds.put("custom-id", "12345");
|
54
|
externalDoiCitationEntryBuilder.setExternalDestinationDocumentIds(externalDoiDestinationDocumentIds);
|
55
|
|
56
|
sortedCitations.add(CitationsActionBuilderModuleFactory.build(internalCitationEntryBuilder.build()
|
57
|
,HBaseConstants.CONFIDENCE_TO_TRUST_LEVEL_FACTOR));
|
58
|
sortedCitations.add(CitationsActionBuilderModuleFactory.build(externalPmidCitationEntryBuilder.build()
|
59
|
,HBaseConstants.CONFIDENCE_TO_TRUST_LEVEL_FACTOR));
|
60
|
sortedCitations.add(CitationsActionBuilderModuleFactory.build(externalDoiCitationEntryBuilder.build()
|
61
|
,HBaseConstants.CONFIDENCE_TO_TRUST_LEVEL_FACTOR));
|
62
|
sortedCitations.add(CitationsActionBuilderModuleFactory.build(rawTextCitationEntryBuilder.build()
|
63
|
,HBaseConstants.CONFIDENCE_TO_TRUST_LEVEL_FACTOR));
|
64
|
|
65
|
CitationsExtraInfoConverter converter = new CitationsExtraInfoConverter();
|
66
|
String citationsXML = converter.serialize(sortedCitations);
|
67
|
System.out.println(citationsXML);
|
68
|
|
69
|
// checking deserialization
|
70
|
SortedSet<BlobCitationEntry> deserializedCitations = (SortedSet<BlobCitationEntry>) converter.deserialize(citationsXML);
|
71
|
Assert.assertEquals(sortedCitations.size(), deserializedCitations.size());
|
72
|
Iterator<BlobCitationEntry> sortedIt = sortedCitations.iterator();
|
73
|
Iterator<BlobCitationEntry> deserializedIt = deserializedCitations.iterator();
|
74
|
for (int i=0; i<sortedCitations.size(); i++) {
|
75
|
Assert.assertEquals(sortedIt.next(), deserializedIt.next());
|
76
|
}
|
77
|
}
|
78
|
}
|