Project

General

Profile

1
package eu.dnetlib.resolver;
2

    
3
import java.io.IOException;
4
import java.io.InputStream;
5
import java.util.Arrays;
6

    
7
import eu.dnetlib.dli.resolver.NCBINParser;
8
import eu.dnetlib.dli.resolver.NCBINResolver;
9
import eu.dnetlib.dli.resolver.OpenAireParser;
10
import eu.dnetlib.dli.resolver.model.CompletionStatus;
11
import eu.dnetlib.dli.resolver.model.ObjectProvenance;
12
import eu.dnetlib.dli.resolver.model.ObjectProvisionMode;
13
import eu.dnetlib.dli.resolver.model.ResolvedObject;
14
import eu.dnetlib.resolver.parser.DMFResolverParser;
15
import eu.dnetlib.resolver.parser.PMFResolverParser;
16
import eu.dnetlib.resolver.parser.ScholixResolverParser;
17
import org.apache.commons.io.IOUtils;
18
import org.apache.commons.logging.Log;
19
import org.apache.commons.logging.LogFactory;
20
import org.junit.Assert;
21
import org.junit.Test;
22

    
23
/**
24
 * Created by sandro on 9/12/16.
25
 */
26

    
27
public class DLIParserTest {
28

    
29
	private static final Log log = LogFactory.getLog(DLIParserTest.class);
30

    
31
	@Test
32
	public void testDMFParser() throws IOException {
33
		final InputStream resourceAsStream = getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputRecordDMF.xml");
34
		String str = IOUtils.toString(resourceAsStream);
35
		DMFResolverParser parser = new DMFResolverParser();
36
		ResolvedObject object = parser.parseObject(str);
37
		Assert.assertNotNull(object);
38
		Assert.assertNotNull(object.getTitles());
39
		Assert.assertNotNull(object.getType());
40
		object.setTitles(Arrays.asList("TITOLO 1", "TITOLO 2"));
41
		ResolvedObject nullObject = parser.parseObject(IOUtils.toString(getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputRecordScholix.xml")));
42
		Assert.assertNull(nullObject);
43
		nullObject = parser.parseObject(IOUtils.toString(getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputPMFRecord.xml")));
44
		Assert.assertNull(nullObject);
45

    
46
	}
47

    
48
	@Test
49
	public void testScholixParser() throws IOException {
50
		final InputStream resourceAsStream = getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputRecordScholix.xml");
51

    
52
		String str = IOUtils.toString(resourceAsStream);
53
		ScholixResolverParser parser = new ScholixResolverParser();
54
		ResolvedObject object = parser.parseObject(str);
55

    
56
		log.debug("object = " + object);
57

    
58
		Assert.assertNotNull(object);
59
		log.debug("object.getCompletionStatus() = " + object.getCompletionStatus());
60

    
61
		Assert.assertTrue(object.getCompletionStatus().equals(CompletionStatus.incomplete.toString()));
62

    
63
		Assert.assertNotNull(object.getRelations());
64

    
65
		Assert.assertTrue(object.getRelations().size() == 1);
66

    
67
		ResolvedObject nullObject = parser.parseObject(IOUtils.toString(getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputRecordDMF.xml")));
68
		Assert.assertNull(nullObject);
69
		nullObject = parser.parseObject(IOUtils.toString(getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputPMFRecord.xml")));
70
		Assert.assertNull(nullObject);
71

    
72
	}
73

    
74
	@Test
75
	public void testPMFParser() throws Exception {
76
		final InputStream resource = getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputPMF.xml");
77
		String xml = IOUtils.toString(resource);
78

    
79
		PMFResolverParser parser = new PMFResolverParser();
80
		final ResolvedObject resolvedObject = parser.parseObject(xml);
81
		Assert.assertNotNull(resolvedObject);
82
		log.debug("resolvedObject = " + resolvedObject);
83

    
84
		Assert.assertNotNull(resolvedObject.getRelations());
85
		resolvedObject.getRelations().forEach(it -> Assert.assertNotNull(it));
86

    
87
		ResolvedObject nullObject = parser.parseObject(IOUtils.toString(getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputRecordScholix.xml")));
88
		Assert.assertNull(nullObject);
89
		nullObject = parser.parseObject(IOUtils.toString(getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputRecordDMF.xml")));
90
		Assert.assertNull(nullObject);
91
	}
92

    
93
	@Test
94
	public void testOpenAIREParser() throws Exception {
95

    
96
		final InputStream resource = getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputRecordOpenaire.xml");
97

    
98
		final String record = IOUtils.toString(resource);
99

    
100
		final OpenAireParser parser = new OpenAireParser();
101
		final ResolvedObject object = parser.parseObject(record);
102
		object.setPid("od_______908::ff0270cae25acd9367ef26a53ee5e4a3");
103
		object.setPidType("openaire");
104

    
105
		ObjectProvenance provenance = new ObjectProvenance();
106
		provenance.setCompletionStatus(CompletionStatus.complete.toString());
107
		provenance.setDatasourceId("dli::r3d100010778");
108
		provenance.setDatasource("NCBI Nucleotide");
109
		provenance.setProvisionMode(ObjectProvisionMode.resolved.toString());
110
		object.setDatasourceProvenance(Arrays.asList(provenance));
111

    
112
		log.debug(object);
113

    
114
	}
115

    
116
	@Test
117
	public void testProteinParser() throws IOException {
118
		final NCBINResolver resolver = new NCBINResolver();
119
		resolver.setNCBINParser(new NCBINParser());
120
		final ResolvedObject p02768 = resolver.resolve("U36380", "protein");
121

    
122
		log.debug(p02768.getDescription());
123
		Assert.assertNotNull(p02768);
124
		Assert.assertNotNull(p02768.getDescription());
125

    
126
		log.debug("p02768 = " + p02768);
127

    
128
	}
129

    
130

    
131

    
132

    
133

    
134

    
135

    
136

    
137

    
138
}
(2-2/4)