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
import java.util.List;
7

    
8
import eu.dnetlib.data.transform.OntologyLoader;
9
import eu.dnetlib.dli.DLIUtils;
10
import eu.dnetlib.dli.resolver.NCBINParser;
11
import eu.dnetlib.dli.resolver.NCBINResolver;
12
import eu.dnetlib.dli.resolver.OpenAireParser;
13
import eu.dnetlib.dli.resolver.model.CompletionStatus;
14
import eu.dnetlib.dli.resolver.model.DLIObjectProvenance;
15
import eu.dnetlib.dli.resolver.model.DLIResolvedObject;
16
import eu.dnetlib.dli.resolver.model.ObjectProvisionMode;
17
import eu.dnetlib.dli.resolver.model.serializer.DLIResolverSerializer;
18
import eu.dnetlib.enabling.locators.UniqueServiceLocator;
19
import eu.dnetlib.resolver.parser.DMFResolverParser;
20
import eu.dnetlib.resolver.parser.PMFResolverParser;
21
import eu.dnetlib.resolver.parser.ScholixResolverParser;
22
import eu.dnetlib.rmi.enabling.ISLookUpException;
23
import eu.dnetlib.rmi.enabling.ISLookUpService;
24
import org.apache.commons.io.IOUtils;
25
import org.apache.commons.logging.Log;
26
import org.apache.commons.logging.LogFactory;
27
import org.junit.Assert;
28
import org.junit.Before;
29
import org.junit.Ignore;
30
import org.junit.Test;
31
import org.junit.runner.RunWith;
32
import org.mockito.Mock;
33
import org.mockito.Mockito;
34
import org.springframework.beans.factory.annotation.Autowired;
35
import org.springframework.test.context.ContextConfiguration;
36
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
37

    
38
import static org.mockito.Mockito.when;
39

    
40
/**
41
 * Created by sandro on 9/12/16.
42
 */
