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.dal.rest;
28 import static org.junit.Assert.assertEquals;
29 import static org.mockito.Matchers.anyObject;
30 import static org.mockito.Matchers.anyString;
31 import static org.mockito.Matchers.same;
32 import static org.mockito.Mockito.doReturn;
33 import static org.mockito.Mockito.doThrow;
34 import static org.mockito.Mockito.mock;
36 import org.junit.Before;
37 import org.junit.Test;
38 import org.junit.runner.RunWith;
39 import org.mockito.runners.MockitoJUnitRunner;
40 import org.onap.aai.sparky.dal.rest.OperationResult;
41 import org.onap.aai.sparky.dal.rest.RestClientBuilder;
42 import org.onap.aai.sparky.dal.rest.RestfulDataAccessor;
44 import com.sun.jersey.api.client.Client;
45 import com.sun.jersey.api.client.ClientResponse;
46 import com.sun.jersey.api.client.WebResource;
47 import com.sun.jersey.api.client.WebResource.Builder;
50 * The Class RestfulDataAccessorTest.
52 @RunWith(MockitoJUnitRunner.class)
53 public class RestfulDataAccessorTest {
55 private RestClientBuilder clientBuilderMock;
56 private Client mockClient;
57 private ClientResponse mockClientResponse;
58 private WebResource mockWebResource;
59 private Builder mockBuilder;
65 * @throws Exception the exception
68 public void init() throws Exception {
71 * common collaborator mocking setup
74 clientBuilderMock = mock(RestClientBuilder.class);
75 mockClient = mock(Client.class);
76 mockClientResponse = mock(ClientResponse.class);
77 mockWebResource = mock(WebResource.class);
78 mockBuilder = mock(Builder.class);
80 doReturn(mockClient).when(clientBuilderMock).getClient();
81 doReturn(mockWebResource).when(mockClient).resource(anyString());
82 doReturn(mockBuilder).when(mockWebResource).accept(anyString());
83 doReturn(mockBuilder).when(mockBuilder).header(anyString(), anyObject());
85 doReturn(mockClientResponse).when(mockBuilder).get(same(ClientResponse.class));
86 doReturn(mockClientResponse).when(mockBuilder).put(same(ClientResponse.class), anyObject());
87 doReturn(mockClientResponse).when(mockBuilder).post(same(ClientResponse.class), anyObject());
88 doReturn(mockClientResponse).when(mockBuilder).delete(same(ClientResponse.class));
94 * @throws Exception the exception
97 public void successfulDoPut() throws Exception {
100 * set test mocking expectations
103 doReturn(200).when(mockClientResponse).getStatus();
104 doReturn("Success").when(mockClientResponse).getEntity(String.class);
107 RestfulDataAccessor dataAccessor = new RestfulDataAccessor(clientBuilderMock);
108 OperationResult actualResult = dataAccessor.doPut("myUrl", "jsonPayload", "acceptContentType");
110 assertEquals("Unexpected result", 200, actualResult.getResultCode());
116 * @throws Exception the exception
119 public void successfulDoGet() throws Exception {
122 * set test mocking expectations
125 doReturn(200).when(mockClientResponse).getStatus();
126 doReturn("Success").when(mockClientResponse).getEntity(String.class);
129 RestfulDataAccessor dataAccessor = new RestfulDataAccessor(clientBuilderMock);
130 OperationResult actualResult = dataAccessor.doGet("myUrl", "anyContentType");
132 assertEquals("Unexpected result", 200, actualResult.getResultCode());
137 * Successful do post.
139 * @throws Exception the exception
142 public void successfulDoPost() throws Exception {
145 * set test mocking expectations
148 doReturn(200).when(mockClientResponse).getStatus();
149 doReturn("Success").when(mockClientResponse).getEntity(String.class);
152 RestfulDataAccessor dataAccessor = new RestfulDataAccessor(clientBuilderMock);
153 OperationResult actualResult = dataAccessor.doPost("myUrl", "jsonPayload", "anyContentType");
155 assertEquals("Unexpected result", 200, actualResult.getResultCode());
160 * Successful do delete.
162 * @throws Exception the exception
165 public void successfulDoDelete() throws Exception {
168 * set test mocking expectations
171 doReturn(200).when(mockClientResponse).getStatus();
172 doReturn("Success").when(mockClientResponse).getEntity(String.class);
175 RestfulDataAccessor dataAccessor = new RestfulDataAccessor(clientBuilderMock);
176 OperationResult actualResult = dataAccessor.doDelete("myUrl", "anyContentType");
178 assertEquals("Unexpected result", 200, actualResult.getResultCode());
183 * Operation results in null pointer exception.
185 * @throws Exception the exception
188 public void operationResultsInNullPointerException() throws Exception {
191 * set test mocking expectations
195 doThrow(new NullPointerException("Parameter can't be null")).when(clientBuilderMock)
199 RestfulDataAccessor dataAccessor = new RestfulDataAccessor(clientBuilderMock);
200 OperationResult actualResult = dataAccessor.doDelete("myUrl", "anyContentType");
202 assertEquals("Unexpected result", 500, actualResult.getResultCode());
207 * Operation results in null client response.
209 * @throws Exception the exception
212 public void operationResultsInNullClientResponse() throws Exception {
215 * set test mocking expectations
217 // return null client response
218 doReturn(null).when(mockBuilder).delete(same(ClientResponse.class));
221 RestfulDataAccessor dataAccessor = new RestfulDataAccessor(clientBuilderMock);
222 OperationResult actualResult = dataAccessor.doDelete("myUrl", "anyContentType");
224 assertEquals("Unexpected result", 500, actualResult.getResultCode());