Project

General

Profile

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
}