Add missing files. Initial Cucumber integration

- Fix #18
This commit is contained in:
Giri Dandu 2015-02-17 18:50:56 -05:00
parent 56425f7192
commit be4ae9ee3d
3 changed files with 314 additions and 0 deletions

183
deploydb.iml Normal file
View File

@ -0,0 +1,183 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="deploydb" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="com.github.lookout" external.system.module.version="0.1.0" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/build/classes/main" />
<output-test url="file://$MODULE_DIR$/build/classes/test" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/cucumber/groovy" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/groovy" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/cucumber/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/groovy" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/cucumber/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="Gradle: org.codehaus.groovy:groovy-all:2.4.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-core:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-assets:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-jersey:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-hibernate:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-views-mustache:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-testing:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.jersey.connectors:jersey-apache-connector:2.16" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard.modules:dropwizard-flyway:0.7.0-1" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.github.lookout:whoas:0.1.2" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.h2database:h2:1.3.176" level="project" />
<orderEntry type="library" exported="" name="Gradle: joda-time:joda-time:2.6" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-util:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-jackson:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-validation:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-configuration:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-logging:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-metrics:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-servlets:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-jetty:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-lifecycle:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard.metrics:metrics-core:3.1.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard.metrics:metrics-jvm:3.1.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard.metrics:metrics-servlets:3.1.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard.metrics:metrics-healthchecks:3.1.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: net.sourceforge.argparse4j:argparse4j:0.4.4" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.eclipse.jetty.toolchain.setuid:jetty-setuid-java:1.0.2" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.jersey.core:jersey-server:2.13" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.jersey.ext:jersey-metainf-services:2.13" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard.metrics:metrics-jersey2:3.1.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.4.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.jersey.containers:jersey-container-servlet:2.13" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.eclipse.jetty:jetty-server:9.2.4.v20141103" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.eclipse.jetty:jetty-webapp:9.2.4.v20141103" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.eclipse.jetty:jetty-continuation:9.2.4.v20141103" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-db:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.fasterxml.jackson.datatype:jackson-datatype-hibernate4:2.4.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.jadira.usertype:usertype.core:3.2.0.GA" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.hibernate:hibernate-core:4.3.7.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard:dropwizard-views:0.8.0-rc1" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.github.spullara.mustache.java:compiler:0.8.17" level="project" />
<orderEntry type="library" exported="" name="Gradle: junit:junit:4.11" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.mockito:mockito-core:1.10.8" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.objenesis:objenesis:2.1" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.assertj:assertj-core:1.7.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-inmemory:2.13" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.apache.httpcomponents:httpclient:4.3.1" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.jersey.core:jersey-common:2.16" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.jersey.core:jersey-client:2.16" level="project" />
<orderEntry type="library" exported="" name="Gradle: javax.ws.rs:javax.ws.rs-api:2.0.1" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.flywaydb:flyway-core:3.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.fasterxml.jackson.core:jackson-annotations:2.4.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.google.guava:guava:18.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.google.code.findbugs:jsr305:3.0.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.fasterxml.jackson.core:jackson-core:2.4.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.fasterxml.jackson.datatype:jackson-datatype-jdk7:2.4.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.fasterxml.jackson.datatype:jackson-datatype-guava:2.4.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.fasterxml.jackson.module:jackson-module-afterburner:2.4.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.fasterxml.jackson.datatype:jackson-datatype-joda:2.4.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.slf4j:slf4j-api:1.7.7" level="project" />
<orderEntry type="library" exported="" name="Gradle: ch.qos.logback:logback-classic:1.1.2" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.hibernate:hibernate-validator:5.1.3.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.web:javax.el:2.2.6" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.4.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.apache.commons:commons-lang3:3.3.2" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard.metrics:metrics-logback:3.1.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.slf4j:jul-to-slf4j:1.7.7" level="project" />
<orderEntry type="library" exported="" name="Gradle: ch.qos.logback:logback-core:1.1.2" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.slf4j:log4j-over-slf4j:1.7.7" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.slf4j:jcl-over-slf4j:1.7.7" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.eclipse.jetty:jetty-util:9.2.4.v20141103" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard.metrics:metrics-annotation:3.1.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard.metrics:metrics-jetty9:3.1.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.eclipse.jetty:jetty-servlet:9.2.4.v20141103" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.eclipse.jetty:jetty-servlets:9.2.4.v20141103" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.eclipse.jetty:jetty-http:9.2.4.v20141103" level="project" />
<orderEntry type="library" exported="" name="Gradle: io.dropwizard.metrics:metrics-json:3.1.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: javax.annotation:javax.annotation-api:1.2" level="project" />
<orderEntry type="library" exported="" name="Gradle: javax.validation:validation-api:1.1.0.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:2.4.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.4.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.jersey.containers:jersey-container-servlet-core:2.13" level="project" />
<orderEntry type="library" exported="" name="Gradle: javax.servlet:javax.servlet-api:3.1.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.eclipse.jetty:jetty-io:9.2.4.v20141103" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.eclipse.jetty:jetty-xml:9.2.4.v20141103" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.jadira.usertype:usertype.spi:3.2.0.GA" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.jboss.logging:jboss-logging-annotations:1.2.0.Beta1" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.0.0.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: dom4j:dom4j:1.6.1" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.hibernate.common:hibernate-commons-annotations:4.0.5.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.javassist:javassist:3.18.1-GA" level="project" />
<orderEntry type="library" exported="" name="Gradle: antlr:antlr:2.7.7" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.jboss:jandex:1.1.0.Final" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.jersey.test-framework:jersey-test-framework-core:2.13" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.ow2.asm:asm-debug-all:5.0.2" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.apache.httpcomponents:httpcore:4.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: commons-logging:commons-logging:1.1.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: commons-codec:commons-codec:1.6" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.jboss.logging:jboss-logging:3.1.3.GA" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.fasterxml:classmate:1.0.0" level="project" />
<orderEntry type="library" exported="" name="Gradle: javax.el:javax.el-api:2.2.5" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.eclipse.jetty:jetty-security:9.2.4.v20141103" level="project" />
<orderEntry type="library" exported="" name="Gradle: xml-apis:xml-apis:1.0.b2" level="project" />
<orderEntry type="library" exported="" name="Gradle: javax.inject:javax.inject:1" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.apache.tomcat:tomcat-jdbc:8.0.15" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.apache.tomcat:tomcat-juli:8.0.15" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.fasterxml.jackson.core:jackson-databind:2.4.3" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.jersey.bundles.repackaged:jersey-guava:2.16" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.hk2:osgi-resource-locator:1.0.1" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.hk2:hk2-api:2.4.0-b09" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.hk2.external:javax.inject:2.4.0-b09" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.hk2:hk2-locator:2.4.0-b09" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.hk2:hk2-utils:2.4.0-b09" level="project" />
<orderEntry type="library" exported="" name="Gradle: org.glassfish.hk2.external:aopalliance-repackaged:2.4.0-b09" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: org.spockframework:spock-core:0.7-groovy-2.0" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: cglib:cglib-nodep:2.2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: junit:junit-dep:4.10" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: info.cukes:cucumber-groovy:1.2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: info.cukes:cucumber-core:1.2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: info.cukes:cucumber-jvm-deps:1.0.3" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: info.cukes:gherkin:2.12.2" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: info.cukes:cucumber-html:0.2.3" level="project" />
<orderEntry type="module-library" scope="TEST">
<library name="Gradle: _Users_gdandu_deploydb_build_classes_main">
<CLASSES>
<root url="file://$MODULE_DIR$/build/classes/main" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library" scope="TEST">
<library name="Gradle: _Users_gdandu_deploydb_build_resources_main">
<CLASSES>
<root url="file://$MODULE_DIR$/build/resources/main" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library" scope="TEST">
<library name="Gradle: _Users_gdandu_deploydb_build_classes_test">
<CLASSES>
<root url="file://$MODULE_DIR$/build/classes/test" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library" scope="TEST">
<library name="Gradle: _Users_gdandu_deploydb_build_resources_test">
<CLASSES>
<root url="file://$MODULE_DIR$/build/resources/test" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
</component>
</module>

