1
|
package eu.dnetlib.api.client;
|
2
|
|
3
|
import java.net.URI;
|
4
|
import java.net.URISyntaxException;
|
5
|
import java.text.SimpleDateFormat;
|
6
|
import java.util.Date;
|
7
|
import java.util.List;
|
8
|
|
9
|
import eu.dnetlib.api.utils.OpenAireDocumentPage;
|
10
|
import eu.dnetlib.api.utils.ResponseHeader;
|
11
|
import org.apache.http.client.utils.URIBuilder;
|
12
|
import org.dom4j.Document;
|
13
|
import org.dom4j.DocumentException;
|
14
|
import org.dom4j.DocumentHelper;
|
15
|
import org.junit.Before;
|
16
|
import org.junit.Ignore;
|
17
|
import org.junit.Test;
|
18
|
|
19
|
import static org.junit.Assert.*;
|
20
|
|
21
|
@Ignore
|
22
|
public class OpenairePublicationsApiClientTest extends OpenaireApiClientTest {
|
23
|
|
24
|
String today = "";
|
25
|
|
26
|
@Before
|
27
|
public void setUp() {
|
28
|
Date d = new Date();
|
29
|
SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-dd");
|
30
|
today = format.format(d);
|
31
|
}
|
32
|
|
33
|
@Test
|
34
|
public void testPublications() throws URISyntaxException, DocumentException {
|
35
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
36
|
URI uri = builder.build();
|
37
|
System.out.println(uri);
|
38
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
39
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
40
|
ResponseHeader pageHeader = page.getResponseHeader();
|
41
|
assertEquals(publicationsQuery, pageHeader.getQuery());
|
42
|
assertEquals(1, pageHeader.getPage());
|
43
|
assertEquals(defaultPageSize, pageHeader.getPageSize());
|
44
|
}
|
45
|
|
46
|
@Test
|
47
|
public void testPublicationParameters() throws URISyntaxException, DocumentException {
|
48
|
for (String param : commonParameters) {
|
49
|
if (!param.equals("model") && !param.equals("format") && !param.equals("page") && !param.equals("size") && !param.equals("sortBy")) {
|
50
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath).addParameter(param, "test");
|
51
|
URI uri = builder.build();
|
52
|
System.out.println(uri);
|
53
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
54
|
checkNotException(results);
|
55
|
}
|
56
|
}
|
57
|
for (String param : publicationParameters) {
|
58
|
if (!param.equals("fromDateAccepted") && !param.equals("toDateAccepted")) {
|
59
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath).addParameter(param, "test");
|
60
|
URI uri = builder.build();
|
61
|
System.out.println(uri);
|
62
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
63
|
checkNotException(results);
|
64
|
}
|
65
|
}
|
66
|
}
|
67
|
|
68
|
@Test
|
69
|
public void testPublicationsUnexistingParameter() throws URISyntaxException, DocumentException {
|
70
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
71
|
builder.addParameter("pippo", "hello");
|
72
|
URI uri = builder.build();
|
73
|
System.out.println(uri);
|
74
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
75
|
checkException(results, "java.lang.IllegalArgumentException");
|
76
|
}
|
77
|
|
78
|
@Test
|
79
|
public void testSortByPublicationsParameters() throws URISyntaxException, DocumentException {
|
80
|
checkSortByParamaters(EntityType.publication);
|
81
|
}
|
82
|
|
83
|
@Test
|
84
|
public void testPublicationsPage() throws URISyntaxException, DocumentException {
|
85
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
86
|
builder.addParameter("page", "4");
|
87
|
URI uri = builder.build();
|
88
|
System.out.println(uri);
|
89
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
90
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
91
|
ResponseHeader pageHeader = page.getResponseHeader();
|
92
|
assertEquals(4, pageHeader.getPage());
|
93
|
}
|
94
|
|
95
|
@Test
|
96
|
public void testPublicationsPageSize() throws URISyntaxException, DocumentException {
|
97
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
98
|
builder.addParameter("size", "100");
|
99
|
URI uri = builder.build();
|
100
|
System.out.println(uri);
|
101
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
102
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
103
|
ResponseHeader pageHeader = page.getResponseHeader();
|
104
|
assertEquals(publicationsQuery, pageHeader.getQuery());
|
105
|
assertEquals(100, pageHeader.getPageSize());
|
106
|
}
|
107
|
|
108
|
//Ignored just because it takes long time...
|
109
|
@Ignore
|
110
|
@Test
|
111
|
public void testMaxPageSizePublication() throws URISyntaxException, DocumentException {
|
112
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath).addParameter("size", "" + MAX_PAGE_SIZE + 1);
|
113
|
URI uri = builder.build();
|
114
|
System.out.println(uri);
|
115
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
116
|
checkException(results, "java.lang.IllegalArgumentException");
|
117
|
|
118
|
builder = new URIBuilder(requestBaseURL).setPath(publicationsPath).addParameter("size", "" + MAX_PAGE_SIZE);
|
119
|
uri = builder.build();
|
120
|
System.out.println(uri);
|
121
|
results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
122
|
checkNotException(results);
|
123
|
|
124
|
assertTrue(MAX_NUM_RESULTS >= MAX_PAGE_SIZE);
|
125
|
}
|
126
|
|
127
|
@Test
|
128
|
public void testPublicationsFormatXML() throws URISyntaxException, DocumentException {
|
129
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
130
|
builder.addParameter("format", "xml");
|
131
|
URI uri = builder.build();
|
132
|
System.out.println(uri);
|
133
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
134
|
Document doc = DocumentHelper.parseText(results);
|
135
|
assertNotNull(doc);
|
136
|
}
|
137
|
|
138
|
@Test
|
139
|
public void testPublicationsFormatWrong() throws URISyntaxException, DocumentException {
|
140
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
141
|
builder.addParameter("format", "hello");
|
142
|
URI uri = builder.build();
|
143
|
System.out.println(uri);
|
144
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
145
|
checkException(results, "java.lang.IllegalArgumentException");
|
146
|
}
|
147
|
|
148
|
@Test
|
149
|
public void testPublicationsECFunding() throws URISyntaxException, DocumentException {
|
150
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
151
|
builder.addParameter("hasECFunding", "true");
|
152
|
URI uri = builder.build();
|
153
|
System.out.println(uri);
|
154
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
155
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
156
|
assertTrue(page.allWithECFunding());
|
157
|
}
|
158
|
|
159
|
@Test
|
160
|
public void testPublicationsWTFunding() throws URISyntaxException, DocumentException {
|
161
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
162
|
builder.addParameter("hasWTFunding", "true");
|
163
|
URI uri = builder.build();
|
164
|
System.out.println(uri);
|
165
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
166
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
167
|
assertTrue(page.allWithWTFunding());
|
168
|
}
|
169
|
|
170
|
@Test
|
171
|
public void testPublicationsWTFunder() throws URISyntaxException, DocumentException {
|
172
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
173
|
builder.addParameter("funder", "wt");
|
174
|
URI uri1 = builder.build();
|
175
|
System.out.println(uri1);
|
176
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri1);
|
177
|
OpenAireDocumentPage pageWT = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
178
|
assertTrue(pageWT.allWithWTFunding());
|
179
|
|
180
|
URIBuilder builderUK = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
181
|
builderUK.addParameter("hasWTFunding", "true");
|
182
|
URI uri2 = builderUK.build();
|
183
|
System.out.println(uri2);
|
184
|
String resultsUK = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri2);
|
185
|
OpenAireDocumentPage pageUK = new OpenAireDocumentPage(DocumentHelper.parseText(resultsUK));
|
186
|
|
187
|
assertTrue(pageUK.getResponseHeader().getTotal() >= pageWT.getResponseHeader().getTotal());
|
188
|
}
|
189
|
|
190
|
@Test
|
191
|
public void testPublicationsSingleOpenaireID() throws URISyntaxException, DocumentException {
|
192
|
String testRecordId = "od________18::f055e1a3188aa57b454b1bfc0b882ed2";
|
193
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
194
|
builder.addParameter("openairePublicationID", testRecordId);
|
195
|
URI uri = builder.build();
|
196
|
System.out.println(uri);
|
197
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
198
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
199
|
assertEquals(1, page.getResponseHeader().getTotal());
|
200
|
List<String> objIds = page.getObjIdentifiers();
|
201
|
assertEquals(1, objIds.size());
|
202
|
assertTrue(objIds.contains(testRecordId));
|
203
|
}
|
204
|
|
205
|
@Test
|
206
|
public void testPublicationsMultipleOpenaireIDs1() throws URISyntaxException, DocumentException {
|
207
|
String testRecordId1 = "od________18::f055e1a3188aa57b454b1bfc0b882ed2";
|
208
|
String testRecordId2 = "od________18::5ea480618e9ab9e7db827fa498422075";
|
209
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
210
|
builder.addParameter("openairePublicationID", testRecordId1 + "," + testRecordId2);
|
211
|
URI uri = builder.build();
|
212
|
System.out.println(uri);
|
213
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
214
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
215
|
assertEquals(2, page.getResponseHeader().getTotal());
|
216
|
List<String> objIds = page.getObjIdentifiers();
|
217
|
assertEquals(2, objIds.size());
|
218
|
assertTrue(objIds.contains(testRecordId1));
|
219
|
assertTrue(objIds.contains(testRecordId2));
|
220
|
}
|
221
|
|
222
|
@Test
|
223
|
public void testPublicationsMultipleOpenaireIDs2() throws URISyntaxException, DocumentException {
|
224
|
String testRecordId1 = "od________18::f055e1a3188aa57b454b1bfc0b882ed2";
|
225
|
String testRecordId2 = "od________18::5ea480618e9ab9e7db827fa498422075";
|
226
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
227
|
builder.addParameter("openairePublicationID", testRecordId1);
|
228
|
builder.addParameter("openairePublicationID", testRecordId2);
|
229
|
URI uri = builder.build();
|
230
|
System.out.println(uri);
|
231
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
232
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
233
|
assertEquals(2, page.getResponseHeader().getTotal());
|
234
|
List<String> objIds = page.getObjIdentifiers();
|
235
|
assertEquals(2, objIds.size());
|
236
|
assertTrue(objIds.contains(testRecordId1));
|
237
|
assertTrue(objIds.contains(testRecordId2));
|
238
|
}
|
239
|
|
240
|
@Test
|
241
|
public void testPublicationsUnexistingOpenaireID() throws URISyntaxException, DocumentException {
|
242
|
String testRecordId = "foo::d1bb389d90e0a4393f7ea00c457a62b5";
|
243
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
244
|
builder.addParameter("openairePublicationID", testRecordId);
|
245
|
URI uri = builder.build();
|
246
|
System.out.println(uri);
|
247
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
248
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
249
|
assertEquals(0, page.getResponseHeader().getTotal());
|
250
|
}
|
251
|
|
252
|
//TODO: Unignore the test when the path to the pid is fixed on the index side
|
253
|
@Ignore
|
254
|
@Test
|
255
|
public void testPublicationsSingleDOI() throws URISyntaxException, DocumentException {
|
256
|
String testRecordId = "dedup_wf_001::fc4c3a6c233f478586f5fb3259b25bc4";
|
257
|
String doi = "10.1143/JPSJ.74.1954";
|
258
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
259
|
builder.addParameter("doi", doi);
|
260
|
URI uri = builder.build();
|
261
|
System.out.println(uri);
|
262
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
263
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
264
|
assertEquals(1, page.getResponseHeader().getTotal());
|
265
|
List<String> objIds = page.getObjIdentifiers();
|
266
|
assertEquals(1, objIds.size());
|
267
|
assertTrue(objIds.contains(testRecordId));
|
268
|
}
|
269
|
|
270
|
@Test
|
271
|
public void testPublicationsMultipleDOIs1() throws URISyntaxException, DocumentException {
|
272
|
String testRecordId1 = "dedup_wf_001::fc4c3a6c233f478586f5fb3259b25bc4";
|
273
|
String testRecordId2 = "dedup_wf_001::eb22f16c808595b58c277ba95bc96275";
|
274
|
String doi1 = "10.1143/JPSJ.74.1954";
|
275
|
String doi2 = "10.1103/physrevlett.116.116401";
|
276
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
277
|
builder.addParameter("doi", doi1 + "," + doi2);
|
278
|
URI uri = builder.build();
|
279
|
System.out.println(uri);
|
280
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
281
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
282
|
assertTrue(page.getResponseHeader().getTotal() >= 2);
|
283
|
List<String> objIds = page.getObjIdentifiers();
|
284
|
assertEquals(page.getResponseHeader().getTotal(), objIds.size());
|
285
|
assertTrue(objIds.contains(testRecordId1));
|
286
|
assertTrue(objIds.contains(testRecordId2));
|
287
|
}
|
288
|
|
289
|
@Test
|
290
|
public void testPublicationsFromDate() throws URISyntaxException, DocumentException {
|
291
|
String date = "2012-03-15";
|
292
|
String expectedQuery = publicationsQuery + " and (resultdateofacceptance within \"2012-03-15 "+today+"\")";
|
293
|
|
294
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath).addParameter("fromDateAccepted", date);
|
295
|
URI uri = builder.build();
|
296
|
System.out.println(uri);
|
297
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
298
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
299
|
assertNotNull(page);
|
300
|
assertEquals(expectedQuery, page.getResponseHeader().getQuery());
|
301
|
}
|
302
|
|
303
|
@Test
|
304
|
public void testPublicationsToDate() throws URISyntaxException, DocumentException {
|
305
|
String date = "2013-03-15";
|
306
|
String expectedQuery = publicationsQuery + " and (resultdateofacceptance within \"* 2013-03-15\")";
|
307
|
|
308
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath).addParameter("toDateAccepted", date);
|
309
|
URI uri = builder.build();
|
310
|
System.out.println(uri);
|
311
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
312
|
System.out.println(results.substring(0, 500));
|
313
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
314
|
assertNotNull(page);
|
315
|
assertEquals(expectedQuery, page.getResponseHeader().getQuery());
|
316
|
}
|
317
|
|
318
|
@Test
|
319
|
public void testPublicationsByTitle() throws URISyntaxException, DocumentException {
|
320
|
String title = "Enhanced Publications";
|
321
|
String expectedQuery = publicationsQuery + " and (resulttitle = \"Enhanced\") and (resulttitle = \"Publications\")";
|
322
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath).addParameter("title", title);
|
323
|
URI uri = builder.build();
|
324
|
System.out.println(uri);
|
325
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
326
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
327
|
assertNotNull(page);
|
328
|
assertEquals(expectedQuery, page.getResponseHeader().getQuery());
|
329
|
}
|
330
|
|
331
|
@Test
|
332
|
public void testPublicationsByAuthor() throws URISyntaxException, DocumentException {
|
333
|
String author = "bardi alessia manghi";
|
334
|
String expectedQuery = publicationsQuery + " and (relperson = \"bardi\") and (relperson = \"alessia\") and (relperson = \"manghi\")";
|
335
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath).addParameter("author", author);
|
336
|
URI uri = builder.build();
|
337
|
System.out.println(uri);
|
338
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
339
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
340
|
assertNotNull(page);
|
341
|
assertEquals(expectedQuery, page.getResponseHeader().getQuery());
|
342
|
}
|
343
|
|
344
|
|
345
|
// Expect exception because the openaireAuthorID field must not be accepted
|
346
|
@Test(expected=IllegalArgumentException.class)
|
347
|
public void testPublicationsByAuthorId() throws URISyntaxException, DocumentException{
|
348
|
String authorId = "od______2367::3fbd0b3533bd0e6089c1fe68b115f772";
|
349
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath).addParameter("openaireAuthorID", authorId);
|
350
|
URI uri = builder.build();
|
351
|
System.out.println(uri);
|
352
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
353
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
354
|
assertNotNull(page);
|
355
|
}
|
356
|
|
357
|
@Test
|
358
|
public void testPublicationsByProviderId() throws URISyntaxException, DocumentException {
|
359
|
// this is PUMA
|
360
|
String providerId = "opendoar____::300891a62162b960cf02ce3827bb363c";
|
361
|
String expectedQuery = publicationsQuery + " and (resulthostingdatasourceid exact \"opendoar____::300891a62162b960cf02ce3827bb363c\")";
|
362
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath).addParameter("openaireProviderID", providerId);
|
363
|
URI uri = builder.build();
|
364
|
System.out.println(uri);
|
365
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
366
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
367
|
assertNotNull(page);
|
368
|
assertEquals(expectedQuery, page.getResponseHeader().getQuery());
|
369
|
}
|
370
|
|
371
|
@Test
|
372
|
public void testPublicationsByMultipleProviderIds() throws URISyntaxException, DocumentException {
|
373
|
// this is PUMA
|
374
|
String providerId1 = "opendoar____::300891a62162b960cf02ce3827bb363c";
|
375
|
String providerId2 = "opendoar____::300891a62162b960cf02ce3827bb363c";
|
376
|
String expectedQuery = publicationsQuery + " and (resulthostingdatasourceid exact \"opendoar____::300891a62162b960cf02ce3827bb363c\") or (resulthostingdatasourceid exact \"opendoar____::300891a62162b960cf02ce3827bb363c\")";
|
377
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath).addParameter("openaireProviderID", providerId1 + "," + providerId2);
|
378
|
URI uri = builder.build();
|
379
|
System.out.println(uri);
|
380
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
381
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
382
|
assertNotNull(page);
|
383
|
assertEquals(expectedQuery, page.getResponseHeader().getQuery());
|
384
|
}
|
385
|
|
386
|
@Test
|
387
|
public void testPublicationsBy2ProviderId() throws URISyntaxException, DocumentException {
|
388
|
// this is PUMA
|
389
|
String providerId1 = "opendoar____::300891a62162b960cf02ce3827bb363c";
|
390
|
// this is UTL Repository
|
391
|
String providerId2 = "opendoar____::0c8ce55163055c4da50a81e0a273468c";
|
392
|
String expectedQuery = publicationsQuery + " and (resulthostingdatasourceid exact \"opendoar____::300891a62162b960cf02ce3827bb363c\") or (resulthostingdatasourceid exact \"opendoar____::0c8ce55163055c4da50a81e0a273468c\")";
|
393
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath).addParameter("openaireProviderID", providerId1)
|
394
|
.addParameter("openaireProviderID", providerId2);
|
395
|
URI uri = builder.build();
|
396
|
System.out.println(uri);
|
397
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
398
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
399
|
assertNotNull(page);
|
400
|
assertEquals(expectedQuery, page.getResponseHeader().getQuery());
|
401
|
}
|
402
|
|
403
|
@Test
|
404
|
public void testPublicationsByProject() throws URISyntaxException, DocumentException {
|
405
|
// <code>213153</code>
|
406
|
// <acronym>BREAST CT</acronym>
|
407
|
// <objIdentifier>corda_______::227de3026bb4ceb724f139437520a9ce</objIdentifier>
|
408
|
URIBuilder builderFP7ProjectID = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
409
|
builderFP7ProjectID.addParameter("FP7ProjectID", "213153");
|
410
|
URI uri1 = builderFP7ProjectID.build();
|
411
|
System.out.println(uri1);
|
412
|
String resultsFP7ProjectID = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri1);
|
413
|
OpenAireDocumentPage pageFP7ProjectID = new OpenAireDocumentPage(DocumentHelper.parseText(resultsFP7ProjectID));
|
414
|
|
415
|
URIBuilder builderOAProjectID = new URIBuilder(requestBaseURL).setPath(publicationsPath);
|
416
|
builderOAProjectID.addParameter("openaireProjectID", "corda_______::227de3026bb4ceb724f139437520a9ce");
|
417
|
URI uri2 = builderOAProjectID.build();
|
418
|
System.out.println(uri2);
|
419
|
String resultsOAProjectID = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri2);
|
420
|
OpenAireDocumentPage pageOAProjectID = new OpenAireDocumentPage(DocumentHelper.parseText(resultsOAProjectID));
|
421
|
|
422
|
assertEquals(pageFP7ProjectID.getResponseHeader().getTotal(), pageOAProjectID.getResponseHeader().getTotal());
|
423
|
}
|
424
|
|
425
|
@Test
|
426
|
public void testPublicationsWithProjects() throws URISyntaxException, DocumentException {
|
427
|
String expectedQuery = publicationsQuery + " and (relprojectid = \"*\")";
|
428
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath).addParameter("hasProject", "true");
|
429
|
URI uri = builder.build();
|
430
|
System.out.println(uri);
|
431
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
432
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
433
|
assertNotNull(page);
|
434
|
assertEquals(expectedQuery, page.getResponseHeader().getQuery());
|
435
|
}
|
436
|
|
437
|
@Test
|
438
|
public void testPublicationsWithoutProjects() throws URISyntaxException, DocumentException {
|
439
|
String expectedQuery = publicationsQuery + " not (relprojectid = \"*\")";
|
440
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath).addParameter("hasProject", "false");
|
441
|
URI uri = builder.build();
|
442
|
System.out.println(uri);
|
443
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
444
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
445
|
assertNotNull(page);
|
446
|
assertEquals(expectedQuery, page.getResponseHeader().getQuery());
|
447
|
}
|
448
|
|
449
|
@Test
|
450
|
public void testPublicationsOA() throws URISyntaxException, DocumentException {
|
451
|
String expectedQuery = publicationsQuery + " and (resultbestaccessright exact \"Open Access\")";
|
452
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath).addParameter("OA", "true");
|
453
|
URI uri = builder.build();
|
454
|
System.out.println(uri);
|
455
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
456
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
457
|
assertNotNull(page);
|
458
|
assertEquals(expectedQuery, page.getResponseHeader().getQuery());
|
459
|
}
|
460
|
|
461
|
@Test
|
462
|
public void testPublicationsNonOA() throws URISyntaxException, DocumentException {
|
463
|
String expectedQuery = publicationsQuery + " and (resultbestaccessright <> \"Open Access\")";
|
464
|
URIBuilder builder = new URIBuilder(requestBaseURL).setPath(publicationsPath).addParameter("OA", "false");
|
465
|
URI uri = builder.build();
|
466
|
System.out.println(uri);
|
467
|
String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
|
468
|
OpenAireDocumentPage page = new OpenAireDocumentPage(DocumentHelper.parseText(results));
|
469
|
assertNotNull(page);
|
470
|
assertEquals(expectedQuery, page.getResponseHeader().getQuery());
|
471
|
}
|
472
|
}
|