1 |
29808
|
marek.hors
|
package eu.dnetlib.iis.export.actionmanager.module;
|
2 |
29796
|
marek.hors
|
|
3 |
|
|
import java.util.Collections;
|
4 |
|
|
import java.util.HashMap;
|
5 |
29798
|
marek.hors
|
import java.util.Iterator;
|
6 |
29796
|
marek.hors
|
import java.util.Map;
|
7 |
|
|
import java.util.SortedSet;
|
8 |
|
|
import java.util.TreeSet;
|
9 |
|
|
|
10 |
29798
|
marek.hors
|
import org.junit.Assert;
|
11 |
29796
|
marek.hors
|
import org.junit.Test;
|
12 |
|
|
|
13 |
|
|
import eu.dnetlib.iis.common.citations.schemas.CitationEntry;
|
14 |
29808
|
marek.hors
|
import eu.dnetlib.iis.common.hbase.HBaseConstants;
|
15 |
30983
|
marek.hors
|
import eu.dnetlib.iis.common.model.extrainfo.citations.BlobCitationEntry;
|
16 |
29808
|
marek.hors
|
import eu.dnetlib.iis.common.model.extrainfo.converter.CitationsExtraInfoConverter;
|
17 |
29796
|
marek.hors
|
|
18 |
|
|
/**
|
19 |
29808
|
marek.hors
|
* {@link CitationsExtraInfoConverter} test class.
|
20 |
29796
|
marek.hors
|
* @author mhorst
|
21 |
|
|
*
|
22 |
|
|
*/
|
23 |
29808
|
marek.hors
|
public class CitationsActionBuilderModuleFactoryTest {
|
24 |
29796
|
marek.hors
|
|
25 |
|
|
@Test
|
26 |
|
|
public void testConversion() throws Exception {
|
27 |
30983
|
marek.hors
|
SortedSet<BlobCitationEntry> sortedCitations = new TreeSet<BlobCitationEntry>();
|
28 |
29796
|
marek.hors
|
|
29 |
|
|
CitationEntry.Builder rawTextCitationEntryBuilder = CitationEntry.newBuilder();
|
30 |
39157
|
marek.hors
|
rawTextCitationEntryBuilder.setPosition(44);
|
31 |
29796
|
marek.hors
|
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 |
39157
|
marek.hors
|
internalCitationEntryBuilder.setPosition(100);
|
37 |
29796
|
marek.hors
|
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 |
39157
|
marek.hors
|
externalPmidCitationEntryBuilder.setPosition(5);
|
44 |
29796
|
marek.hors
|
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 |
39157
|
marek.hors
|
externalDoiCitationEntryBuilder.setPosition(17);
|
51 |
29796
|
marek.hors
|
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 |
29808
|
marek.hors
|
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 |
29796
|
marek.hors
|
|
65 |
29808
|
marek.hors
|
CitationsExtraInfoConverter converter = new CitationsExtraInfoConverter();
|
66 |
29796
|
marek.hors
|
String citationsXML = converter.serialize(sortedCitations);
|
67 |
|
|
System.out.println(citationsXML);
|
68 |
|
|
|
69 |
|
|
// checking deserialization
|
70 |
30983
|
marek.hors
|
SortedSet<BlobCitationEntry> deserializedCitations = (SortedSet<BlobCitationEntry>) converter.deserialize(citationsXML);
|
71 |
29798
|
marek.hors
|
Assert.assertEquals(sortedCitations.size(), deserializedCitations.size());
|
72 |
30983
|
marek.hors
|
Iterator<BlobCitationEntry> sortedIt = sortedCitations.iterator();
|
73 |
|
|
Iterator<BlobCitationEntry> deserializedIt = deserializedCitations.iterator();
|
74 |
29798
|
marek.hors
|
for (int i=0; i<sortedCitations.size(); i++) {
|
75 |
|
|
Assert.assertEquals(sortedIt.next(), deserializedIt.next());
|
76 |
|
|
}
|
77 |
29796
|
marek.hors
|
}
|
78 |
|
|
}
|