1
|
package eu.dnetlib.resolver;
|
2
|
|
3
|
import com.google.gson.Gson;
|
4
|
import eu.dnetlib.data.transform.OntologyLoader;
|
5
|
import eu.dnetlib.dli.DLIUtils;
|
6
|
import eu.dnetlib.dli.resolver.ENAResolver;
|
7
|
|
8
|
import eu.dnetlib.dli.resolver.model.DLIResolvedObject;
|
9
|
import eu.dnetlib.dli.resolver.model.serializer.ResolverSerializer;
|
10
|
import eu.dnetlib.enabling.locators.UniqueServiceLocator;
|
11
|
import eu.dnetlib.pid.resolver.PIDResolver;
|
12
|
import eu.dnetlib.pid.resolver.store.ResolverStore;
|
13
|
import eu.dnetlib.rmi.enabling.ISLookUpService;
|
14
|
import org.apache.commons.io.IOUtils;
|
15
|
import org.apache.commons.logging.Log;
|
16
|
import org.apache.commons.logging.LogFactory;
|
17
|
|
18
|
import org.junit.Assert;
|
19
|
import org.junit.Before;
|
20
|
import org.junit.Ignore;
|
21
|
import org.junit.Test;
|
22
|
import org.mockito.Mock;
|
23
|
import org.mockito.Mockito;
|
24
|
import org.springframework.beans.factory.annotation.Autowired;
|
25
|
|
26
|
import javax.annotation.Resource;
|
27
|
import java.io.InputStream;
|
28
|
import java.util.Arrays;
|
29
|
import java.util.List;
|
30
|
import java.util.Map;
|
31
|
|
32
|
import static org.mockito.Mockito.when;
|
33
|
|
34
|
/**
|
35
|
* Created by sandro on 9/8/16.
|
36
|
*/
|
37
|
//@RunWith(SpringJUnit4ClassRunner.class)
|
38
|
//@ContextConfiguration(classes = { ConfigurationTestConfig.class, ConfigurationResolverStoreTestConfig.class })
|
39
|
@Ignore
|
40
|
public class DLIResolverTest {
|
41
|
|
42
|
private static final Log log = LogFactory.getLog(DLIResolverTest.class);
|
43
|
|
44
|
@Resource(name = "andsResolver")
|
45
|
private PIDResolver andsDataciteResolver;
|
46
|
|
47
|
@Resource(name = "pubMedResolver")
|
48
|
private PIDResolver pubMedResolver;
|
49
|
|
50
|
@Resource(name = "openaireResolver")
|
51
|
private PIDResolver openaireResolver;
|
52
|
|
53
|
@Resource(name = "crossrefResolver")
|
54
|
private PIDResolver crossrefResolver;
|
55
|
|
56
|
@Resource(name = "rcsbResolver")
|
57
|
private PIDResolver rcsbResolver;
|
58
|
|
59
|
@Resource(name = "enaResolver")
|
60
|
private ENAResolver enaResolver;
|
61
|
|
62
|
@Resource(name = "dataciteResolver")
|
63
|
private PIDResolver dataciteResolver;
|
64
|
|
65
|
@Autowired
|
66
|
private ResolverStore store;
|
67
|
|
68
|
@Autowired
|
69
|
private ResolverSerializer serializer;
|
70
|
|
71
|
@Mock
|
72
|
private DLIUtils dliUtilsInstance;
|
73
|
|
74
|
|
75
|
@Mock
|
76
|
private UniqueServiceLocator uniqueServiceLocator;
|
77
|
|
78
|
@Mock
|
79
|
private ISLookUpService isLookUpServiceMock;
|
80
|
|
81
|
|
82
|
@Before
|
83
|
public void initialize() throws Exception {
|
84
|
|
85
|
store.checkIntegrityCollection();
|
86
|
store.getResolverCollection().drop();
|
87
|
final String query = "for $x in collection('/db/DRIVER/RepositoryServiceResources/RepositoryServiceResourceType') "
|
88
|
+ "return concat($x//FIELD[./key='NamespacePrefix']/value/text(),'@--@',$x//FIELD[./key='DataSourceId']/value/text(),'@--@',$x//ENGLISH_NAME )";
|
89
|
dliUtilsInstance = Mockito.mock(DLIUtils.class);
|
90
|
|
91
|
uniqueServiceLocator = Mockito.mock(UniqueServiceLocator.class);
|
92
|
isLookUpServiceMock = Mockito.mock(ISLookUpService.class);
|
93
|
dliUtilsInstance.setServiceLocator(uniqueServiceLocator);
|
94
|
|
95
|
DLIUtils.setInstance(dliUtilsInstance);
|
96
|
when(dliUtilsInstance.getServiceLocator()).thenReturn(uniqueServiceLocator);
|
97
|
final InputStream inputStream = this.getClass().getResourceAsStream("/eu/dnetlib/transformation/data-center.json");
|
98
|
|
99
|
when(dliUtilsInstance.getDataciteDatasource()).thenReturn(new Gson().fromJson(IOUtils.toString(inputStream), Map.class));
|
100
|
|
101
|
|
102
|
when(uniqueServiceLocator.getService(ISLookUpService.class)).thenReturn(isLookUpServiceMock);
|
103
|
List<String> resutlDS = Arrays.asList(
|
104
|
"r3d100010255@--@dli_________::r3d100010255@--@icpsr",
|
105
|
"datacite____@--@dli_________::datacite____@--@Datasets in Datacite",
|
106
|
"r3d100010134@--@dli_________::r3d100010134@--@pangaea",
|
107
|
"r3d100010527@--@dli_________::r3d100010527@--@European Nucleotide Archive"
|
108
|
|
109
|
|
110
|
);
|
111
|
when(isLookUpServiceMock.quickSearchProfile(query)).thenReturn(resutlDS);
|
112
|
DLIUtils.ontologies = OntologyLoader.loadOntologiesFromCp();
|
113
|
|
114
|
|
115
|
|
116
|
}
|
117
|
|
118
|
@Test
|
119
|
public void andsResolverTest() throws Exception {
|
120
|
andsDataciteResolver.retrievePID("https://researchdata.ands.org.au/registry/registry_object/view/2756", "url");
|
121
|
andsDataciteResolver.retrievePID("https://researchdata.ands.org.au/registry/registry_object/view/2756", "url");
|
122
|
andsDataciteResolver.retrievePID("https://researchdata.ands.org.au/registry/registry_object/view/2756", "url");
|
123
|
final DLIResolvedObject doi = (DLIResolvedObject) andsDataciteResolver.retrievePID("https://researchdata.ands.org.au/registry/registry_object/view/2756", "url");
|
124
|
Assert.assertNotNull(doi);
|
125
|
Assert.assertNotNull(doi.getTitles());
|
126
|
Assert.assertNotNull(doi.getDatasourceProvenance());
|
127
|
log.info(doi.getDatasourceProvenance());
|
128
|
|
129
|
}
|
130
|
|
131
|
@Test
|
132
|
public void pubmedResolverTest() throws Exception {
|
133
|
final DLIResolvedObject pubmedObject = (DLIResolvedObject) pubMedResolver.retrievePID("355643", "pubmedid");
|
134
|
Assert.assertNotNull(pubmedObject);
|
135
|
Assert.assertNotNull(pubmedObject.getAuthors());
|
136
|
Assert.assertNotNull(pubmedObject.getTitles());
|
137
|
}
|
138
|
|
139
|
@Test
|
140
|
public void openaireResolverTest() throws Exception {
|
141
|
final DLIResolvedObject pubmedObject = (DLIResolvedObject) openaireResolver.retrievePID("oai:dnet:od_______908::f602032c963cc56d6c9e80508ece44d3", "openaire");
|
142
|
System.out.println("pubmedObject = " + pubmedObject);
|
143
|
Assert.assertNotNull(pubmedObject);
|
144
|
Assert.assertNotNull(pubmedObject.getAuthors());
|
145
|
Assert.assertNotNull(pubmedObject.getTitles());
|
146
|
}
|
147
|
|
148
|
@Test
|
149
|
public void crossRefResolverTest() throws Exception {
|
150
|
final DLIResolvedObject pubmedObject = (DLIResolvedObject) crossrefResolver.retrievePID("10.1109/5.771073", "Handle");
|
151
|
Assert.assertNotNull(pubmedObject);
|
152
|
Assert.assertNotNull(pubmedObject.getAuthors());
|
153
|
Assert.assertNotNull(pubmedObject.getTitles());
|
154
|
}
|
155
|
|
156
|
@Test
|
157
|
public void rcsbResolverTest() throws Exception {
|
158
|
final DLIResolvedObject pubmedObject = (DLIResolvedObject) rcsbResolver.retrievePID("2Y9C", "pdb");
|
159
|
Assert.assertNotNull(pubmedObject);
|
160
|
Assert.assertNotNull(pubmedObject.getAuthors());
|
161
|
Assert.assertNotNull(pubmedObject.getTitles());
|
162
|
|
163
|
}
|
164
|
|
165
|
@Test
|
166
|
public void enaResolverTest() throws java.lang.Exception {
|
167
|
final DLIResolvedObject enaObject = (DLIResolvedObject) enaResolver.retrievePID("KP866224", "ena");
|
168
|
Assert.assertNotNull(enaObject);
|
169
|
Assert.assertNotNull(enaObject.getAuthors());
|
170
|
Assert.assertNotNull(enaObject.getTitles());
|
171
|
|
172
|
|
173
|
System.out.println("enaObject = " + enaObject);
|
174
|
|
175
|
}
|
176
|
|
177
|
@Test
|
178
|
public void dataciteResolverTest() {
|
179
|
final String[] dois = {"10.4121/uuid:c1d1fdbb-72df-470d-9315-d6f97e1d7c7c", "10.5517/ccnwwp2",
|
180
|
"10.6085/AA/TPT006_061MXTI061R00_20020806.50.3", "10013/epic.26895.d001" };
|
181
|
int k = 0;
|
182
|
double average_sum = 0.0f;
|
183
|
DLIResolvedObject object = (DLIResolvedObject) dataciteResolver.retrievePID(dois[0], "handle");
|
184
|
Assert.assertNotNull(object);
|
185
|
object = (DLIResolvedObject) dataciteResolver.retrievePID(dois[1], "doi");
|
186
|
Assert.assertNotNull(object);
|
187
|
log.info(object);
|
188
|
log.info(object.getSubjects());
|
189
|
log.info(serializer.serializeToXML(object));
|
190
|
|
191
|
}
|
192
|
|
193
|
}
|
194
|
|