1
|
package eu.dnetlib.data.search.app.plan.web.api;
|
2
|
|
3
|
import eu.dnetlib.data.search.web.api.APIResponseFormatter;
|
4
|
import eu.dnetlib.data.search.web.utils.RequestResponseHandler;
|
5
|
import eu.dnetlib.domain.data.SearchResult;
|
6
|
import junit.framework.Assert;
|
7
|
import org.apache.log4j.BasicConfigurator;
|
8
|
import org.junit.Before;
|
9
|
import org.junit.Test;
|
10
|
import org.mockito.Mockito;
|
11
|
|
12
|
import javax.servlet.http.HttpServletRequest;
|
13
|
import javax.ws.rs.core.MediaType;
|
14
|
import java.util.Arrays;
|
15
|
|
16
|
import static org.mockito.Mockito.when;
|
17
|
|
18
|
|
19
|
/**
|
20
|
* Created by kiatrop on 22/11/2016.
|
21
|
*/
|
22
|
public class APIResponseFormatterTest {
|
23
|
HttpServletRequest requestMock;
|
24
|
|
25
|
@Before
|
26
|
public void before() {
|
27
|
BasicConfigurator.configure();
|
28
|
requestMock = Mockito.mock(HttpServletRequest.class);
|
29
|
when(requestMock.getRequestURL()).thenReturn(new StringBuffer().append("http://demo.url/search"));
|
30
|
}
|
31
|
|
32
|
@Test
|
33
|
public void createMetaTest() {
|
34
|
//Meta only with query
|
35
|
Assert.assertEquals("{\"status\": \"success\", \"code\":\"200\", \"query\":\"oaftype=result\", \"filters\":[], \"total\":\"0\", \"page\":\"0\", \"size\":\"0\", \"_links\": {\"self\": {\"href\":\"http://demo.url/search?page=0&size=0\"}}}",
|
36
|
APIResponseFormatter.createMeta(requestMock, MediaType.APPLICATION_JSON, "oaftype=result", null, 0, 0, 0));
|
37
|
|
38
|
Assert.assertEquals("<status>success</status><code>200</code><query>oaftype=result</query><filters></filters><total>0</total><page>0</page><size>0</size><links><self>http://demo.url/search?page=0&size=0</self></links>",
|
39
|
APIResponseFormatter.createMeta(requestMock, MediaType.APPLICATION_XML, "oaftype=result", null, 0, 0, 0));
|
40
|
|
41
|
//Meta only with query and filters
|
42
|
Assert.assertEquals("{\"status\": \"success\", \"code\":\"200\", \"query\":\"oaftype=result\", \"filters\":[\"(resultfunderid:ec____::EC)\",\"(resultfundinglevel1:1) (resultfundinglevel1:2)\"], \"total\":\"0\", \"page\":\"0\", \"size\":\"0\", \"_links\": {\"self\": {\"href\":\"http://demo.url/search?page=0&size=0\"}}}",
|
43
|
APIResponseFormatter.createMeta(requestMock, MediaType.APPLICATION_JSON, "oaftype=result", Arrays.asList(new String[]{"(resultfunderid:ec____::EC)", "(resultfundinglevel1:1) (resultfundinglevel1:2)"}), 0, 0, 0));
|
44
|
|
45
|
Assert.assertEquals("<status>success</status><code>200</code><query>oaftype=result</query><filters><filter>(resultfunderid:ec____::EC)</filter><filter>(resultfundinglevel1:1) (resultfundinglevel1:2)</filter></filters><total>0</total><page>0</page><size>0</size><links><self>http://demo.url/search?page=0&size=0</self></links>",
|
46
|
APIResponseFormatter.createMeta(requestMock, MediaType.APPLICATION_XML, "oaftype=result", Arrays.asList(new String[]{"(resultfunderid:ec____::EC)", "(resultfundinglevel1:1) (resultfundinglevel1:2)"}), 0, 0, 0));
|
47
|
|
48
|
//Meta with query and paging
|
49
|
Assert.assertEquals("{\"status\": \"success\", \"code\":\"200\", \"query\":\"oaftype=result\", \"filters\":[\"(resultfunderid:ec____::EC)\",\"(resultfundinglevel1:1) (resultfundinglevel1:2)\"], \"total\":\"10\", \"page\":\"1\", \"size\":\"5\", \"_links\": {\"first\": {\"href\":\"http://demo.url/search?page=0&size=5\"}, \"last\": {\"href\":\"http://demo.url/search?page=1&size=5\"}, \"previous\": {\"href\":\"http://demo.url/search?page=0&size=5\"}, \"next\": {\"href\":\"http://demo.url/search?page=1&size=5\"}, \"self\": {\"href\":\"http://demo.url/search?page=1&size=5\"}}}",
|
50
|
APIResponseFormatter.createMeta(requestMock, MediaType.APPLICATION_JSON, "oaftype=result", Arrays.asList(new String[]{"(resultfunderid:ec____::EC)", "(resultfundinglevel1:1) (resultfundinglevel1:2)"}), 10, 1, 5));
|
51
|
|
52
|
Assert.assertEquals("<status>success</status><code>200</code><query>oaftype=result</query><filters><filter>(resultfunderid:ec____::EC)</filter><filter>(resultfundinglevel1:1) (resultfundinglevel1:2)</filter></filters><total>10</total><page>1</page><size>5</size><links><first>http://demo.url/search?page=0&size=5</first><last>http://demo.url/search?page=1&size=5</last><previous>http://demo.url/search?page=0&size=5</previous><next>http://demo.url/search?page=1&size=5</next><self>http://demo.url/search?page=1&size=5</self></links>",
|
53
|
APIResponseFormatter.createMeta(requestMock, MediaType.APPLICATION_XML, "oaftype=result", Arrays.asList(new String[]{"(resultfunderid:ec____::EC)", "(resultfundinglevel1:1) (resultfundinglevel1:2)"}), 10, 1, 5));
|
54
|
|
55
|
}
|
56
|
|
57
|
@Test
|
58
|
public void createEntitiesResponseTest(){
|
59
|
//SearchApiService.getResponseByEntity(String fullQuery, RequestResponseHandler.Entity entity, int offset, int limit, String format, HttpServletRequest request, boolean refine, List<String> refineFields, List<String> fieldQueries, String type) {
|
60
|
SearchResult emptySearchResult = new SearchResult("oaftype=result", null, 0, 0, 0, null, null, null);
|
61
|
System.out.println(APIResponseFormatter.createEntitiesResponse(requestMock, RequestResponseHandler.Entity.PUBLICATION, "oaftype=result", null, emptySearchResult, true, MediaType.APPLICATION_JSON));
|
62
|
}
|
63
|
}
|