Project

General

Profile

1
package eu.dnetlib.api.client;
2

    
3
import java.net.URI;
4
import java.net.URISyntaxException;
5

    
6
import eu.dnetlib.api.utils.OpenAireDocumentPage;
7
import eu.dnetlib.api.utils.ResponseHeader;
8
import org.apache.http.client.utils.URIBuilder;
9
import org.dom4j.Document;
10
import org.dom4j.DocumentException;
11
import org.dom4j.DocumentHelper;
12
import org.junit.Ignore;
13
import org.junit.Test;
14

    
15
import static org.junit.Assert.assertEquals;
16
import static org.junit.Assert.assertTrue;
17

    
18
@Ignore
19
public class OpenaireDatasetsApiClientTest extends OpenaireApiClientTest {
20

    
21
	@Test
22
	public void testDatasetsOpenaire() throws URISyntaxException, DocumentException {
23
		URIBuilder builder = new URIBuilder(requestBaseURL).setPath(datasetsPath);
24
		String results = getApiClient().doRequest(EntityType.dataset, ApiModel.openaire, builder.build());
25
		Document doc = DocumentHelper.parseText(results);
26
		OpenAireDocumentPage page = new OpenAireDocumentPage(doc);
27
		ResponseHeader pageHeader = page.getResponseHeader();
28
		assertEquals("unexpected query", datasetsQuery, pageHeader.getQuery());
29
		assertEquals("unexpected page size", defaultPageSize, pageHeader.getPageSize());
30
	}
31

    
32
	@Test
33
	public void testMaxPageSizeDataset() throws URISyntaxException, DocumentException {
34
		URIBuilder builder = new URIBuilder(requestBaseURL).setPath(datasetsPath).addParameter("size", "" + MAX_PAGE_SIZE + 1);
35
		URI uri = builder.build();
36
		System.out.println(uri);
37
		String results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
38
		checkException(results, "java.lang.IllegalArgumentException");
39

    
40
		builder = new URIBuilder(requestBaseURL).setPath(datasetsPath).addParameter("size", "" + MAX_PAGE_SIZE);
41
		uri = builder.build();
42
		System.out.println(uri);
43
		results = getApiClient().doRequest(EntityType.publication, ApiModel.openaire, uri);
44
		checkNotException(results);
45

    
46
		assertTrue("unexpected number of results",MAX_NUM_RESULTS >= MAX_PAGE_SIZE);
47
	}
48

    
49
	@Test
50
	public void testDatasetParameters() throws URISyntaxException, DocumentException {
51
		for (String param : commonParameters) {
52
			if (!param.equals("model") && !param.equals("format") && !param.equals("page") && !param.equals("size") && !param.equals("sortBy")) {
53
				URIBuilder builder = new URIBuilder(requestBaseURL).setPath(datasetsPath).addParameter(param, "test");
54
				URI uri = builder.build();
55
				System.out.println(uri);
56
				String results = getApiClient().doRequest(EntityType.dataset, ApiModel.openaire, uri);
57
				checkNotException(results);
58
			}
59
		}
60
		for (String param : datasetParameters) {
61
			URIBuilder builder = null;
62
			if (!param.equals("fromDateAccepted") && !param.equals("toDateAccepted")) {
63
				builder = new URIBuilder(requestBaseURL).setPath(datasetsPath).addParameter(param, "test");
64
			}
65
			else {
66
				builder = new URIBuilder(requestBaseURL).setPath(datasetsPath).addParameter(param, "2017-06-15");
67
			}
68
			URI uri = builder.build();
69
			System.out.println(uri);
70
			String results = getApiClient().doRequest(EntityType.dataset, ApiModel.openaire, uri);
71
			checkNotException(results);
72
		}
73
	}
74

    
75
	@Test
76
	public void testSortByDatasetsParameters() throws URISyntaxException, DocumentException {
77
		checkSortByParamaters(EntityType.dataset);
78
	}
79

    
80
	@Test
81
	public void testDatasetsOpenaireSortBy() throws URISyntaxException, DocumentException {
82
		String sortBy = "projectstartyear,descending";
83
		URIBuilder builder = new URIBuilder(requestBaseURL).setPath(datasetsPath).setParameter("sortBy", sortBy);
84
		String results = getApiClient().doRequest(EntityType.dataset, ApiModel.openaire, builder.build());
85
		System.out.println(results);
86
		// Document doc = DocumentHelper.parseText(results);
87
		// OpenAireDocumentPage page = new OpenAireDocumentPage(doc);
88
		// ResponseHeader pageHeader = page.getResponseHeader();
89
		// assertEquals(datasetsQuery, pageHeader.getQuery());
90
		// assertEquals(1, pageHeader.getPage());
91
		// assertEquals(defaultPageSize, pageHeader.getPageSize());
92
	}
93

    
94
}
(2-2/5)