package org.onap.aai.sparky.viewandinspect; import static org.junit.Assert.assertEquals; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import org.apache.camel.CamelContext; import org.apache.camel.Exchange; import org.apache.camel.Message; import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.impl.DefaultExchange; import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; import org.onap.aai.sparky.util.HttpServletHelper; import org.onap.aai.sparky.viewandinspect.entity.QueryRequest; import org.onap.aai.sparky.viewandinspect.services.VisualizationService; import org.onap.aai.sparky.viewandinspect.util.SchemaVisualizationTestDataBuilder; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; public class SchemaVisualizationProcessorTest { SchemaVisualizationProcessor schemaVisProcessor; VisualizationService mockVisualizationService; private Exchange exchange; private CamelContext camelContext; private Message mockRequestMessage; @Before public void init() throws Exception { schemaVisProcessor = new SchemaVisualizationProcessor(); mockVisualizationService = Mockito.mock(VisualizationService.class); camelContext = new DefaultCamelContext(); exchange = new DefaultExchange(camelContext); mockRequestMessage = Mockito.mock(Message.class); exchange.setIn(mockRequestMessage); } @Test public void testProcessVisualizationRequest() throws JsonParseException, JsonMappingException, IOException { String queryRequest = SchemaVisualizationTestDataBuilder.getQueryRequest(); HttpServletRequest request = Mockito.mock(HttpServletRequest.class); HttpServletHelper.setRequestPayload(request, "application/json", queryRequest); Mockito.when(request.getRequestURI()).thenReturn("fakeUri"); Mockito.when(request.getLocalPort()).thenReturn(8001); Mockito.when(mockRequestMessage.getBody(Mockito.eq(HttpServletRequest.class))).thenReturn(request); Mockito.when(mockRequestMessage.getBody(Mockito.eq(String.class))).thenReturn(queryRequest); ObjectMapper nonEmptyMapper = new ObjectMapper(); nonEmptyMapper.setSerializationInclusion(Include.NON_EMPTY); QueryRequest queryBody = nonEmptyMapper.readValue(queryRequest, QueryRequest.class); Mockito.when(mockVisualizationService.analyzeQueryRequestBody(Mockito.anyString())).thenReturn(queryBody); Mockito.when(mockVisualizationService.buildVisualizationUsingGenericQuery(Mockito.anyObject())).thenReturn(SchemaVisualizationTestDataBuilder.getSchemaVisResult()); schemaVisProcessor.setVisualizationService(mockVisualizationService); schemaVisProcessor.processVisualizationRequest(exchange); assertEquals("{}", exchange.getOut().getBody(String.class)); assertEquals(200, exchange.getOut().getHeader(Exchange.HTTP_RESPONSE_CODE)); } }