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.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 DLIResolverSerializer 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",false);
121
		andsDataciteResolver.retrievePID("https://researchdata.ands.org.au/registry/registry_object/view/2756", "url",false);
122
		andsDataciteResolver.retrievePID("https://researchdata.ands.org.au/registry/registry_object/view/2756", "url",false);
123
        final DLIResolvedObject doi = (DLIResolvedObject) andsDataciteResolver.retrievePID("https://researchdata.ands.org.au/registry/registry_object/view/2756", "url",false);
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",false);
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",false);
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",false);
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",false);
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",false);
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",false);
184
        Assert.assertNotNull(object);
185
        object = (DLIResolvedObject) dataciteResolver.retrievePID(dois[1], "doi",false);
186
        Assert.assertNotNull(object);
187
		log.info(object);
188
		log.info(object.getSubjects());
189
		log.info(serializer.serializeToXML(object));
190

    
191
	}
192

    
193
}
194

    
(4-4/6)