2 * ============LICENSE_START===================================================
3 * SPARKY (AAI UI service)
4 * ============================================================================
5 * Copyright © 2017 AT&T Intellectual Property.
6 * Copyright © 2017 Amdocs
8 * ============================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=====================================================
22 * ECOMP and OpenECOMP are trademarks
23 * and service marks of AT&T Intellectual Property.
26 package org.onap.aai.sparky.search;
28 import static org.junit.Assert.assertEquals;
30 import org.apache.camel.Exchange;
31 import org.apache.camel.Message;
32 import org.apache.camel.component.restlet.RestletConstants;
33 import org.junit.Before;
34 import org.junit.Test;
35 import org.mockito.ArgumentCaptor;
36 import org.mockito.Mockito;
37 import org.onap.aai.restclient.client.OperationResult;
38 import org.onap.aai.sparky.search.EntityCountHistoryProcessor;
39 import org.onap.aai.sparky.util.RestletUtils;
40 import org.restlet.Request;
41 import org.restlet.Response;
42 import org.restlet.data.ClientInfo;
43 import org.restlet.data.Reference;
44 import org.restlet.data.Status;
46 import com.fasterxml.jackson.databind.ObjectMapper;
47 import com.fasterxml.jackson.databind.node.ArrayNode;
48 import com.fasterxml.jackson.databind.node.ObjectNode;
50 public class EntityCountHistoryProcessorTest {
51 private EntityCountHistoryProcessor entityCountHistoryProcessor;
52 private Exchange mockExchange;
53 private Message mockRequestMessage;
54 private Message mockResponseMessage;
55 private Request mockRestletRequest;
56 private Response mockRestletResponse;
57 private ClientInfo requestClientInfo;
58 private RestletUtils mockRestletUtils;
61 public void init() throws Exception {
62 mockExchange = Mockito.mock(Exchange.class);
63 mockRequestMessage = Mockito.mock(Message.class);
64 mockResponseMessage = Mockito.mock(Message.class);
65 mockRestletRequest = Mockito.mock(Request.class);
66 mockRestletResponse = Mockito.mock(Response.class);
67 mockRestletUtils = Mockito.mock(RestletUtils.class);
69 entityCountHistoryProcessor = new EntityCountHistoryProcessor();
70 entityCountHistoryProcessor.setRestletUtils(mockRestletUtils);
72 requestClientInfo = new ClientInfo();
74 Mockito.when(mockRestletRequest.getClientInfo()).thenReturn(requestClientInfo);
76 Mockito.when(mockRequestMessage.getHeader(RestletConstants.RESTLET_REQUEST, Request.class))
77 .thenReturn(mockRestletRequest);
78 Mockito.when(mockRequestMessage.getHeader(RestletConstants.RESTLET_RESPONSE, Response.class))
79 .thenReturn(mockRestletResponse);
80 Mockito.when(mockExchange.getIn()).thenReturn(mockRequestMessage);
81 Mockito.when(mockExchange.getOut()).thenReturn(mockResponseMessage);
84 public String getStubbedData_getEntityCountHistory_success() {
85 ObjectMapper mapper = new ObjectMapper();
86 ObjectNode entityCountEntry = mapper.createObjectNode();
88 entityCountEntry.put("doc_count", 2069);
89 entityCountEntry.put("key", "complex");
91 ArrayNode arrayNode = mapper.createArrayNode();
92 arrayNode.add(entityCountEntry);
94 ObjectNode resultNode = mapper.createObjectNode();
95 resultNode.set("result", arrayNode);
97 return resultNode.toString();
101 public void testGetEntityCountHistory_success() {
102 EntityCountHistoryProcessor spyEntityCountHistoryProcessor =
103 Mockito.spy(entityCountHistoryProcessor);
104 OperationResult operationResult = new OperationResult();
106 String result = getStubbedData_getEntityCountHistory_success();
108 operationResult.setResult(Status.SUCCESS_OK.getCode(), result);
110 Mockito.when(mockExchange.getIn().getHeader("CamelHttpQuery", String.class)).thenReturn("");
112 Mockito.doReturn("table").when(spyEntityCountHistoryProcessor).getTypeParameter(Mockito.any());
113 Mockito.doReturn(operationResult).when(spyEntityCountHistoryProcessor).getResults(Mockito.any(),
116 spyEntityCountHistoryProcessor.getEntityCountHistory(mockExchange);
118 ArgumentCaptor<String> entityCaptor = ArgumentCaptor.forClass(String.class);
119 Mockito.verify(mockRestletResponse, Mockito.atLeast(1)).setEntity(entityCaptor.capture(),
121 assertEquals(operationResult.getResult(), entityCaptor.getValue());
125 public void testGetEntityCountHistory_failure_noTypeParameter() {
126 Mockito.when(mockRestletRequest.getOriginalRef()).thenReturn(new Reference());
128 EntityCountHistoryProcessor spyEntityCountHistoryProcessor =
129 Mockito.spy(entityCountHistoryProcessor);
130 OperationResult operationResult = new OperationResult();
132 String result = getStubbedData_getEntityCountHistory_success();
134 operationResult.setResult(Status.SUCCESS_OK.getCode(), result);
136 Mockito.when(mockExchange.getIn().getHeader("CamelHttpQuery", String.class)).thenReturn("");
138 Mockito.doReturn("").when(spyEntityCountHistoryProcessor).getTypeParameter(Mockito.any());
139 Mockito.doReturn(operationResult).when(spyEntityCountHistoryProcessor).getResults(Mockito.any(), Mockito.any());
141 spyEntityCountHistoryProcessor.getEntityCountHistory(mockExchange);
143 ArgumentCaptor<String> entityCaptor = ArgumentCaptor.forClass(String.class);
144 Mockito.verify(mockRestletResponse, Mockito.atLeast(1)).setEntity(entityCaptor.capture(),
146 assertEquals("{ \"errorMessage\" : Unsupported request. Resource not found. }",
147 entityCaptor.getValue());
149 ArgumentCaptor<Status> responseCodeCaptor = ArgumentCaptor.forClass(Status.class);
150 Mockito.verify(mockRestletResponse, Mockito.atLeast(1)).setStatus(responseCodeCaptor.capture());
151 assertEquals(Status.CLIENT_ERROR_NOT_FOUND, responseCodeCaptor.getValue());