Project

General

Profile

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
}
    (1-1/1)