43

    
44

    
45
@RunWith(SpringJUnit4ClassRunner.class)
46
@ContextConfiguration(classes = { ConfigurationTestConfig.class})
47
public class DLIParserTest extends  DLIAbstractTest{
48

    
49
	private static final Log log = LogFactory.getLog(DLIParserTest.class);
50

    
51
	@Autowired
52
    private DLIResolverSerializer serializer;
53

    
54
	@Test
55
	public void testDMFParser() throws IOException {
56
		final InputStream resourceAsStream = getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputRecordDMF.xml");
57
		String str = IOUtils.toString(resourceAsStream);
58
		DMFResolverParser parser = new DMFResolverParser();
59
        DLIResolvedObject object = parser.parseObject(str);
60
        Assert.assertNotNull(object);
61
		Assert.assertNotNull(object.getTitles());
62
		Assert.assertNotNull(object.getType());
63
		object.setTitles(Arrays.asList("TITOLO 1", "TITOLO 2"));
64
		Assert.assertEquals(CompletionStatus.complete.toString(), object.getCompletionStatus());
65
        DLIResolvedObject nullObject = parser.parseObject(IOUtils.toString(getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputRecordScholix.xml")));
66
        Assert.assertNull(nullObject);
67
		nullObject = parser.parseObject(IOUtils.toString(getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputPMFRecord.xml")));
68
		Assert.assertNull(nullObject);
69

    
70
	}
71

    
72

    
73
	@Test
74
	public void testResolvedDate() throws IOException {
75
		final InputStream resourceAsStream = getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputPMF.xml");
76
		String str = IOUtils.toString(resourceAsStream);
77

    
78
		PMFResolverParser parser = new PMFResolverParser();
79
        DLIResolvedObject object = parser.parseObject(str);
80
        Assert.assertNotNull(object.getResolvedDate());
81
	}
82

    
83

    
84
	@Test
85
	public void testDataciteParser() throws Exception {
86

    
87
		final InputStream resourceAsStream = getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputRecordOpenaire.xml");
88
		String str = IOUtils.toString(resourceAsStream);
89
		DMFResolverParser parser = new DMFResolverParser();
90
        DLIResolvedObject object = parser.parseObject(str);
91
        System.out.println(object.getType());
92
		object.getRelations().forEach(it -> System.out.println(it.getTargetPID()));
93
		Assert.assertTrue(object.getCompletionStatus().equals("complete"));
94
		System.out.println("object = " + object);
95

    
96
		final String replacingXML = serializer.serializeReplacingXML(str, object);
97

    
98
		log.debug(replacingXML);
99

    
100

    
101

    
102
	}
103

    
104
	@Test
105
	public void testScholixParser() throws IOException {
106
		final InputStream resourceAsStream = getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputRecordScholix.xml");
107

    
108
		String str = IOUtils.toString(resourceAsStream);
109
		ScholixResolverParser parser = new ScholixResolverParser();
110
        DLIResolvedObject object = parser.parseObject(str);
111

    
112
		log.debug("object = " + object);
113

    
114
		Assert.assertNotNull(object);
115
		log.debug("object.getCompletionStatus() = " + object.getCompletionStatus());
116

    
117
		Assert.assertTrue(object.getCompletionStatus().equals(CompletionStatus.incomplete.toString()));
118

    
119
		Assert.assertNotNull(object.getRelations());
120

    
121
		Assert.assertTrue(object.getRelations().size() == 1);
122

    
123
        DLIResolvedObject nullObject = parser.parseObject(IOUtils.toString(getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputRecordDMF.xml")));
124
        Assert.assertNull(nullObject);
125
		nullObject = parser.parseObject(IOUtils.toString(getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputPMFRecord.xml")));
126
		Assert.assertNull(nullObject);
127

    
128
	}
129

    
130
	@Test
131
	public void testScholixCompleteParser() throws IOException {
132
		final InputStream resourceAsStream = getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputRecordScholix.xml");
133

    
134
		String str = IOUtils.toString(resourceAsStream);
135
		ScholixResolverParser parser = new ScholixResolverParser();
136
        DLIResolvedObject object = parser.parseObject(str);
137

    
138
		log.debug("object = " + object);
139

    
140
		Assert.assertNotNull(object);
141
		log.debug("object.getCompletionStatus() = " + object.getCompletionStatus());
142

    
143
//		Assert.assertTrue(object.getCompletionStatus().equals(CompletionStatus.complete.toString()));
144
//
145
//		Assert.assertNotNull(object.getDate());
146
//		Assert.assertNotNull(object.getTitles());
147
//		Assert.assertTrue(object.getTitles().size() == 1);
148
//
149
//		Assert.assertNotNull(object.getDatasourceProvenance());
150
//		Assert.assertTrue(object.getDatasourceProvenance().size() == 1);
151
//		Assert.assertNotNull(object.getDatasourceProvenance().get(0).getPublisher());
152
//		Assert.assertNotNull(object.getDatasourceProvenance().get(0).getPublisherId());
153
//
154
//
155
//		Assert.assertNotNull(object.getRelations());
156
//
157
//		Assert.assertTrue(object.getRelations().size() == 1);
158
//
159
//		Assert.assertNotNull(object.getRelations().get(0).getTargetPID().getId());
160
//		Assert.assertNotNull(object.getRelations().get(0).getTargetPID().getType());
161
//
162
//
163
//		DLIResolvedObject nullObject = parser.parseObject(IOUtils.toString(getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputRecordDMF.xml")));
164
//		Assert.assertNull(nullObject);
165
//		nullObject = parser.parseObject(IOUtils.toString(getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputPMFRecord.xml")));
166
//		Assert.assertNull(nullObject);
167

    
168
	}
169

    
170

    
171
	@Test
172
	public void testPMFParser() throws Exception {
173
		final InputStream resource = getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputPMF.xml");
174
		String xml = IOUtils.toString(resource);
175

    
176
		PMFResolverParser parser = new PMFResolverParser();
177
        final DLIResolvedObject resolvedObject = parser.parseObject(xml);
178
        Assert.assertNotNull(resolvedObject);
179
		log.debug("resolvedObject = " + resolvedObject);
180

    
181
		Assert.assertNotNull(resolvedObject.getRelations());
182
		resolvedObject.getRelations().forEach(it -> Assert.assertNotNull(it));
183

    
184
        DLIResolvedObject nullObject = parser.parseObject(IOUtils.toString(getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputRecordScholix.xml")));
185
        Assert.assertNull(nullObject);
186
		nullObject = parser.parseObject(IOUtils.toString(getClass().getResourceAsStream("/eu/dnetlib/dli/parser/InputRecordDMF.xml")));
187
		Assert.assertNull(nullObject);
188
	}
189

    
190
	@Test
191
	public void testOpenAIREParser() throws Exception {
192

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

    
195
		final String record = IOUtils.toString(resource);
196

    
197
		final OpenAireParser parser = new OpenAireParser();
198
        final DLIResolvedObject object = parser.parseObject(record);
199
        object.setPid("od_______908::ff0270cae25acd9367ef26a53ee5e4a3");
200
		object.setPidType("openaire");
201

    
202
        final DLIObjectProvenance provenance = new DLIObjectProvenance();
203
        provenance.setCompletionStatus(CompletionStatus.complete.toString());
204
		provenance.setDatasourceId("dli::r3d100010778");
205
		provenance.setDatasource("NCBI Nucleotide");
206
		provenance.setProvisionMode(ObjectProvisionMode.resolved.toString());
207
		object.setDatasourceProvenance(Arrays.asList(provenance));
208

    
209
		log.debug(object);
210

    
211
	}
212

    
213
	@Test
214
	public void testProteinParser() throws IOException {
215
		final NCBINResolver resolver = new NCBINResolver();
216
		resolver.setNCBINParser(new NCBINParser());
217
        final DLIResolvedObject p02768 = resolver.resolve("U36380", "protein");
218

    
219
		log.debug(p02768.getDescription());
220
		Assert.assertNotNull(p02768);
221
		Assert.assertNotNull(p02768.getDescription());
222

    
223
		log.debug("p02768 = " + p02768);
224

    
225
	}
226

    
227

    
228

    
229

    
230

    
231

    
232

    
233

    
234

    
235
}
(3-3/6)