From a83f76e40bc8e092d6a0c0fda247c9d075325f9f Mon Sep 17 00:00:00 2001 From: Peter Thomas Date: Tue, 10 Nov 2020 11:29:19 +0530 Subject: [PATCH] [rewrite] #1281 focused commit to show changes to [karate-demo] for mock server --- .../mock/contract/ConsumerUsingMockTest.java | 13 +++-- .../contract/ConsumerUsingProxyHttpTest.java | 47 +++++++++---------- .../ConsumerUsingProxyRewriteSslTest.java | 45 +++++++++--------- .../ConsumerUsingProxyRewriteTest.java | 45 +++++++++--------- ...aymentServiceContractUsingMockSslTest.java | 13 +++-- .../PaymentServiceContractUsingMockTest.java | 27 +++++------ .../mock/contract/PaymentServiceMockMain.java | 15 +++--- .../contract/PaymentServiceMockSslMain.java | 16 ++++--- .../src/test/java/mock/contract/increment.js | 7 ++- .../mock/contract/payment-service.feature | 2 +- .../test/java/mock/micro/CatsMockRunner.java | 14 +++--- .../mock/proxy/DemoMockProceedRunner.java | 21 ++++----- .../java/mock/proxy/DemoMockProxyRunner.java | 21 ++++----- .../mock/proxy/DemoMockProxySslRunner.java | 23 ++++----- .../test/java/mock/proxy/DemoMockRunner.java | 9 ++-- .../java/mock/proxy/DemoMockSslRunner.java | 9 ++-- .../java/mock/proxy/demo-mock-proceed.feature | 3 +- .../src/test/java/mock/proxy/increment.js | 10 ---- .../test/java/mock/web/CatsMockStarter.java | 9 ++-- 19 files changed, 154 insertions(+), 195 deletions(-) delete mode 100644 karate-demo/src/test/java/mock/proxy/increment.js diff --git a/karate-demo/src/test/java/mock/contract/ConsumerUsingMockTest.java b/karate-demo/src/test/java/mock/contract/ConsumerUsingMockTest.java index 5967b9da0..05ee455da 100644 --- a/karate-demo/src/test/java/mock/contract/ConsumerUsingMockTest.java +++ b/karate-demo/src/test/java/mock/contract/ConsumerUsingMockTest.java @@ -1,10 +1,7 @@ package mock.contract; -import com.intuit.karate.FileUtils; import com.intuit.karate.JsonUtils; -import com.intuit.karate.netty.FeatureServer; -import java.io.File; -import java.util.Collections; +import com.intuit.karate.runtime.MockServer; import org.junit.AfterClass; import org.junit.Test; import static org.junit.Assert.*; @@ -20,14 +17,16 @@ public class ConsumerUsingMockTest { private static final Logger logger = LoggerFactory.getLogger(ConsumerUsingMockTest.class); - private static FeatureServer server; + private static MockServer server; private static Consumer consumer; @BeforeClass public static void beforeClass() { String queueName = "DEMO.MOCK"; - File file = FileUtils.getFileRelativeTo(ConsumerUsingMockTest.class, "payment-service-mock.feature"); - server = FeatureServer.start(file, 0, false, Collections.singletonMap("queueName", queueName)); + server = MockServer + .feature("classpath:mock/contract/payment-service-mock.feature") + .arg("queueName", queueName) + .http(0).build(); String paymentServiceUrl = "http://localhost:" + server.getPort(); consumer = new Consumer(paymentServiceUrl, queueName); } diff --git a/karate-demo/src/test/java/mock/contract/ConsumerUsingProxyHttpTest.java b/karate-demo/src/test/java/mock/contract/ConsumerUsingProxyHttpTest.java index 9a2a02c33..1a65932bd 100644 --- a/karate-demo/src/test/java/mock/contract/ConsumerUsingProxyHttpTest.java +++ b/karate-demo/src/test/java/mock/contract/ConsumerUsingProxyHttpTest.java @@ -1,11 +1,7 @@ package mock.contract; -import com.intuit.karate.FileUtils; import com.intuit.karate.JsonUtils; -import com.intuit.karate.netty.FeatureServer; -import java.io.File; -import java.util.Collections; -import java.util.Map; +import com.intuit.karate.runtime.MockServer; import org.junit.AfterClass; import org.junit.Test; import static org.junit.Assert.*; @@ -17,26 +13,27 @@ * @author pthomas3 */ public class ConsumerUsingProxyHttpTest { - + private static ConfigurableApplicationContext context; - private static FeatureServer server; + private static MockServer server; private static Consumer consumer; - + @BeforeClass public static void beforeClass() { // actual service - String queueName = "DEMO.PROXY.HTTP"; - context = PaymentService.start(queueName, false); - String paymentServiceUrl = "http://localhost:" + PaymentService.getPort(context); + String queueName = "DEMO.PROXY.HTTP"; + context = PaymentService.start(queueName, false); + String paymentServiceUrl = "http://localhost:" + PaymentService.getPort(context); // proxy - File file = FileUtils.getFileRelativeTo(ConsumerUsingProxyHttpTest.class, "payment-service-proxy.feature"); - // setting 'paymentServiceUrl' to null uses request url as-is (no re-writing) - so acts as an http proxy - Map config = Collections.singletonMap("paymentServiceUrl", null); - server = FeatureServer.start(file, 0, false, config); + server = MockServer + .feature("classpath:mock/contract/payment-service-proxy.feature") + // setting 'paymentServiceUrl' to null uses request url as-is (no re-writing) - so acts as an http proxy + .arg("paymentServiceUrl", null) + .http(0).build(); // consumer (using http proxy) - consumer = new Consumer(paymentServiceUrl, "localhost", server.getPort(), queueName); - } - + consumer = new Consumer(paymentServiceUrl, "localhost", server.getPort(), queueName); + } + @Test public void testPaymentCreate() throws Exception { Payment payment = new Payment(); @@ -49,21 +46,21 @@ public void testPaymentCreate() throws Exception { consumer.listen(json -> { Shipment shipment = JsonUtils.fromJson(json, Shipment.class); assertEquals(result.getId(), shipment.getPaymentId()); - assertEquals("shipped", shipment.getStatus()); - synchronized(this) { + assertEquals("shipped", shipment.getStatus()); + synchronized (this) { notify(); } }); - synchronized(this) { + synchronized (this) { wait(10000); - } + } } - + @AfterClass public static void afterClass() { server.stop(); PaymentService.stop(context); consumer.stopQueueConsumer(); - } - + } + } diff --git a/karate-demo/src/test/java/mock/contract/ConsumerUsingProxyRewriteSslTest.java b/karate-demo/src/test/java/mock/contract/ConsumerUsingProxyRewriteSslTest.java index 98892a19a..b28756ef0 100644 --- a/karate-demo/src/test/java/mock/contract/ConsumerUsingProxyRewriteSslTest.java +++ b/karate-demo/src/test/java/mock/contract/ConsumerUsingProxyRewriteSslTest.java @@ -1,11 +1,7 @@ package mock.contract; -import com.intuit.karate.FileUtils; import com.intuit.karate.JsonUtils; -import com.intuit.karate.netty.FeatureServer; -import java.io.File; -import java.util.Collections; -import java.util.Map; +import com.intuit.karate.runtime.MockServer; import org.junit.AfterClass; import org.junit.Test; import static org.junit.Assert.*; @@ -17,27 +13,28 @@ * @author pthomas3 */ public class ConsumerUsingProxyRewriteSslTest { - + private static ConfigurableApplicationContext context; - private static FeatureServer server; + private static MockServer server; private static Consumer consumer; - + @BeforeClass public static void beforeClass() { // actual service - String queueName = "DEMO.PROXY.REWRITE.SSL"; + String queueName = "DEMO.PROXY.REWRITE.SSL"; context = PaymentService.start(queueName, true); String paymentServiceUrl = "https://localhost:" + PaymentService.getPort(context); // proxy - File file = FileUtils.getFileRelativeTo(ConsumerUsingProxyRewriteSslTest.class, "payment-service-proxy.feature"); - Map config = Collections.singletonMap("paymentServiceUrl", paymentServiceUrl); - // requests will be forwarded / url re-written to paymentServiceUrl - server = FeatureServer.start(file, 0, false, config); + server = MockServer + .feature("classpath:mock/contract/payment-service-proxy.feature") + // requests will be forwarded / url re-written to paymentServiceUrl + .arg("paymentServiceUrl", paymentServiceUrl) + .http(0).build(); // consumer - String proxyUrl = "http://localhost:" + server.getPort(); - consumer = new Consumer(proxyUrl, queueName); - } - + String proxyUrl = "http://localhost:" + server.getPort(); + consumer = new Consumer(proxyUrl, queueName); + } + @Test public void testPaymentCreate() throws Exception { Payment payment = new Payment(); @@ -50,21 +47,21 @@ public void testPaymentCreate() throws Exception { consumer.listen(json -> { Shipment shipment = JsonUtils.fromJson(json, Shipment.class); assertEquals(result.getId(), shipment.getPaymentId()); - assertEquals("shipped", shipment.getStatus()); - synchronized(this) { + assertEquals("shipped", shipment.getStatus()); + synchronized (this) { notify(); } }); - synchronized(this) { + synchronized (this) { wait(10000); - } + } } - + @AfterClass public static void afterClass() { server.stop(); PaymentService.stop(context); consumer.stopQueueConsumer(); - } - + } + } diff --git a/karate-demo/src/test/java/mock/contract/ConsumerUsingProxyRewriteTest.java b/karate-demo/src/test/java/mock/contract/ConsumerUsingProxyRewriteTest.java index 2af6804da..3be1b65ac 100644 --- a/karate-demo/src/test/java/mock/contract/ConsumerUsingProxyRewriteTest.java +++ b/karate-demo/src/test/java/mock/contract/ConsumerUsingProxyRewriteTest.java @@ -1,11 +1,7 @@ package mock.contract; -import com.intuit.karate.FileUtils; import com.intuit.karate.JsonUtils; -import com.intuit.karate.netty.FeatureServer; -import java.io.File; -import java.util.Collections; -import java.util.Map; +import com.intuit.karate.runtime.MockServer; import org.junit.AfterClass; import org.junit.Test; import static org.junit.Assert.*; @@ -17,27 +13,28 @@ * @author pthomas3 */ public class ConsumerUsingProxyRewriteTest { - + private static ConfigurableApplicationContext context; - private static FeatureServer server; + private static MockServer server; private static Consumer consumer; - + @BeforeClass public static void beforeClass() { // actual service - String queueName = "DEMO.PROXY.REWRITE"; + String queueName = "DEMO.PROXY.REWRITE"; context = PaymentService.start(queueName, false); String paymentServiceUrl = "http://localhost:" + PaymentService.getPort(context); // proxy - File file = FileUtils.getFileRelativeTo(ConsumerUsingProxyRewriteTest.class, "payment-service-proxy.feature"); - Map config = Collections.singletonMap("paymentServiceUrl", paymentServiceUrl); - // requests will be forwarded / url re-written to paymentServiceUrl - server = FeatureServer.start(file, 0, false, config); + server = MockServer + .feature("classpath:mock/contract/payment-service-proxy.feature") + // requests will be forwarded / url re-written to paymentServiceUrl + .arg("paymentServiceUrl", paymentServiceUrl) + .http(0).build(); // consumer - String proxyUrl = "http://localhost:" + server.getPort(); - consumer = new Consumer(proxyUrl, queueName); - } - + String proxyUrl = "http://localhost:" + server.getPort(); + consumer = new Consumer(proxyUrl, queueName); + } + @Test public void testPaymentCreate() throws Exception { Payment payment = new Payment(); @@ -50,21 +47,21 @@ public void testPaymentCreate() throws Exception { consumer.listen(json -> { Shipment shipment = JsonUtils.fromJson(json, Shipment.class); assertEquals(result.getId(), shipment.getPaymentId()); - assertEquals("shipped", shipment.getStatus()); - synchronized(this) { + assertEquals("shipped", shipment.getStatus()); + synchronized (this) { notify(); } }); - synchronized(this) { + synchronized (this) { wait(10000); - } + } } - + @AfterClass public static void afterClass() { server.stop(); PaymentService.stop(context); consumer.stopQueueConsumer(); - } - + } + } diff --git a/karate-demo/src/test/java/mock/contract/PaymentServiceContractUsingMockSslTest.java b/karate-demo/src/test/java/mock/contract/PaymentServiceContractUsingMockSslTest.java index 4031c58b4..ee5681393 100644 --- a/karate-demo/src/test/java/mock/contract/PaymentServiceContractUsingMockSslTest.java +++ b/karate-demo/src/test/java/mock/contract/PaymentServiceContractUsingMockSslTest.java @@ -1,11 +1,8 @@ package mock.contract; -import com.intuit.karate.FileUtils; import com.intuit.karate.junit4.Karate; -import com.intuit.karate.netty.FeatureServer; import com.intuit.karate.KarateOptions; -import java.io.File; -import java.util.Collections; +import com.intuit.karate.runtime.MockServer; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.runner.RunWith; @@ -18,14 +15,16 @@ @KarateOptions(features = "classpath:mock/contract/payment-service.feature") public class PaymentServiceContractUsingMockSslTest { - private static FeatureServer server; + private static MockServer server; @BeforeClass public static void beforeClass() { String queueName = "DEMO.CONTRACT.MOCK.SSL"; System.setProperty("karate.env", "contract"); - File file = FileUtils.getFileRelativeTo(PaymentServiceContractUsingMockSslTest.class, "payment-service-mock.feature"); - server = FeatureServer.start(file, 0, true, Collections.singletonMap("queueName", queueName)); + server = MockServer + .feature("classpath:mock/contract/payment-service-mock.feature") + .arg("queueName", queueName) + .https(0).build(); String paymentServiceUrl = "https://localhost:" + server.getPort(); System.setProperty("payment.service.url", paymentServiceUrl); System.setProperty("shipping.queue.name", queueName); diff --git a/karate-demo/src/test/java/mock/contract/PaymentServiceContractUsingMockTest.java b/karate-demo/src/test/java/mock/contract/PaymentServiceContractUsingMockTest.java index 039769aa6..019860a2a 100644 --- a/karate-demo/src/test/java/mock/contract/PaymentServiceContractUsingMockTest.java +++ b/karate-demo/src/test/java/mock/contract/PaymentServiceContractUsingMockTest.java @@ -1,11 +1,8 @@ package mock.contract; -import com.intuit.karate.FileUtils; import com.intuit.karate.junit4.Karate; -import com.intuit.karate.netty.FeatureServer; import com.intuit.karate.KarateOptions; -import java.io.File; -import java.util.Collections; +import com.intuit.karate.runtime.MockServer; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.runner.RunWith; @@ -17,23 +14,25 @@ @RunWith(Karate.class) @KarateOptions(features = "classpath:mock/contract/payment-service.feature") public class PaymentServiceContractUsingMockTest { - - private static FeatureServer server; - + + private static MockServer server; + @BeforeClass public static void beforeClass() { String queueName = "DEMO.CONTRACT.MOCK"; - System.setProperty("karate.env", "contract"); - File file = FileUtils.getFileRelativeTo(PaymentServiceContractUsingMockTest.class, "payment-service-mock.feature"); - server = FeatureServer.start(file, 0, false, Collections.singletonMap("queueName", queueName)); + System.setProperty("karate.env", "contract"); + server = MockServer + .feature("classpath:mock/contract/payment-service-mock.feature") + .arg("queueName", queueName) + .http(0).build(); String paymentServiceUrl = "http://localhost:" + server.getPort(); System.setProperty("payment.service.url", paymentServiceUrl); System.setProperty("shipping.queue.name", queueName); } - + @AfterClass public static void afterClass() { - server.stop(); - } - + server.stop(); + } + } diff --git a/karate-demo/src/test/java/mock/contract/PaymentServiceMockMain.java b/karate-demo/src/test/java/mock/contract/PaymentServiceMockMain.java index 90da5e5b2..141b0cd90 100644 --- a/karate-demo/src/test/java/mock/contract/PaymentServiceMockMain.java +++ b/karate-demo/src/test/java/mock/contract/PaymentServiceMockMain.java @@ -1,20 +1,19 @@ package mock.contract; -import com.intuit.karate.FileUtils; -import com.intuit.karate.netty.FeatureServer; -import java.io.File; -import java.util.Collections; +import com.intuit.karate.runtime.MockServer; /** * * @author pthomas3 */ public class PaymentServiceMockMain { - + public static void main(String[] args) { - File file = FileUtils.getFileRelativeTo(PaymentServiceMockMain.class, "payment-service-mock.feature"); - FeatureServer server = FeatureServer.start(file, 8080, false, Collections.singletonMap("queueName", "DEMO.MOCK.8080")); + MockServer server = MockServer + .feature("classpath:mock/contract/payment-service-mock.feature") + .arg("queueName", "DEMO.MOCK.8080") + .http(8080).build(); server.waitSync(); } - + } diff --git a/karate-demo/src/test/java/mock/contract/PaymentServiceMockSslMain.java b/karate-demo/src/test/java/mock/contract/PaymentServiceMockSslMain.java index c0d9ca928..665b898a8 100644 --- a/karate-demo/src/test/java/mock/contract/PaymentServiceMockSslMain.java +++ b/karate-demo/src/test/java/mock/contract/PaymentServiceMockSslMain.java @@ -1,22 +1,24 @@ package mock.contract; -import com.intuit.karate.FileUtils; -import com.intuit.karate.netty.FeatureServer; +import com.intuit.karate.runtime.MockServer; import java.io.File; -import java.util.Collections; /** * * @author pthomas3 */ public class PaymentServiceMockSslMain { - + public static void main(String[] args) { - File mockFeatureFile = FileUtils.getFileRelativeTo(PaymentServiceMockSslMain.class, "payment-service-mock.feature"); File certFile = new File("src/test/java/mock-cert.pem"); File privateKeyFile = new File("src/test/java/mock-key.pem"); - FeatureServer server = FeatureServer.start(mockFeatureFile, 8443, true, certFile, privateKeyFile, Collections.singletonMap("queueName", "DEMO.MOCK.8443")); + MockServer server = MockServer + .feature("classpath:mock/contract/payment-service-mock.feature") + .certFile(certFile) + .keyFile(privateKeyFile) + .arg("queueName", "DEMO.MOCK.8443") + .https(8443).build(); server.waitSync(); } - + } diff --git a/karate-demo/src/test/java/mock/contract/increment.js b/karate-demo/src/test/java/mock/contract/increment.js index 9361b1fe5..0f25b3273 100644 --- a/karate-demo/src/test/java/mock/contract/increment.js +++ b/karate-demo/src/test/java/mock/contract/increment.js @@ -1,10 +1,9 @@ function fn() { - var varName = '_curId'; - karate.set(varName, 0); + karate.set('_curId', 0); return function() { - var curId = karate.get(varName); + var curId = karate.get('_curId'); var nextId = curId + 1; - karate.set(varName, nextId); + karate.set('_curId', nextId); return ~~nextId; } } diff --git a/karate-demo/src/test/java/mock/contract/payment-service.feature b/karate-demo/src/test/java/mock/contract/payment-service.feature index 5edb98ef2..cbfa30139 100644 --- a/karate-demo/src/test/java/mock/contract/payment-service.feature +++ b/karate-demo/src/test/java/mock/contract/payment-service.feature @@ -4,7 +4,7 @@ Background: * def QueueConsumer = Java.type('mock.contract.QueueConsumer') * def queue = new QueueConsumer(queueName) * def handler = function(msg){ karate.signal(msg) } -* queue.listen(handler) +* queue.listen(karate.toJava(handler)) * url paymentServiceUrl + '/payments' Scenario: create, get, update, list and delete payments diff --git a/karate-demo/src/test/java/mock/micro/CatsMockRunner.java b/karate-demo/src/test/java/mock/micro/CatsMockRunner.java index 7574a9bd1..3b8e0b8eb 100644 --- a/karate-demo/src/test/java/mock/micro/CatsMockRunner.java +++ b/karate-demo/src/test/java/mock/micro/CatsMockRunner.java @@ -1,10 +1,8 @@ package mock.micro; -import com.intuit.karate.FileUtils; import com.intuit.karate.junit4.Karate; -import com.intuit.karate.netty.FeatureServer; import com.intuit.karate.KarateOptions; -import java.io.File; +import com.intuit.karate.runtime.MockServer; import org.junit.BeforeClass; import org.junit.runner.RunWith; @@ -15,13 +13,15 @@ @RunWith(Karate.class) @KarateOptions(features = "classpath:mock/micro/cats.feature") public class CatsMockRunner { - + @BeforeClass public static void beforeClass() { - File file = FileUtils.getFileRelativeTo(CatsMockRunner.class, "cats-mock.feature"); - FeatureServer server = FeatureServer.start(file, 0, false, null); + MockServer server = MockServer + .feature("classpath:mock/micro/cats-mock.feature") + .arg("demoServerPort", null) + .http(0).build(); System.setProperty("karate.env", "mock"); System.setProperty("mock.cats.url", "http://localhost:" + server.getPort() + "/cats"); } - + } diff --git a/karate-demo/src/test/java/mock/proxy/DemoMockProceedRunner.java b/karate-demo/src/test/java/mock/proxy/DemoMockProceedRunner.java index 109bb9d6b..458350fc1 100644 --- a/karate-demo/src/test/java/mock/proxy/DemoMockProceedRunner.java +++ b/karate-demo/src/test/java/mock/proxy/DemoMockProceedRunner.java @@ -1,14 +1,10 @@ package mock.proxy; -import com.intuit.karate.FileUtils; -import com.intuit.karate.Match; import com.intuit.karate.Runner; import com.intuit.karate.Results; -import com.intuit.karate.netty.FeatureServer; import com.intuit.karate.KarateOptions; +import com.intuit.karate.runtime.MockServer; import demo.TestBase; -import java.io.File; -import java.util.Map; import org.junit.AfterClass; import static org.junit.Assert.assertTrue; import org.junit.BeforeClass; @@ -23,27 +19,28 @@ "classpath:demo/greeting"}) public class DemoMockProceedRunner { - private static FeatureServer server; + private static MockServer server; @BeforeClass public static void beforeClass() throws Exception { int port = TestBase.startServer(); - Map map = new Match().def("demoServerPort", port).allAsMap(); - File file = FileUtils.getFileRelativeTo(DemoMockProceedRunner.class, "demo-mock-proceed.feature"); - server = FeatureServer.start(file, 0, false, map); + server = MockServer + .feature("classpath:mock/proxy/demo-mock-proceed.feature") + .arg("demoServerPort", port) + .http(0).build(); } - + @AfterClass public static void afterClass() { server.stop(); - } + } @Test public void testParallel() { int port = server.getPort(); System.setProperty("karate.env", "mock"); System.setProperty("demo.server.port", port + ""); - System.setProperty("demo.server.https", "false"); + System.setProperty("demo.server.https", "false"); String karateOutputPath = "target/mock-proceed"; Results results = Runner.parallel(getClass(), 1, karateOutputPath); // DemoMockUtils.generateReport(karateOutputPath); diff --git a/karate-demo/src/test/java/mock/proxy/DemoMockProxyRunner.java b/karate-demo/src/test/java/mock/proxy/DemoMockProxyRunner.java index 8c1c31564..63ab25ba2 100644 --- a/karate-demo/src/test/java/mock/proxy/DemoMockProxyRunner.java +++ b/karate-demo/src/test/java/mock/proxy/DemoMockProxyRunner.java @@ -1,14 +1,10 @@ package mock.proxy; -import com.intuit.karate.FileUtils; -import com.intuit.karate.Match; import com.intuit.karate.Runner; import com.intuit.karate.Results; -import com.intuit.karate.netty.FeatureServer; import com.intuit.karate.KarateOptions; +import com.intuit.karate.runtime.MockServer; import demo.TestBase; -import java.io.File; -import java.util.Map; import org.junit.AfterClass; import static org.junit.Assert.assertTrue; import org.junit.BeforeClass; @@ -19,25 +15,26 @@ * @author pthomas3 */ @KarateOptions(tags = "~@ignore", features = { - "classpath:demo/cats", + "classpath:demo/cats", "classpath:demo/greeting"}) public class DemoMockProxyRunner { - private static FeatureServer server; + private static MockServer server; private static int demoServerPort; @BeforeClass public static void beforeClass() throws Exception { demoServerPort = TestBase.startServer(); - Map map = new Match().def("demoServerPort", null).allAsMap(); // don't rewrite url - File file = FileUtils.getFileRelativeTo(DemoMockProxyRunner.class, "demo-mock-proceed.feature"); - server = FeatureServer.start(file, 0, false, map); + server = MockServer + .feature("classpath:mock/proxy/demo-mock-proceed.feature") + .arg("demoServerPort", null) // don't rewrite url + .http(0).build(); } - + @AfterClass public static void afterClass() { server.stop(); - } + } @Test public void testParallel() { diff --git a/karate-demo/src/test/java/mock/proxy/DemoMockProxySslRunner.java b/karate-demo/src/test/java/mock/proxy/DemoMockProxySslRunner.java index ede2525b6..8d9320f13 100644 --- a/karate-demo/src/test/java/mock/proxy/DemoMockProxySslRunner.java +++ b/karate-demo/src/test/java/mock/proxy/DemoMockProxySslRunner.java @@ -1,14 +1,10 @@ package mock.proxy; -import com.intuit.karate.FileUtils; -import com.intuit.karate.Match; import com.intuit.karate.Runner; import com.intuit.karate.Results; -import com.intuit.karate.netty.FeatureServer; import com.intuit.karate.KarateOptions; +import com.intuit.karate.runtime.MockServer; import demo.TestBase; -import java.io.File; -import java.util.Map; import org.junit.AfterClass; import static org.junit.Assert.assertTrue; import org.junit.BeforeClass; @@ -19,27 +15,28 @@ * @author pthomas3 */ @KarateOptions(tags = "~@ignore", features = { - "classpath:demo/cats", + "classpath:demo/cats", "classpath:demo/greeting"}) public class DemoMockProxySslRunner { - private static FeatureServer server; + private static MockServer server; private static int demoServerPort; @BeforeClass public static void beforeClass() throws Exception { demoServerPort = TestBase.startServer(); - Map map = new Match().def("demoServerPort", null).allAsMap(); // don't rewrite url - File file = FileUtils.getFileRelativeTo(DemoMockProxySslRunner.class, "demo-mock-proceed.feature"); - server = FeatureServer.start(file, 0, false, map); + server = MockServer + .feature("classpath:mock/proxy/demo-mock-proceed.feature") + .arg("demoServerPort", null) // don't rewrite url + .https(0).build(); } - + @AfterClass public static void afterClass() { server.stop(); - } + } - @Test + // @Test TODO SSL proxy public void testParallel() { System.setProperty("karate.env", "proxy"); System.setProperty("demo.server.port", demoServerPort + ""); diff --git a/karate-demo/src/test/java/mock/proxy/DemoMockRunner.java b/karate-demo/src/test/java/mock/proxy/DemoMockRunner.java index 0e057e703..cf9068084 100644 --- a/karate-demo/src/test/java/mock/proxy/DemoMockRunner.java +++ b/karate-demo/src/test/java/mock/proxy/DemoMockRunner.java @@ -1,11 +1,9 @@ package mock.proxy; -import com.intuit.karate.FileUtils; import com.intuit.karate.Runner; import com.intuit.karate.Results; -import com.intuit.karate.netty.FeatureServer; import com.intuit.karate.KarateOptions; -import java.io.File; +import com.intuit.karate.runtime.MockServer; import org.junit.AfterClass; import static org.junit.Assert.assertTrue; import org.junit.BeforeClass; @@ -20,12 +18,11 @@ "classpath:demo/greeting"}) public class DemoMockRunner { - private static FeatureServer server; + private static MockServer server; @BeforeClass public static void beforeClass() { - File file = FileUtils.getFileRelativeTo(DemoMockRunner.class, "demo-mock.feature"); - server = FeatureServer.start(file, 0, false, null); + server = MockServer.feature("classpath:mock/proxy/demo-mock.feature").http(0).build(); } @AfterClass diff --git a/karate-demo/src/test/java/mock/proxy/DemoMockSslRunner.java b/karate-demo/src/test/java/mock/proxy/DemoMockSslRunner.java index b71ce59bf..562c5ee96 100644 --- a/karate-demo/src/test/java/mock/proxy/DemoMockSslRunner.java +++ b/karate-demo/src/test/java/mock/proxy/DemoMockSslRunner.java @@ -1,11 +1,9 @@ package mock.proxy; -import com.intuit.karate.FileUtils; import com.intuit.karate.Runner; import com.intuit.karate.Results; -import com.intuit.karate.netty.FeatureServer; import com.intuit.karate.KarateOptions; -import java.io.File; +import com.intuit.karate.runtime.MockServer; import org.junit.AfterClass; import static org.junit.Assert.assertTrue; import org.junit.BeforeClass; @@ -20,12 +18,11 @@ "classpath:demo/greeting"}) public class DemoMockSslRunner { - private static FeatureServer server; + private static MockServer server; @BeforeClass public static void beforeClass() { - File file = FileUtils.getFileRelativeTo(DemoMockSslRunner.class, "demo-mock.feature"); - server = FeatureServer.start(file, 0, true, null); + server = MockServer.feature("classpath:mock/proxy/demo-mock.feature").https(0).build(); } @AfterClass diff --git a/karate-demo/src/test/java/mock/proxy/demo-mock-proceed.feature b/karate-demo/src/test/java/mock/proxy/demo-mock-proceed.feature index 2dc288b5f..612d11388 100644 --- a/karate-demo/src/test/java/mock/proxy/demo-mock-proceed.feature +++ b/karate-demo/src/test/java/mock/proxy/demo-mock-proceed.feature @@ -1,13 +1,12 @@ Feature: mock that simply forwards to actual host Background: -* def nextId = call read('increment.js') * def cats = {} # if argument to karate.proceed() is null, url of incoming request is used (no url re-writing) * def targetUrlBase = demoServerPort ? 'http://127.0.0.1:' + demoServerPort : null * print 'init target url:', targetUrlBase -Scenario: pathMatches('/greeting') && paramExists('name', '') +Scenario: pathMatches('/greeting') && paramExists('name') * karate.proceed(targetUrlBase) # 'catch-all' rule diff --git a/karate-demo/src/test/java/mock/proxy/increment.js b/karate-demo/src/test/java/mock/proxy/increment.js deleted file mode 100644 index 9361b1fe5..000000000 --- a/karate-demo/src/test/java/mock/proxy/increment.js +++ /dev/null @@ -1,10 +0,0 @@ -function fn() { - var varName = '_curId'; - karate.set(varName, 0); - return function() { - var curId = karate.get(varName); - var nextId = curId + 1; - karate.set(varName, nextId); - return ~~nextId; - } -} diff --git a/karate-demo/src/test/java/mock/web/CatsMockStarter.java b/karate-demo/src/test/java/mock/web/CatsMockStarter.java index 2543efa37..5d35f72db 100644 --- a/karate-demo/src/test/java/mock/web/CatsMockStarter.java +++ b/karate-demo/src/test/java/mock/web/CatsMockStarter.java @@ -1,8 +1,6 @@ package mock.web; -import com.intuit.karate.FileUtils; -import com.intuit.karate.netty.FeatureServer; -import java.io.File; +import com.intuit.karate.runtime.MockServer; import org.junit.Test; /** @@ -12,9 +10,8 @@ public class CatsMockStarter { @Test - public void beforeClass() { - File file = FileUtils.getFileRelativeTo(getClass(), "cats-mock.feature"); - FeatureServer server = FeatureServer.start(file, 8080, false, null); + public void beforeClass() { + MockServer server = MockServer.feature("classpath:mock/web/cats-mock.feature").http(8080).build(); server.waitSync(); }