Skip to content

Commit

Permalink
[rewrite] #1281 merged karate-netty into karate-core
Browse files Browse the repository at this point in the history
so now the fatjar and the maven module is unified
  • Loading branch information
ptrthomas committed Nov 14, 2020
1 parent c9d2172 commit 29063ef
Show file tree
Hide file tree
Showing 39 changed files with 216 additions and 444 deletions.
6 changes: 3 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ karate-demo/activemq-data/
karate-demo/*.pem
karate-demo/*.jks
karate-demo/*.der
karate-netty/*.pem
karate-netty/*.jks
karate-netty/*.der
karate-core/*.pem
karate-core/*.jks
karate-core/*.der
karate-robot/tessdata
karate-junit4/src/test/java/com/intuit/karate/junit4/dev
karate-robot/src/test/java/robot/dev
Expand Down
50 changes: 50 additions & 0 deletions karate-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,56 @@
</plugins>
</build>
</profile>
<profile>
<id>fatjar</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>${maven.shade.version}</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<finalName>karate-${project.version}</finalName>
<artifactSet>
<includes>
<include>*:*</include>
</includes>
</artifactSet>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.intuit.karate.Main</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<descriptor>src/assembly/bin.xml</descriptor>
<finalName>karate-${project.version}</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>

</project>
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.intuit.karate.fatjar;

import com.intuit.karate.Runner;
import org.junit.jupiter.api.Test;

/**
*
* @author pthomas3
*/
class ClientRunner {

@Test
void testClient() {
Runner.runFeature("classpath:com/intuit/karate/fatjar/client.feature", null, true);
}

}
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
package com.intuit.karate;
package com.intuit.karate.fatjar;

import com.intuit.karate.runtime.MockServer;
import org.junit.Test;
import org.junit.jupiter.api.Test;