View File

@ -0,0 +1,122 @@
package deploydb.cucumber
import com.google.common.base.Strings
import com.google.common.collect.ImmutableMap
import io.dropwizard.Application
import io.dropwizard.Configuration
import io.dropwizard.cli.ServerCommand
import io.dropwizard.lifecycle.ServerLifecycleListener
import io.dropwizard.setup.Bootstrap
import io.dropwizard.setup.Environment
import io.dropwizard.testing.junit.ConfigOverride
import net.sourceforge.argparse4j.inf.Namespace
import org.eclipse.jetty.server.Server
import org.eclipse.jetty.server.ServerConnector
import org.flywaydb.core.Flyway
import org.hibernate.SessionFactory
import javax.annotation.Nullable
/**
*
*/
public class WebhookTestServerAppRunner<C extends Configuration> {
private final Class<? extends Application<C>> applicationClass
private final String configPath
private C configuration
private Application<C> application
private Environment environment
private Server jettyServer
public WebhookTestServerAppRunner(Class<? extends Application<C>> applicationClass,
@Nullable String configPath,
ConfigOverride... configOverrides) {
this.applicationClass = applicationClass
this.configPath = configPath
for (ConfigOverride configOverride: configOverrides) {
configOverride.addToSystemProperties()
}
}
void start() {
startIfRequired()
}
void stop() {
if (jettyServer != null) {
jettyServer.stop()
}
}
private void startIfRequired() {
if (jettyServer != null) {
return
}
try {
application = newApplication()
final Bootstrap<C> bootstrap = new Bootstrap<C>(application) {
@Override
public void run(C configuration, Environment environment) throws Exception {
environment.lifecycle().addServerLifecycleListener(new ServerLifecycleListener() {
@Override
public void serverStarted(Server server) {
jettyServer = server
}
})
WebhookTestServerAppRunner.this.configuration = configuration
WebhookTestServerAppRunner.this.environment = environment
super.run(configuration, environment)
}
}
application.initialize(bootstrap)
final ServerCommand<C> command = new ServerCommand<>(application)
ImmutableMap.Builder<String, Object> file = ImmutableMap.builder()
if (!Strings.isNullOrEmpty(configPath)) {
file.put("file", configPath)
}
final Namespace namespace = new Namespace(file.build())
command.run(bootstrap, namespace)
}
catch (Exception e) {
throw new RuntimeException(e)
}
}
C getConfiguration() {
return configuration
}
int getLocalPort() {
return ((ServerConnector) jettyServer.getConnectors()[0]).getLocalPort()
}
int getAdminPort() {
return ((ServerConnector) jettyServer.getConnectors()[1]).getLocalPort()
}
Application<C> newApplication() {
try {
return applicationClass.newInstance()
} catch (Exception e) {
throw new RuntimeException(e)
}
}
public <A extends Application<C>> A getApplication() {
return (A) application
}
Environment getEnvironment() {
return environment
}
}

View File

@ -0,0 +1,9 @@
logging:
level: INFO
server:
applicationConnectors:
- type: http
port: 10000
adminConnectors:
- type: http
port: 10001