Project

General

Profile

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
}
(1-1/2)