Removing AJSC and moving to SpringBoot
[aai/search-data-service.git] / src / test / java / org / onap / aai / sa / rest / DocumentApiTest.java
index b11e60b..49a10df 100644 (file)
  */
 package org.onap.aai.sa.rest;
 
-import org.glassfish.jersey.server.ResourceConfig;
-import org.glassfish.jersey.test.JerseyTest;
+//import org.glassfish.jersey.server.ResourceConfig;
+//import org.glassfish.jersey.test.JerseyTest;
 import org.json.simple.JSONObject;
 import org.json.simple.parser.JSONParser;
 import org.json.simple.parser.ParseException;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.MediaType;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.MvcResult;
 
 import javax.ws.rs.client.Entity;
 import javax.ws.rs.client.Invocation.Builder;
@@ -36,7 +44,18 @@ import java.io.IOException;
 
 import static org.junit.Assert.assertTrue;
 
-public class DocumentApiTest extends JerseyTest {
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+@AutoConfigureMockMvc
+public class DocumentApiTest  {
 
   private static final String INDEXES_URI = "/test/indexes/";
   private static final String DOCUMENT_URI = "documents/";
@@ -59,14 +78,8 @@ public class DocumentApiTest extends JerseyTest {
 
   private static final String CREATE_JSON_CONTENT = "creation content";
 
-
-  @Override
-  protected Application configure() {
-
-    // Make sure that our test endpoint is on the resource path
-    // for Jersey Test.
-    return new ResourceConfig(SearchServiceApiHarness.class);
-  }
+    @Autowired
+    private MockMvc mockMvc;
 
   /**
    * This test validates the behaviour of the 'Create Document' POST request
@@ -76,16 +89,17 @@ public class DocumentApiTest extends JerseyTest {
    * @throws ParseException
    */
   @Test
-  public void createDocumentTest() throws IOException, ParseException {
-    String result = target(INDEXES_URI + INDEX_NAME + "/" + DOCUMENT_URI).request().post(Entity.json(CREATE_JSON_CONTENT), String.class);
+  public void createDocumentTest() throws Exception {
 
+      MvcResult result = this.mockMvc.perform ( post ( INDEXES_URI + INDEX_NAME + "/" + DOCUMENT_URI ).contentType ( MediaType.APPLICATION_JSON )
+              .content ( CREATE_JSON_CONTENT ) ).andReturn ( );
 
     // Our stub document store DAO returns the parameters that it was
     // passed as the result string, so now we can validate that our
     // endpoint invoked it with the correct parameters.
 
     JSONParser parser = new JSONParser();
-    JSONObject json = (JSONObject) parser.parse(result);
+    JSONObject json = (JSONObject) parser.parse(result.getResponse ().getContentAsString ());
 
     assertTrue("Unexpected Result ", !json.get("etag").toString().isEmpty());
   }
@@ -98,16 +112,19 @@ public class DocumentApiTest extends JerseyTest {
    * @throws ParseException
    */
   @Test
-  public void updateDocumentTest() throws IOException, ParseException {
-    WebTarget target = target(INDEXES_URI + INDEX_NAME + "/" + DOCUMENT_URI + DOC_ID);
-    Builder request = target.request().header("If-Match", "1");
-    String result = request.put(Entity.json(CREATE_JSON_CONTENT), String.class);
+  public void updateDocumentTest() throws Exception {
+    // WebTarget target = target(INDEXES_URI + INDEX_NAME + "/" + DOCUMENT_URI + DOC_ID);
+    // Builder request = target.request().header("If-Match", "1");
+    // String result = request.put(Entity.json(CREATE_JSON_CONTENT), String.class);
+
+      MvcResult result = this.mockMvc.perform ( put ( INDEXES_URI + INDEX_NAME + "/" + DOCUMENT_URI + DOC_ID ).contentType ( MediaType.APPLICATION_JSON )
+              .header ( "If-Match", "1" ).content ( CREATE_JSON_CONTENT ) ).andReturn ( );
 
     // Our stub document store DAO returns the parameters that it was
     // passed as the result string, so now we can validate that our
     // endpoint invoked it with the correct parameters.
     JSONParser parser = new JSONParser();
-    JSONObject json = (JSONObject) parser.parse(result);
+    JSONObject json = (JSONObject) parser.parse(result.getResponse ().getContentAsString ());
 
     assertTrue("Unexpected Result ", !json.get("etag").toString().isEmpty());
   }
@@ -120,63 +137,80 @@ public class DocumentApiTest extends JerseyTest {
    * @throws ParseException
    */
   @Test
-  public void getDocumentTest() throws IOException, ParseException {
-    String result = target(INDEXES_URI + INDEX_NAME + "/" + DOCUMENT_URI + DOC_ID).request().get(String.class);
+  public void getDocumentTest() throws Exception {
+    // String result = target(INDEXES_URI + INDEX_NAME + "/" + DOCUMENT_URI + DOC_ID).request().get(String.class);
+
+      // MvcResult result = this.mockMvc.perform ( get ( INDEXES_URI + INDEX_NAME + "/" + DOCUMENT_URI + DOC_ID ) ).andReturn ();
+      MvcResult result = this.mockMvc.perform ( get ( INDEXES_URI + INDEX_NAME + "/" + DOCUMENT_URI + DOC_ID )
+              .contentType ( MediaType.APPLICATION_JSON )
+              .header ( "If-Match", "1" )
+              .content ( CREATE_JSON_CONTENT ) ).andReturn ( );
+
 
     // Our stub document store DAO returns the parameters that it was
     // passed as the result string, so now we can validate that our
     // endpoint invoked it with the correct parameters.
     JSONParser parser = new JSONParser();
-    JSONObject json = (JSONObject) parser.parse(result);
+    JSONObject json = (JSONObject) parser.parse(result.getResponse ().getContentAsString ());
 
     assertTrue("Unexpected Result ", !json.get("etag").toString().isEmpty());
 
   }
-
-  /**
-   * This test validates the behaviour of the 'Delete Document' DELETE request
-   * endpoint.
-   *
-   * @throws IOException
-   * @throws ParseException
-   */
+//
+//  /**
+//   * This test validates the behaviour of the 'Delete Document' DELETE request
+//   * endpoint.
+//   *
+//   * @throws IOException
+//   * @throws ParseException
+//   */
   @Test
-  public void deleteDocumentTest() throws IOException, ParseException {
-    WebTarget target = target(INDEXES_URI + INDEX_NAME + "/" + DOCUMENT_URI + DOC_ID);
-    Builder request = target.request().header("If-Match", "1");
-    String result = request.delete(String.class);
+  public void deleteDocumentTest() throws Exception {
+//    WebTarget target = target(INDEXES_URI + INDEX_NAME + "/" + DOCUMENT_URI + DOC_ID);
+//    Builder request = target.request().header("If-Match", "1");
+//    String result = request.delete(String.class);
+      MvcResult result = this.mockMvc.perform ( delete ( INDEXES_URI + INDEX_NAME + "/" + DOCUMENT_URI + DOC_ID )
+              .contentType ( MediaType.APPLICATION_JSON )
+              .header ( "If-Match", "1" )
+              .content ( CREATE_JSON_CONTENT ) ).andReturn ( );
+
 
 
     // Our stub document store DAO returns the parameters that it was
     // passed as the result string, so now we can validate that our
     // endpoint invoked it with the correct parameters.
-    assertTrue("Unexpected Result ", result.isEmpty());
+    assertTrue("Unexpected Result ", result.getResponse ().getContentAsString ().isEmpty ());
 
   }
-
-  /**
-   * This test validates the behaviour of the 'Search Documents' GET request
-   * endpoint.
-   *
-   * @throws IOException
-   * @throws ParseException
-   */
+//
+//  /**
+//   * This test validates the behaviour of the 'Search Documents' GET request
+//   * endpoint.
+//   *
+//   * @throws IOException
+//   * @throws ParseException
+//   */
   @Ignore
   @Test
-  public void searchDocumentTest1() throws IOException, ParseException {
-    String result = target(INDEXES_URI + INDEX_NAME + "/" + SEARCH_URI + SIMPLE_QUERY).request().get(String.class);
+  public void searchDocumentTest1() throws Exception {
+    // String result = target(INDEXES_URI + INDEX_NAME + "/" + SEARCH_URI + SIMPLE_QUERY).request().get(String.class);
+
+      MvcResult result = this.mockMvc.perform ( get ( INDEXES_URI + INDEX_NAME + "/" + SEARCH_URI + SIMPLE_QUERY )
+              .contentType ( MediaType.APPLICATION_JSON )
+              .header ( "If-Match", "1" )
+              .content ( CREATE_JSON_CONTENT ) ).andReturn ( );
 
     // Our stub document store DAO returns the parameters that it was
     // passed as the result string, so now we can validate that our
     // endpoint invoked it with the correct parameters.
     JSONParser parser = new JSONParser();
-    JSONObject json = (JSONObject) parser.parse(result);
+    JSONObject json = (JSONObject) parser.parse(result.getResponse ().getContentAsString ());
 
     assertTrue("Unexpected Result ", json.get("totalHits").toString().equals("1"));
 
 
   }
-
+//
   /**
    * This test validates the behaviour of the 'Search Documents' GET request
    * endpoint.
@@ -185,14 +219,18 @@ public class DocumentApiTest extends JerseyTest {
    * @throws ParseException
    */
   @Test
-  public void searchDocumentTest2() throws IOException, ParseException {
-    String result = target(INDEXES_URI + INDEX_NAME + "/" + SEARCH_URI).request().post(Entity.json(COMPLEX_QUERY), String.class);
+  public void searchDocumentTest2() throws Exception {
+    // String result = target(INDEXES_URI + INDEX_NAME + "/" + SEARCH_URI).request().post(Entity.json(COMPLEX_QUERY), String.class);
+
+      MvcResult result = this.mockMvc.perform ( get ( INDEXES_URI + INDEX_NAME + "/" + SEARCH_URI)
+              .contentType ( MediaType.APPLICATION_JSON )
+              .content ( COMPLEX_QUERY ) ).andReturn ( );
 
     // Our stub document store DAO returns the parameters that it was
     // passed as the result string, so now we can validate that our
     // endpoint invoked it with the correct parameters.
     JSONParser parser = new JSONParser();
-    JSONObject json = (JSONObject) parser.parse(result);
+    JSONObject json = (JSONObject) parser.parse(result.getResponse ().getContentAsString ());
     JSONObject resultJson = (JSONObject) json.get("searchResult");
 
     assertTrue("Unexpected Result ", resultJson.get("totalHits").toString().equals("1"));