-/**\r
- * ============LICENSE_START=======================================================\r
- * org.onap.aai\r
- * ================================================================================\r
- * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.\r
- * Copyright © 2017-2018 Amdocs\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END=========================================================\r
- */\r
-package org.onap.aai.sa.rest;\r
-\r
-import com.fasterxml.jackson.core.JsonProcessingException;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-// import javax.ws.rs.core.HttpHeaders;\r
-import javax.ws.rs.core.MultivaluedMap;\r
-import org.junit.Assert;\r
-import org.junit.Before;\r
-import org.junit.Ignore;\r
-import org.junit.Test;\r
-import org.mockito.InjectMocks;\r
-import org.mockito.Mock;\r
-import org.mockito.Mockito;\r
-import org.mockito.MockitoAnnotations;\r
-import org.mockito.invocation.InvocationOnMock;\r
-import org.mockito.stubbing.Answer;\r
-import org.onap.aai.sa.searchdbabstraction.elasticsearch.config.ElasticSearchConfig;\r
-import org.onap.aai.sa.searchdbabstraction.elasticsearch.dao.DocumentStoreDataEntity;\r
-import org.onap.aai.sa.searchdbabstraction.elasticsearch.dao.DocumentStoreInterface;\r
-import org.onap.aai.sa.searchdbabstraction.elasticsearch.dao.ElasticSearchHttpController;\r
-import org.onap.aai.sa.searchdbabstraction.elasticsearch.exception.DocumentStoreOperationException;\r
-import org.onap.aai.sa.searchdbabstraction.entity.DocumentOperationResult;\r
-import org.onap.aai.sa.searchdbabstraction.entity.ErrorResult;\r
-import org.onap.aai.sa.searchdbabstraction.entity.SearchHits;\r
-import org.onap.aai.sa.searchdbabstraction.entity.SearchOperationResult;\r
-import org.springframework.http.HttpHeaders;\r
-import org.springframework.http.HttpStatus;\r
-import org.springframework.http.ResponseEntity;\r
-import java.util.Properties;\r
-\r
-\r
-public class DocumentTest {\r
-\r
- @Mock\r
- SearchServiceApi searchServiceApi;\r
-\r
- @Mock\r
- HttpServletRequest request;\r
-\r
- @Mock\r
- HttpHeaders headers;\r
-\r
- @Mock\r
- HttpServletResponse httpResponse;\r
-\r
- @Mock\r
- DocumentStoreInterface documentStore;\r
-\r
- @Mock\r
- MultivaluedMap<String, String> multivaluedMap;\r
-\r
- @InjectMocks\r
- IndexApi indexApi;\r
-\r
- DocumentApi documentApi;\r
-\r
- @Mock\r
- ElasticSearchHttpController httpController;\r
-\r
- @Before\r
- public void setUp() {\r
- MockitoAnnotations.initMocks(this);\r
- documentApi = new DocumentApi(searchServiceApi);\r
- }\r
-\r
- @Test\r
- public void testDocumentClass_AllMethods() throws JsonProcessingException {\r
- Document doc = new Document();\r
- doc.setField("name-1", "value-1");\r
- Assert.assertTrue(doc.getFields().size() == 1);\r
- Assert.assertTrue(doc.toJson().contains("value-1"));\r
- Assert.assertNotNull(doc.toString());\r
- Assert.assertTrue(doc.toString().contains("name-1"));\r
- }\r
-\r
- @Test\r
- public void testProcessPost_NullContent() {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = null;\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- ResponseEntity<String> response =\r
- documentApi.processPost(content, request, headers, httpResponse, "index", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.BAD_REQUEST.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- @Test\r
- public void testProcessPost_NotNullContent() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenThrow(IllegalArgumentException.class);\r
- ResponseEntity<?> response =\r
- documentApi.processPost(content, request, headers, httpResponse, "index", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
- }\r
-\r
- //\r
- @Test\r
- public void testProcessPost_ValidRequest() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- DocumentOperationResult result = new DocumentOperationResult();\r
- result.setResultCode(150);\r
- result.setError(new ErrorResult("type-1", "reason-1"));\r
- result.setFailureCause("test-failure");\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenReturn(true);\r
- Mockito.when(documentStore.createDocument(Mockito.anyString(), Mockito.any(DocumentStoreDataEntity.class),\r
- Mockito.anyBoolean())).thenReturn(result);\r
- Mockito.doNothing().when(httpResponse).setHeader(Mockito.anyString(), Mockito.anyString());\r
- ResponseEntity<String> response =\r
- documentApi.processPost(content, request, headers, httpResponse, "index", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.INTERNAL_SERVER_ERROR.value() == response.getStatusCodeValue());\r
- }\r
-\r
- //\r
- @Test\r
- public void testProcessSearchWithGet_Created() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- SearchOperationResult result = new SearchOperationResult();\r
- result.setResultCode(201);\r
- SearchHits hits = new SearchHits();\r
- hits.setTotalHits("2");\r
- result.setSearchResult(hits);\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenReturn(true);\r
- Mockito.when(documentStore.search(Mockito.anyString(), Mockito.anyString())).thenReturn(result);\r
- ResponseEntity<String> response =\r
- documentApi.processSearchWithGet(content, request, headers, "index-1", "query-text", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.CREATED.value() == response.getStatusCodeValue());\r
-\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- @Test\r
- public void testProcessSearchWithGet_ValidateThrowsException() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- SearchOperationResult result = new SearchOperationResult();\r
- result.setResultCode(201);\r
- SearchHits hits = new SearchHits();\r
- hits.setTotalHits("2");\r
- result.setSearchResult(hits);\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenThrow(IllegalArgumentException.class);\r
- Mockito.when(documentStore.search(Mockito.anyString(), Mockito.anyString())).thenReturn(result);\r
- ResponseEntity<String> response =\r
- documentApi.processSearchWithGet(content, request, headers, "index-1", "query-text", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
-\r
- }\r
-\r
- @Test\r
- public void testProcessSearchWithGet_ValidateIsFalse() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- SearchOperationResult result = new SearchOperationResult();\r
- result.setResultCode(201);\r
- SearchHits hits = new SearchHits();\r
- hits.setTotalHits("2");\r
- result.setSearchResult(hits);\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenReturn(false);\r
- Mockito.when(documentStore.search(Mockito.anyString(), Mockito.anyString())).thenReturn(result);\r
- ResponseEntity<String> response =\r
- documentApi.processSearchWithGet(content, request, headers, "index-1", "query-text", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
-\r
- }\r
-\r
- @Test\r
- public void testProcessSearchWithGet_InvalidResult() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- SearchOperationResult result = new SearchOperationResult();\r
- result.setResultCode(302);\r
- SearchHits hits = new SearchHits();\r
- hits.setTotalHits("2");\r
- result.setSearchResult(hits);\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenReturn(true);\r
- Mockito.when(documentStore.search(Mockito.anyString(), Mockito.anyString())).thenReturn(result);\r
- ResponseEntity<String> response =\r
- documentApi.processSearchWithGet(content, request, headers, "index-1", "query-text", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FOUND.value() == response.getStatusCodeValue());\r
-\r
- }\r
-\r
- @Test\r
- public void testProcessPut_NullContent() {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = null;\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- ResponseEntity<String> response =\r
- documentApi.processPut(content, request, headers, httpResponse, "index", "id-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.BAD_REQUEST.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- @Test\r
- public void testProcessPut_RequestThrowsException() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenThrow(IllegalArgumentException.class);\r
- ResponseEntity<String> response =\r
- documentApi.processPut(content, request, headers, httpResponse, "index", "id-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @Test\r
- public void testProcessPut_RequestInvalid() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenReturn(false);\r
- ResponseEntity<String> response =\r
- documentApi.processPut(content, request, headers, httpResponse, "index", "id-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @Test\r
- public void testProcessPut_ResultInvalid() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- DocumentOperationResult result = new DocumentOperationResult();\r
- result.setResultCode(302);\r
- result.setError(new ErrorResult("type-1", "reason-1"));\r
- result.setFailureCause("test-failure");\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenReturn(true);\r
- Mockito.when(documentStore.createDocument(Mockito.anyString(), Mockito.any(DocumentStoreDataEntity.class),\r
- Mockito.anyBoolean())).thenReturn(result);\r
- ResponseEntity<String> response =\r
- documentApi.processPut(content, request, headers, httpResponse, "index", "id-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FOUND.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- @Test\r
- public void testProcessDelete_RequestThrowsException() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenThrow(IllegalArgumentException.class);\r
- ResponseEntity<String> response =\r
- documentApi.processDelete(content, request, headers, httpResponse, "index", "id-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @Test\r
- public void testProcessDelete_RequestInvalid() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenReturn(false);\r
- ResponseEntity<String> response =\r
- documentApi.processDelete(content, request, headers, httpResponse, "index", "id-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @Ignore\r
- @Test\r
- public void testProcessDelete_ResultInvalid() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- DocumentOperationResult result = new DocumentOperationResult();\r
- result.setResultCode(302);\r
- result.setError(new ErrorResult("type-1", "reason-1"));\r
- result.setFailureCause("test-failure");\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenReturn(true);\r
- Mockito.when(documentStore.deleteDocument(Mockito.anyString(), Mockito.any(DocumentStoreDataEntity.class)))\r
- .thenReturn(result);\r
- ResponseEntity<String> response =\r
- documentApi.processDelete(content, request, headers, httpResponse, "index", "id-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FOUND.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- @Test\r
- public void testProcessGet_RequestThrowsException() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenThrow(IllegalArgumentException.class);\r
- ResponseEntity<String> response =\r
- documentApi.processGet(content, request, headers, httpResponse, "index", "id-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @Test\r
- public void testProcessGet_RequestInvalid() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenReturn(false);\r
- ResponseEntity<String> response =\r
- documentApi.processGet(content, request, headers, httpResponse, "index", "id-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @Test\r
- public void testProcessGet_ResultInvalid() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- DocumentOperationResult result = new DocumentOperationResult();\r
- result.setResultCode(302);\r
- result.setError(new ErrorResult("type-1", "reason-1"));\r
- result.setFailureCause("test-failure");\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenReturn(true);\r
- Mockito.when(documentStore.getDocument(Mockito.anyString(), Mockito.any(DocumentStoreDataEntity.class)))\r
- .thenReturn(result);\r
- ResponseEntity<String> response =\r
- documentApi.processGet(content, request, headers, httpResponse, "index", "id-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FOUND.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @Test\r
- public void testQueryWithGetWithPayload_NullContent() {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = null;\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- ResponseEntity<String> response =\r
- documentApi.queryWithGetWithPayload(content, request, headers, "index-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.BAD_REQUEST.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- @Test\r
- public void testQueryWithGetWithPayload_RequestThrowsException() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenThrow(IllegalArgumentException.class);\r
- ResponseEntity<String> response =\r
- documentApi.queryWithGetWithPayload(content, request, headers, "index-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @Test\r
- public void testQueryWithGetWithPayload_RequestInvalid() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenReturn(false);\r
- ResponseEntity<String> response =\r
- documentApi.queryWithGetWithPayload(content, request, headers, "index-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @Test\r
- public void testCreateProcessIndex_IndexApi_RequestInvalid() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenReturn(false);\r
- ResponseEntity<String> response =\r
- indexApi.processCreateIndex("document-1", request, headers, "index-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- @Test\r
- public void testCreateProcessIndex_IndexApi_RequestThrowsException() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenThrow(IllegalArgumentException.class);\r
- ResponseEntity<String> response =\r
- indexApi.processCreateIndex("document-1", request, headers, "index-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @Test\r
- public void testCreateProcessIndex_IndexApi_NullDocument() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String documentSchema = null;\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenReturn(true);\r
- ResponseEntity<String> response =\r
- indexApi.processCreateIndex(documentSchema, request, headers, "index-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.INTERNAL_SERVER_ERROR.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @Test\r
- public void testProcessDelete_IndexApi_RequestInvalid() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenReturn(false);\r
- ResponseEntity<String> response = indexApi.processDelete("document-1", request, headers, documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- @Test\r
- public void testProcessDelete_IndexApi_RequestThrowsException() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenThrow(IllegalArgumentException.class);\r
- ResponseEntity<String> response = indexApi.processDelete("document-1", request, headers, documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- @Test\r
- public void testProcessDelete_IndexApi_DeleteIndexException() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenReturn(true);\r
- Mockito.when(documentStore.deleteIndex(Mockito.anyString())).thenThrow(DocumentStoreOperationException.class);\r
- ResponseEntity<String> response = indexApi.processDelete("document-1", request, headers, documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.INTERNAL_SERVER_ERROR.value() == response.getStatusCodeValue());\r
- }\r
-\r
- @Test\r
- public void testUserAuthorization() throws Exception {\r
- String transactionId = "transactionId-1";\r
- String remoteAddr = "http://127.0.0.1";\r
- String content = "content";\r
- // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;\r
- Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);\r
- Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);\r
- Mockito.when(request.getMethod()).thenReturn("testMethod");\r
- Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));\r
- Mockito.when(request.getRemoteHost()).thenReturn("localhost");\r
- Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),\r
- Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))\r
- .thenCallRealMethod();\r
-\r
- Mockito.doAnswer(new Answer<ElasticSearchConfig>() {\r
- public ElasticSearchConfig answer(InvocationOnMock invocation) {\r
- Properties properties = new Properties();\r
- return new ElasticSearchConfig(properties);\r
- }\r
- }).when(httpController).getElasticSearchConfig();\r
-\r
- searchServiceApi.documentStore = httpController;\r
-\r
- ResponseEntity<String> response =\r
- documentApi.processPut(content, request, headers, httpResponse, "index", "id-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
-\r
- Mockito.doAnswer(new Answer<ElasticSearchConfig>() {\r
- public ElasticSearchConfig answer(InvocationOnMock invocation) {\r
- Properties properties = new Properties();\r
- properties.put(ElasticSearchConfig.ES_AUTH_ENABLED, "true");\r
- return new ElasticSearchConfig(properties);\r
- }\r
- }).when(httpController).getElasticSearchConfig();\r
-\r
-\r
- response = documentApi.processPut(content, request, headers, httpResponse, "index", "id-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());\r
-\r
- Mockito.doAnswer(new Answer<ElasticSearchConfig>() {\r
- public ElasticSearchConfig answer(InvocationOnMock invocation) {\r
- Properties properties = new Properties();\r
- properties.put(ElasticSearchConfig.ES_AUTH_ENABLED, "false");\r
- return new ElasticSearchConfig(properties);\r
- }\r
- }).when(httpController).getElasticSearchConfig();\r
-\r
- DocumentOperationResult result = new DocumentOperationResult();\r
- result.setResultCode(302);\r
- result.setError(new ErrorResult("type-1", "reason-1"));\r
- result.setFailureCause("test-failure");\r
- Mockito.when(documentStore.createDocument(Mockito.anyString(), Mockito.any(DocumentStoreDataEntity.class),\r
- Mockito.anyBoolean())).thenReturn(result);\r
- response = documentApi.processPut(content, request, headers, httpResponse, "index", "id-1", documentStore);\r
- Assert.assertNotNull(response);\r
- Assert.assertTrue(HttpStatus.FOUND.value() == response.getStatusCodeValue());\r
-\r
- }\r
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2018 Amdocs
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.aai.sa.rest;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+// import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MultivaluedMap;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+import org.onap.aai.sa.searchdbabstraction.elasticsearch.config.ElasticSearchConfig;
+import org.onap.aai.sa.searchdbabstraction.elasticsearch.dao.DocumentStoreDataEntity;
+import org.onap.aai.sa.searchdbabstraction.elasticsearch.dao.DocumentStoreInterface;
+import org.onap.aai.sa.searchdbabstraction.elasticsearch.dao.ElasticSearchHttpController;
+import org.onap.aai.sa.searchdbabstraction.elasticsearch.exception.DocumentStoreOperationException;
+import org.onap.aai.sa.searchdbabstraction.entity.DocumentOperationResult;
+import org.onap.aai.sa.searchdbabstraction.entity.ErrorResult;
+import org.onap.aai.sa.searchdbabstraction.entity.SearchHits;
+import org.onap.aai.sa.searchdbabstraction.entity.SearchOperationResult;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import java.util.Properties;
+
+
+public class DocumentTest {
+
+ @Mock
+ SearchServiceApi searchServiceApi;
+
+ @Mock
+ HttpServletRequest request;
+
+ @Mock
+ HttpHeaders headers;
+
+ @Mock
+ HttpServletResponse httpResponse;
+
+ @Mock
+ DocumentStoreInterface documentStore;
+
+ @Mock
+ MultivaluedMap<String, String> multivaluedMap;
+
+ @InjectMocks
+ IndexApi indexApi;
+
+ DocumentApi documentApi;
+
+ @Mock
+ ElasticSearchHttpController httpController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ documentApi = new DocumentApi(searchServiceApi);
+ }
+
+ @Test
+ public void testDocumentClass_AllMethods() throws JsonProcessingException {
+ Document doc = new Document();
+ doc.setField("name-1", "value-1");
+ Assert.assertTrue(doc.getFields().size() == 1);
+ Assert.assertTrue(doc.toJson().contains("value-1"));
+ Assert.assertNotNull(doc.toString());
+ Assert.assertTrue(doc.toString().contains("name-1"));
+ }
+
+ @Test
+ public void testProcessPost_NullContent() {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = null;
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ ResponseEntity<String> response =
+ documentApi.processPost(content, request, headers, httpResponse, "index", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.BAD_REQUEST.value() == response.getStatusCodeValue());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testProcessPost_NotNullContent() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenThrow(IllegalArgumentException.class);
+ ResponseEntity<?> response =
+ documentApi.processPost(content, request, headers, httpResponse, "index", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+ }
+
+ //
+ @Test
+ public void testProcessPost_ValidRequest() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ DocumentOperationResult result = new DocumentOperationResult();
+ result.setResultCode(150);
+ result.setError(new ErrorResult("type-1", "reason-1"));
+ result.setFailureCause("test-failure");
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenReturn(true);
+ Mockito.when(documentStore.createDocument(Mockito.anyString(), Mockito.any(DocumentStoreDataEntity.class),
+ Mockito.anyBoolean())).thenReturn(result);
+ Mockito.doNothing().when(httpResponse).setHeader(Mockito.anyString(), Mockito.anyString());
+ ResponseEntity<String> response =
+ documentApi.processPost(content, request, headers, httpResponse, "index", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.INTERNAL_SERVER_ERROR.value() == response.getStatusCodeValue());
+ }
+
+ //
+ @Test
+ public void testProcessSearchWithGet_Created() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ SearchOperationResult result = new SearchOperationResult();
+ result.setResultCode(201);
+ SearchHits hits = new SearchHits();
+ hits.setTotalHits("2");
+ result.setSearchResult(hits);
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenReturn(true);
+ Mockito.when(documentStore.search(Mockito.anyString(), Mockito.anyString())).thenReturn(result);
+ ResponseEntity<String> response =
+ documentApi.processSearchWithGet(content, request, headers, "index-1", "query-text", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.CREATED.value() == response.getStatusCodeValue());
+
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testProcessSearchWithGet_ValidateThrowsException() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ SearchOperationResult result = new SearchOperationResult();
+ result.setResultCode(201);
+ SearchHits hits = new SearchHits();
+ hits.setTotalHits("2");
+ result.setSearchResult(hits);
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenThrow(IllegalArgumentException.class);
+ Mockito.when(documentStore.search(Mockito.anyString(), Mockito.anyString())).thenReturn(result);
+ ResponseEntity<String> response =
+ documentApi.processSearchWithGet(content, request, headers, "index-1", "query-text", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+
+ }
+
+ @Test
+ public void testProcessSearchWithGet_ValidateIsFalse() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ SearchOperationResult result = new SearchOperationResult();
+ result.setResultCode(201);
+ SearchHits hits = new SearchHits();
+ hits.setTotalHits("2");
+ result.setSearchResult(hits);
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenReturn(false);
+ Mockito.when(documentStore.search(Mockito.anyString(), Mockito.anyString())).thenReturn(result);
+ ResponseEntity<String> response =
+ documentApi.processSearchWithGet(content, request, headers, "index-1", "query-text", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+
+ }
+
+ @Test
+ public void testProcessSearchWithGet_InvalidResult() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ SearchOperationResult result = new SearchOperationResult();
+ result.setResultCode(302);
+ SearchHits hits = new SearchHits();
+ hits.setTotalHits("2");
+ result.setSearchResult(hits);
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenReturn(true);
+ Mockito.when(documentStore.search(Mockito.anyString(), Mockito.anyString())).thenReturn(result);
+ ResponseEntity<String> response =
+ documentApi.processSearchWithGet(content, request, headers, "index-1", "query-text", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FOUND.value() == response.getStatusCodeValue());
+
+ }
+
+ @Test
+ public void testProcessPut_NullContent() {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = null;
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ ResponseEntity<String> response =
+ documentApi.processPut(content, request, headers, httpResponse, "index", "id-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.BAD_REQUEST.value() == response.getStatusCodeValue());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testProcessPut_RequestThrowsException() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenThrow(IllegalArgumentException.class);
+ ResponseEntity<String> response =
+ documentApi.processPut(content, request, headers, httpResponse, "index", "id-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+ }
+
+ @Test
+ public void testProcessPut_RequestInvalid() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenReturn(false);
+ ResponseEntity<String> response =
+ documentApi.processPut(content, request, headers, httpResponse, "index", "id-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+ }
+
+ @Test
+ public void testProcessPut_ResultInvalid() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ DocumentOperationResult result = new DocumentOperationResult();
+ result.setResultCode(302);
+ result.setError(new ErrorResult("type-1", "reason-1"));
+ result.setFailureCause("test-failure");
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenReturn(true);
+ Mockito.when(documentStore.createDocument(Mockito.anyString(), Mockito.any(DocumentStoreDataEntity.class),
+ Mockito.anyBoolean())).thenReturn(result);
+ ResponseEntity<String> response =
+ documentApi.processPut(content, request, headers, httpResponse, "index", "id-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FOUND.value() == response.getStatusCodeValue());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testProcessDelete_RequestThrowsException() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenThrow(IllegalArgumentException.class);
+ ResponseEntity<String> response =
+ documentApi.processDelete(content, request, headers, httpResponse, "index", "id-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+ }
+
+ @Test
+ public void testProcessDelete_RequestInvalid() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenReturn(false);
+ ResponseEntity<String> response =
+ documentApi.processDelete(content, request, headers, httpResponse, "index", "id-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+ }
+
+ @Ignore
+ @Test
+ public void testProcessDelete_ResultInvalid() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ DocumentOperationResult result = new DocumentOperationResult();
+ result.setResultCode(302);
+ result.setError(new ErrorResult("type-1", "reason-1"));
+ result.setFailureCause("test-failure");
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenReturn(true);
+ Mockito.when(documentStore.deleteDocument(Mockito.anyString(), Mockito.any(DocumentStoreDataEntity.class)))
+ .thenReturn(result);
+ ResponseEntity<String> response =
+ documentApi.processDelete(content, request, headers, httpResponse, "index", "id-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FOUND.value() == response.getStatusCodeValue());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testProcessGet_RequestThrowsException() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenThrow(IllegalArgumentException.class);
+ ResponseEntity<String> response =
+ documentApi.processGet(content, request, headers, httpResponse, "index", "id-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+ }
+
+ @Test
+ public void testProcessGet_RequestInvalid() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenReturn(false);
+ ResponseEntity<String> response =
+ documentApi.processGet(content, request, headers, httpResponse, "index", "id-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+ }
+
+ @Test
+ public void testProcessGet_ResultInvalid() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ DocumentOperationResult result = new DocumentOperationResult();
+ result.setResultCode(302);
+ result.setError(new ErrorResult("type-1", "reason-1"));
+ result.setFailureCause("test-failure");
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenReturn(true);
+ Mockito.when(documentStore.getDocument(Mockito.anyString(), Mockito.any(DocumentStoreDataEntity.class)))
+ .thenReturn(result);
+ ResponseEntity<String> response =
+ documentApi.processGet(content, request, headers, httpResponse, "index", "id-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FOUND.value() == response.getStatusCodeValue());
+ }
+
+ @Test
+ public void testQueryWithGetWithPayload_NullContent() {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = null;
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ ResponseEntity<String> response =
+ documentApi.queryWithGetWithPayload(content, request, headers, "index-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.BAD_REQUEST.value() == response.getStatusCodeValue());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testQueryWithGetWithPayload_RequestThrowsException() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenThrow(IllegalArgumentException.class);
+ ResponseEntity<String> response =
+ documentApi.queryWithGetWithPayload(content, request, headers, "index-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+ }
+
+ @Test
+ public void testQueryWithGetWithPayload_RequestInvalid() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenReturn(false);
+ ResponseEntity<String> response =
+ documentApi.queryWithGetWithPayload(content, request, headers, "index-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+ }
+
+ @Test
+ public void testCreateProcessIndex_IndexApi_RequestInvalid() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenReturn(false);
+ ResponseEntity<String> response =
+ indexApi.processCreateIndex("document-1", request, headers, "index-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testCreateProcessIndex_IndexApi_RequestThrowsException() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenThrow(IllegalArgumentException.class);
+ ResponseEntity<String> response =
+ indexApi.processCreateIndex("document-1", request, headers, "index-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+ }
+
+ @Test
+ public void testCreateProcessIndex_IndexApi_NullDocument() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String documentSchema = null;
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenReturn(true);
+ ResponseEntity<String> response =
+ indexApi.processCreateIndex(documentSchema, request, headers, "index-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.INTERNAL_SERVER_ERROR.value() == response.getStatusCodeValue());
+ }
+
+ @Test
+ public void testProcessDelete_IndexApi_RequestInvalid() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenReturn(false);
+ ResponseEntity<String> response = indexApi.processDelete("document-1", request, headers, documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testProcessDelete_IndexApi_RequestThrowsException() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenThrow(IllegalArgumentException.class);
+ ResponseEntity<String> response = indexApi.processDelete("document-1", request, headers, documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testProcessDelete_IndexApi_DeleteIndexException() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenReturn(true);
+ Mockito.when(documentStore.deleteIndex(Mockito.anyString())).thenThrow(DocumentStoreOperationException.class);
+ ResponseEntity<String> response = indexApi.processDelete("document-1", request, headers, documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.INTERNAL_SERVER_ERROR.value() == response.getStatusCodeValue());
+ }
+
+ @Test
+ public void testUserAuthorization() throws Exception {
+ String transactionId = "transactionId-1";
+ String remoteAddr = "http://127.0.0.1";
+ String content = "content";
+ // Mockito.when(headers.getRequestHeaders()).thenReturn(multivaluedMap);;
+ Mockito.when(multivaluedMap.getFirst(Mockito.anyString())).thenReturn(transactionId);
+ Mockito.when(request.getRemoteAddr()).thenReturn(remoteAddr);
+ Mockito.when(request.getMethod()).thenReturn("testMethod");
+ Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("http://127.0.0.1"));
+ Mockito.when(request.getRemoteHost()).thenReturn("localhost");
+ Mockito.when(searchServiceApi.validateRequest(Mockito.any(HttpHeaders.class),
+ Mockito.any(HttpServletRequest.class), Mockito.any(ApiUtils.Action.class), Mockito.anyString()))
+ .thenCallRealMethod();
+
+ Mockito.doAnswer(new Answer<ElasticSearchConfig>() {
+ public ElasticSearchConfig answer(InvocationOnMock invocation) {
+ Properties properties = new Properties();
+ return new ElasticSearchConfig(properties);
+ }
+ }).when(httpController).getElasticSearchConfig();
+
+ searchServiceApi.documentStore = httpController;
+
+ ResponseEntity<String> response =
+ documentApi.processPut(content, request, headers, httpResponse, "index", "id-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+
+ Mockito.doAnswer(new Answer<ElasticSearchConfig>() {
+ public ElasticSearchConfig answer(InvocationOnMock invocation) {
+ Properties properties = new Properties();
+ properties.put(ElasticSearchConfig.ES_AUTH_ENABLED, "true");
+ return new ElasticSearchConfig(properties);
+ }
+ }).when(httpController).getElasticSearchConfig();
+
+
+ response = documentApi.processPut(content, request, headers, httpResponse, "index", "id-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FORBIDDEN.value() == response.getStatusCodeValue());
+
+ Mockito.doAnswer(new Answer<ElasticSearchConfig>() {
+ public ElasticSearchConfig answer(InvocationOnMock invocation) {
+ Properties properties = new Properties();
+ properties.put(ElasticSearchConfig.ES_AUTH_ENABLED, "false");
+ return new ElasticSearchConfig(properties);
+ }
+ }).when(httpController).getElasticSearchConfig();
+
+ DocumentOperationResult result = new DocumentOperationResult();
+ result.setResultCode(302);
+ result.setError(new ErrorResult("type-1", "reason-1"));
+ result.setFailureCause("test-failure");
+ Mockito.when(documentStore.createDocument(Mockito.anyString(), Mockito.any(DocumentStoreDataEntity.class),
+ Mockito.anyBoolean())).thenReturn(result);
+ response = documentApi.processPut(content, request, headers, httpResponse, "index", "id-1", documentStore);
+ Assert.assertNotNull(response);
+ Assert.assertTrue(HttpStatus.FOUND.value() == response.getStatusCodeValue());
+
+ }
}
\ No newline at end of file