/**
*
* @author pthomas3
*/
public class FeatureServerRunner {
class FeatureProxyRunner {

@Test
public void testServer() {
MockServer server = MockServer.feature("classpath:com/intuit/karate/server.feature").http(8080).build();
void testServer() {
MockServer server = MockServer.feature("classpath:com/intuit/karate/fatjar/proxy.feature").http(8090).build();
server.waitSync();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package com.intuit.karate;
package com.intuit.karate.fatjar;

import com.intuit.karate.runtime.MockServer;
import org.junit.Test;
import org.junit.jupiter.api.Test;

/**
*
* @author pthomas3
*/
public class FeatureProxyRunner {
class FeatureServerRunner {

@Test
public void testServer() {
MockServer server = MockServer.feature("classpath:com/intuit/karate/proxy.feature").http(8090).build();
void testServer() {
MockServer server = MockServer.feature("classpath:com/intuit/karate/fatjar/server.feature").http(8080).build();
server.waitSync();
}

}
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
package com.intuit.karate;
package com.intuit.karate.fatjar;

import com.intuit.karate.Results;
import com.intuit.karate.Runner;
import com.intuit.karate.runtime.MockServer;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
import org.junit.jupiter.api.AfterAll;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;

/**
*
* @author pthomas3
*/
public class FeatureServerTest {
class FeatureServerTest {

private static MockServer server;
static MockServer server;

@BeforeClass
public static void beforeClass() {
server = MockServer.feature("classpath:com/intuit/karate/server.feature").http(0).corsEnabled().build();
@BeforeAll
static void beforeClass() {
server = MockServer.feature("classpath:com/intuit/karate/fatjar/server.feature").http(0).corsEnabled().build();
int port = server.getPort();
System.setProperty("karate.server.port", port + "");
// needed to ensure we undo what the other test does to the jvm else ci fails
Expand All @@ -25,13 +27,13 @@ public static void beforeClass() {
}

@Test
public void testClient() {
void testClient() {
Results result = Runner.path("classpath:com/intuit/karate/client.feature").parallel(1);
assertEquals(result.getErrorMessages(), result.getFailCount(), 0);
assertEquals(result.getFailCount(), 0, result.getErrorMessages());
}

@AfterClass
public static void afterClass() {
@AfterAll
static void afterClass() {
server.stop();
}

Expand Down
17 changes: 17 additions & 0 deletions karate-core/src/test/java/com/intuit/karate/fatjar/MainRunner.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.intuit.karate.fatjar;

import com.intuit.karate.Main;
import org.junit.jupiter.api.Test;

/**
*
* @author pthomas3
*/
class MainRunner {

@Test
void testMain() {
Main.main(new String[]{"-m", "src/test/java/com/intuit/karate/fatjar/server.feature", "-p", "8080"});
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.intuit.karate.fatjar;

import com.intuit.karate.Main;
import org.junit.jupiter.api.Test;

/**
*
* @author pthomas3
*/
class MainSslRunner {

@Test
void testMain() {
Main.main(new String[]{"-m", "src/test/java/com/intuit/karate/fatjar/server.feature", "-p", "8443", "-s"});
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.intuit.karate.fatjar;

import com.intuit.karate.netty.ProxyServer;
import org.junit.jupiter.api.Test;

/**
*
* @author pthomas3
*/
class ProxyServerRunner {

@Test
void testProxy() {
ProxyServer proxy = new ProxyServer(5000, req -> {
System.out.println("*** " + req.uri());
return null;
}, null);
proxy.waitSync();
}

}
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
package com.intuit.karate;
package com.intuit.karate.fatjar;

import com.intuit.karate.FileUtils;
import com.intuit.karate.netty.ProxyServer;
import java.io.File;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import org.slf4j.LoggerFactory;

/**
*
* @author pthomas3
*/
public class ProxyServerSslMain {
class ProxyServerSslMain {

private static final org.slf4j.Logger logger = LoggerFactory.getLogger(ProxyServerSslMain.class);
static final org.slf4j.Logger logger = LoggerFactory.getLogger(ProxyServerSslMain.class);

private String html = FileUtils.toString(new File("src/test/java/com/intuit/karate/temp.html"));
String html = FileUtils.toString(new File("src/test/java/com/intuit/karate/fatjar/temp.html"));

@Test
public void testProxy() {
void testProxy() {
ProxyServer server = new ProxyServer(8090,
req -> {
if ("httpbin.org".equals(req.context.host)) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package com.intuit.karate;
package com.intuit.karate.fatjar;

import com.intuit.karate.FileUtils;
import com.intuit.karate.Results;
import com.intuit.karate.Runner;
import com.intuit.karate.http.LenientTrustManager;
import com.intuit.karate.netty.ProxyServer;
import com.intuit.karate.runtime.MockServer;
Expand All @@ -17,59 +20,62 @@
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.junit.AfterClass;
import static org.junit.Assert.*;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
import org.slf4j.LoggerFactory;

/**
*
* @author pthomas3
*/
public class ProxyServerSslTest {
class ProxyServerSslTest {

private static final org.slf4j.Logger logger = LoggerFactory.getLogger(ProxyServerSslTest.class);
static final org.slf4j.Logger logger = LoggerFactory.getLogger(ProxyServerSslTest.class);

private static ProxyServer proxy;
private static MockServer server;
static ProxyServer proxy;
static MockServer server;

@BeforeClass
public static void beforeClass() {
@BeforeAll
static void beforeClass() {
proxy = new ProxyServer(0, null, null);
server = MockServer.feature("classpath:com/intuit/karate/server.feature").https(0).build();
server = MockServer.feature("classpath:com/intuit/karate/fatjar/server.feature").https(0).build();
int port = server.getPort();
System.setProperty("karate.server.port", port + "");
System.setProperty("karate.server.ssl", "true");
System.setProperty("karate.server.proxy", "http://localhost:" + proxy.getPort());
}

@AfterClass
public static void afterClass() {
@AfterAll
static void afterClass() {
server.stop();
proxy.stop();
}

@Test
public void testProxy() throws Exception {
void testProxy() throws Exception {
String url = "https://localhost:" + server.getPort() + "/v1/cats";
assertEquals(200, http(get(url)));
assertEquals(200, http(post(url, "{ \"name\": \"Billie\" }")));
Runner.runFeature("classpath:com/intuit/karate/client.feature", null, true);
Results results = Runner
.path("classpath:com/intuit/karate/fatjar/client.feature")
.configDir("classpath:com/intuit/karate/fatjar")
.parallel(1);
}

private static HttpUriRequest get(String url) {
static HttpUriRequest get(String url) {
return new HttpGet(url);
}

private static HttpUriRequest post(String url, String body) {
static HttpUriRequest post(String url, String body) {
HttpPost post = new HttpPost(url);
HttpEntity entity = new StringEntity(body, ContentType.create("application/json", FileUtils.UTF8));
post.setEntity(entity);
return post;
}

private int http(HttpUriRequest request) throws Exception {
int http(HttpUriRequest request) throws Exception {
// System.setProperty("javax.net.debug", "all"); // -Djavax.net.debug=all
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[]{LenientTrustManager.INSTANCE}, null);
Expand Down
Loading

0 comments on commit 29063ef

Please sign in to comment.