edb6d4c7fc7001dacf313f5baba59cfee3cce36a
[aai/sparky-be.git] / sparkybe-onap-service / src / test / java / org / onap / aai / sparky / viewandinspect / SchemaVisualizationProcessorTest.java
1 package org.onap.aai.sparky.viewandinspect;
2
3 import static org.junit.Assert.assertEquals;
4
5 import java.io.IOException;
6
7 import javax.servlet.http.HttpServletRequest;
8
9 import org.apache.camel.CamelContext;
10 import org.apache.camel.Exchange;
11 import org.apache.camel.Message;
12 import org.apache.camel.impl.DefaultCamelContext;
13 import org.apache.camel.impl.DefaultExchange;
14 import org.junit.Before;
15 import org.junit.Test;
16 import org.mockito.Mockito;
17 import org.onap.aai.sparky.util.HttpServletHelper;
18 import org.onap.aai.sparky.viewandinspect.entity.QueryRequest;
19 import org.onap.aai.sparky.viewandinspect.util.SchemaVisualizationTestDataBuilder;
20
21 import com.fasterxml.jackson.annotation.JsonInclude.Include;
22 import com.fasterxml.jackson.core.JsonParseException;
23 import com.fasterxml.jackson.databind.JsonMappingException;
24 import com.fasterxml.jackson.databind.ObjectMapper;
25
26 public class SchemaVisualizationProcessorTest {
27
28   SchemaVisualizationProcessor schemaVisProcessor;
29   VisualizationService mockVisualizationService;
30   
31   private Exchange exchange;
32   private CamelContext camelContext;
33   private Message  mockRequestMessage;
34   
35   @Before
36   public void init() throws Exception {
37       schemaVisProcessor = new SchemaVisualizationProcessor();
38      
39       mockVisualizationService = Mockito.mock(VisualizationService.class);
40
41       camelContext = new DefaultCamelContext();
42       exchange = new DefaultExchange(camelContext);
43     
44       mockRequestMessage = Mockito.mock(Message.class);
45       
46       exchange.setIn(mockRequestMessage);
47       
48   }
49   
50   @Test
51   public void testProcessVisualizationRequest() throws JsonParseException, JsonMappingException, IOException {
52     
53     String queryRequest = SchemaVisualizationTestDataBuilder.getQueryRequest();
54     HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
55     HttpServletHelper.setRequestPayload(request, "application/json", queryRequest);
56     
57     Mockito.when(request.getRequestURI()).thenReturn("fakeUri");
58     Mockito.when(request.getLocalPort()).thenReturn(8001);
59     Mockito.when(mockRequestMessage.getBody(Mockito.eq(HttpServletRequest.class))).thenReturn(request);
60     Mockito.when(mockRequestMessage.getBody(Mockito.eq(String.class))).thenReturn(queryRequest);
61     
62     ObjectMapper nonEmptyMapper = new ObjectMapper();
63     nonEmptyMapper.setSerializationInclusion(Include.NON_EMPTY);
64     QueryRequest queryBody = nonEmptyMapper.readValue(queryRequest, QueryRequest.class);
65     
66     Mockito.when(mockVisualizationService.analyzeQueryRequestBody(Mockito.anyString())).thenReturn(queryBody);
67     Mockito.when(mockVisualizationService.buildVisualization(Mockito.anyObject())).thenReturn(SchemaVisualizationTestDataBuilder.getSchemaVisResult());
68
69     schemaVisProcessor.setVisualizationService(mockVisualizationService);
70     schemaVisProcessor.processVisualizationRequest(exchange);
71     
72     assertEquals("{}", exchange.getOut().getBody(String.class));
73     assertEquals(200, exchange.getOut().getHeader(Exchange.HTTP_RESPONSE_CODE));
74
75   }
76   
77 }