Merge "fix apigateway for mediatorserver routes"
[ccsdk/features.git] / sdnr / wt / apigateway / provider / src / test / java / org / onap / ccsdk / features / sdnr / wt / apigateway / test / TestQueryCallback.java
diff --git a/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestQueryCallback.java b/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestQueryCallback.java
new file mode 100644 (file)
index 0000000..78341df
--- /dev/null
@@ -0,0 +1,98 @@
+package org.onap.ccsdk.features.sdnr.wt.apigateway.test;
+
+import static org.junit.Assert.*;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.ccsdk.features.sdnr.wt.apigateway.EsServlet.IRequestCallback;
+import org.onap.ccsdk.features.sdnr.wt.apigateway.MyProperties;
+import org.onap.ccsdk.features.sdnr.wt.apigateway.test.helper.HelpEsServlet;
+import org.onap.ccsdk.features.sdnr.wt.apigateway.test.helper.HelpServletBase;
+
+public class TestQueryCallback extends HelpServletBase{
+
+       private static final int PORT = 40011;
+       
+       public TestQueryCallback() {
+               super("/database",PORT);
+       }
+
+       final String LR = "\n";
+
+       
+       private boolean hasCallback=false;
+       
+       @Test
+       public void test() throws ServletException, IOException {
+
+               String tmpFilename = "tmp1.cfg";
+               File tmpFile = new File(tmpFilename);
+               if (tmpFile.exists())
+                       tmpFile.delete();
+               MyProperties properties = MyProperties.Instantiate(tmpFile,true);
+               String query = "{\"query\":{\"match_all\":{}}}";
+               String tmpconfigcontent2 = "aai=off" + LR + "aaiHeaders=[]" + LR + "database=http://" + HOST + ":" + PORT + LR
+                               + "insecure=1" + LR + "cors=1";
+               HelpEsServlet servlet = new HelpEsServlet();
+               this.setServlet(servlet);
+               HelpEsServlet.registerRequestCallback("/mwtn/mediator-server", new IRequestCallback() {
+                       
+                       @Override
+                       public void onRequest(String uri, String method) {
+                               hasCallback=true;
+                               
+                       }
+               });
+               properties.load(new ByteArrayInputStream(tmpconfigcontent2.getBytes()));
+               testrequest("/database/mwtn/mediator-server/_search",HTTPMETHOD_POST, query, HelpEsServlet.RESPONSE_POST, true);
+               int wait=10;
+               while(wait-->0) {
+                       if(hasCallback) {
+                               break;
+                       }
+                       try {
+                               Thread.sleep(1000);
+                       } catch (InterruptedException e) {
+                               Thread.interrupted();
+                       }                       
+               }
+               assertTrue("no request callback received",hasCallback);
+               hasCallback=false;
+               testrequest("/database/mwtn/mediatr-server/_search",HTTPMETHOD_POST, query, HelpEsServlet.RESPONSE_POST, true);
+               wait=5;
+               while(wait-->0) {
+                       if(hasCallback) {
+                               break;
+                       }
+                       try {
+                               Thread.sleep(1000);
+                       } catch (InterruptedException e) {
+                               Thread.interrupted();
+                       }                       
+               }
+               assertFalse("received request callback",hasCallback);
+               
+                
+               
+               if (tmpFile.exists())
+                       tmpFile.delete();
+               
+               
+       }
+       @Before
+       public void init() throws IOException{  
+               HelpServletBase.initEsTestWebserver(PORT,"/database");
+       }
+       @After
+       public void deinit() {
+               HelpServletBase.stopTestWebserver();
+       }
+
+}