diff options
Diffstat (limited to 'sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestQueryCallback.java')
-rw-r--r-- | sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestQueryCallback.java | 98 |
1 files changed, 98 insertions, 0 deletions
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 index 000000000..78341dfad --- /dev/null +++ b/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestQueryCallback.java @@ -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(); + } + +} |