Project

General

Profile

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.DLIResolverSerializer;
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.resolver.store.ConfigurationResolverStoreTestConfig;
14
import eu.dnetlib.rmi.enabling.ISLookUpService;
15
import org.apache.commons.io.IOUtils;
16
import org.apache.commons.logging.Log;
17
import org.apache.commons.logging.LogFactory;
18

    
19
import org.junit.Assert;
20
import org.junit.Before;
21
import org.junit.Ignore;
22
import org.junit.Test;
23
import org.junit.runner.RunWith;
24
import org.mockito.Mock;
25
import org.mockito.Mockito;
26
import org.springframework.beans.factory.annotation.Autowired;
27
import org.springframework.test.context.ContextConfiguration;
28
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
29

    
30
import javax.annotation.Resource;
31
import java.io.InputStream;
32
import java.util.Arrays;
33
import java.util.List;
34
import java.util.Map;
35

    
36
import static org.mockito.Mockito.when;
37

    
38
/**
39
 * Created by sandro on 9/8/16.
40
 */
41
@RunWith(SpringJUnit4ClassRunner.class)
42
@ContextConfiguration(classes = { ConfigurationTestConfig.class, ConfigurationResolverStoreTestConfig.class })
43

    
44
public class DLIResolverTest {
45

    
46
	private static final Log log = LogFactory.getLog(DLIResolverTest.class);
47

    
48
	@Resource(name = "andsResolver")
49
	private PIDResolver andsDataciteResolver;
50

    
51
	@Resource(name = "pubMedResolver")
52
	private PIDResolver pubMedResolver;
53

    
54
	@Resource(name = "openaireResolver")
55
	private PIDResolver openaireResolver;
56

    
57
	@Resource(name = "crossrefResolver")
58
	private PIDResolver crossrefResolver;
59

    
60
	@Resource(name = "rcsbResolver")
61
	private PIDResolver rcsbResolver;
62

    
63
    @Resource(name = "enaResolver")
64
    private ENAResolver enaResolver;
65

    
66
	@Resource(name = "dataciteResolver")
67
	private PIDResolver dataciteResolver;
68

    
69
	@Autowired
70
	private ResolverStore store;
71

    
72
	@Autowired
73
    private DLIResolverSerializer serializer;
74

    
75
    @Mock
76
    private DLIUtils dliUtilsInstance;
77

    
78

    
79
    @Mock
80
    private UniqueServiceLocator uniqueServiceLocator;
81

    
82
    @Mock
83
    private ISLookUpService isLookUpServiceMock;
84

    
85

    
86
	@Before
87
    public void initialize() throws Exception {
88

    
89
		store.checkIntegrityCollection();
90
		store.getResolverCollection().drop();
91
        final String query = "for $x in collection('/db/DRIVER/RepositoryServiceResources/RepositoryServiceResourceType') "
92
                + "return concat($x//FIELD[./key='NamespacePrefix']/value/text(),'@--@',$x//FIELD[./key='DataSourceId']/value/text(),'@--@',$x//ENGLISH_NAME )";
93
        dliUtilsInstance = Mockito.mock(DLIUtils.class);
94

    
95
        uniqueServiceLocator = Mockito.mock(UniqueServiceLocator.class);
96
        isLookUpServiceMock = Mockito.mock(ISLookUpService.class);
97
        dliUtilsInstance.setServiceLocator(uniqueServiceLocator);
98

    
99
        DLIUtils.setInstance(dliUtilsInstance);
100
        when(dliUtilsInstance.getServiceLocator()).thenReturn(uniqueServiceLocator);
101
		final InputStream inputStream = this.getClass().getResourceAsStream("/eu/dnetlib/transformation/data-center.json");
102

    
103
        when(dliUtilsInstance.getDataciteDatasource()).thenReturn(new Gson().fromJson(IOUtils.toString(inputStream), Map.class));
104

    
105

    
106
        when(uniqueServiceLocator.getService(ISLookUpService.class)).thenReturn(isLookUpServiceMock);
107
        List<String> resutlDS = Arrays.asList(
108
                "r3d100010255@--@dli_________::r3d100010255@--@icpsr",
109
                "datacite____@--@dli_________::datacite____@--@Datasets in Datacite",
110
                "r3d100010134@--@dli_________::r3d100010134@--@pangaea",
111
                "r3d100010527@--@dli_________::r3d100010527@--@European Nucleotide Archive"
112

    
113

    
114
        );
115
        when(isLookUpServiceMock.quickSearchProfile(query)).thenReturn(resutlDS);
116
        DLIUtils.ontologies = OntologyLoader.loadOntologiesFromCp();
117

    
118

    
119

    
120
	}
121

    
122
	@Test
123
	public void andsResolverTest() throws Exception {
124
		andsDataciteResolver.retrievePID("https://researchdata.ands.org.au/registry/registry_object/view/2756", "url",false);
125
		andsDataciteResolver.retrievePID("https://researchdata.ands.org.au/registry/registry_object/view/2756", "url",false);
126
		andsDataciteResolver.retrievePID("https://researchdata.ands.org.au/registry/registry_object/view/2756", "url",false);
127
        final DLIResolvedObject doi = (DLIResolvedObject) andsDataciteResolver.retrievePID("https://researchdata.ands.org.au/registry/registry_object/view/2756", "url",false);
128
        Assert.assertNotNull(doi);
129
		Assert.assertNotNull(doi.getTitles());
130
		Assert.assertNotNull(doi.getDatasourceProvenance());
131
		log.info(doi.getDatasourceProvenance());
132

    
133
	}
134

    
135
	@Test
136
	public void pubmedResolverTest() throws Exception {
137
        final DLIResolvedObject pubmedObject = (DLIResolvedObject) pubMedResolver.retrievePID("355643", "pubmedid",false);
138
        Assert.assertNotNull(pubmedObject);
139
		Assert.assertNotNull(pubmedObject.getAuthors());
140
		Assert.assertNotNull(pubmedObject.getTitles());
141
	}
142

    
143
	@Test
144
	public void openaireResolverTest() throws Exception {
145
        final DLIResolvedObject pubmedObject = (DLIResolvedObject) openaireResolver.retrievePID("oai:dnet:od_______908::f602032c963cc56d6c9e80508ece44d3", "openaire",false);
146
        System.out.println("pubmedObject = " + pubmedObject);
147
		Assert.assertNotNull(pubmedObject);
148
		Assert.assertNotNull(pubmedObject.getAuthors());
149
		Assert.assertNotNull(pubmedObject.getTitles());
150
	}
151

    
152

    
153
//	public void crossRefResolverTest() throws Exception {
154
//        final DLIResolvedObject pubmedObject = (DLIResolvedObject) crossrefResolver.retrievePID("10.1109/5.771073", "Handle",false);
155
//        Assert.assertNotNull(pubmedObject);
156
//		Assert.assertNotNull(pubmedObject.getAuthors());
157
//		Assert.assertNotNull(pubmedObject.getTitles());
158
//	}
159

    
160
	@Test
161
	public void rcsbResolverTest() throws Exception {
162
        final DLIResolvedObject pubmedObject = (DLIResolvedObject) rcsbResolver.retrievePID("2Y9C", "pdb",false);
163
        Assert.assertNotNull(pubmedObject);
164
		Assert.assertNotNull(pubmedObject.getAuthors());
165
		Assert.assertNotNull(pubmedObject.getTitles());
166

    
167
	}
168

    
169
    @Test
170
    public void enaResolverTest() throws java.lang.Exception {
171
        final DLIResolvedObject enaObject = (DLIResolvedObject) enaResolver.retrievePID("KP866224", "ena",false);
172
        Assert.assertNotNull(enaObject);
173
        Assert.assertNotNull(enaObject.getAuthors());
174
        Assert.assertNotNull(enaObject.getTitles());
175

    
176

    
177
        System.out.println("enaObject = " + enaObject);
178

    
179
    }
180

    
181
	@Test
182
	public void dataciteResolverTest() {
183
		final String[] dois = {"10.4121/uuid:c1d1fdbb-72df-470d-9315-d6f97e1d7c7c", "10.5517/ccnwwp2",
184
				"10.6085/AA/TPT006_061MXTI061R00_20020806.50.3", "10013/epic.26895.d001" };
185
		int k = 0;
186
		double average_sum = 0.0f;
187
        DLIResolvedObject object = (DLIResolvedObject) dataciteResolver.retrievePID(dois[0], "handle",false);
188
        Assert.assertNotNull(object);
189
        object = (DLIResolvedObject) dataciteResolver.retrievePID(dois[1], "doi",false);
190
        Assert.assertNotNull(object);
191
		log.info(object);
192
		log.info(object.getSubjects());
193
		log.info(serializer.serializeToXML(object));
194

    
195
	}
196

    
197
}
198

    
(4-4/6)