au.com.dius.pact.consumer
Class PactProviderRule

java.lang.Object
  extended by org.junit.rules.ExternalResource
      extended by au.com.dius.pact.consumer.PactProviderRule
All Implemented Interfaces:
org.junit.rules.TestRule

public class PactProviderRule
extends org.junit.rules.ExternalResource

A junit rule that wraps every test annotated with PactVerification. Before each test, a mock server will be setup at given port/host that will provide mocked responses for the given provider. After each test, it will be teared down. If no host is given, it will default to localhost. If no port is given, it will default to a random port.


Constructor Summary
PactProviderRule(java.lang.String provider, java.lang.Object target)
          Creates a mock provider by the given name.
PactProviderRule(java.lang.String provider, au.com.dius.pact.model.PactSpecVersion pactSpecVersion, java.lang.Object target)
          Creates a mock provider by the given name.
PactProviderRule(java.lang.String provider, java.lang.String host, java.lang.Integer port, boolean https, au.com.dius.pact.model.PactConfig pactConfig, java.lang.Object target)
          Creates a mock provider by the given name
PactProviderRule(java.lang.String provider, java.lang.String host, java.lang.Integer port, java.lang.Object target)
          Creates a mock provider by the given name
PactProviderRule(java.lang.String provider, java.lang.String host, java.lang.Integer port, au.com.dius.pact.model.PactConfig pactConfig, java.lang.Object target)
          Creates a mock provider by the given name
 
Method Summary
 org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description)
           
 au.com.dius.pact.model.MockProviderConfig getConfig()
           
protected  java.util.Map<java.lang.String,au.com.dius.pact.model.PactFragment> getPacts(java.lang.String fragment)
          scan all methods for @Pact annotation and execute them, if not already initialized
 
Methods inherited from class org.junit.rules.ExternalResource
after, before
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PactProviderRule

public PactProviderRule(java.lang.String provider,
                        java.lang.String host,
                        java.lang.Integer port,
                        au.com.dius.pact.model.PactConfig pactConfig,
                        java.lang.Object target)
Creates a mock provider by the given name

Parameters:
provider - Provider name to mock
host - Host to bind to. Defaults to localhost
port - Port to bind to. Defaults to a random port.
pactConfig - Pact configuration
target - Target test to apply this rule to.

PactProviderRule

public PactProviderRule(java.lang.String provider,
                        java.lang.String host,
                        java.lang.Integer port,
                        boolean https,
                        au.com.dius.pact.model.PactConfig pactConfig,
                        java.lang.Object target)
Creates a mock provider by the given name

Parameters:
provider - Provider name to mock
host - Host to bind to. Defaults to localhost
port - Port to bind to. Defaults to a random port.
https - Boolean flag to control starting HTTPS or HTTP mock server
pactConfig - Pact configuration
target - Target test to apply this rule to.

PactProviderRule

public PactProviderRule(java.lang.String provider,
                        java.lang.String host,
                        java.lang.Integer port,
                        java.lang.Object target)
Creates a mock provider by the given name

Parameters:
provider - Provider name to mock
host - Host to bind to. Defaults to localhost
port - Port to bind to. Defaults to a random port.
target - Target test to apply this rule to.

PactProviderRule

public PactProviderRule(java.lang.String provider,
                        java.lang.Object target)
Creates a mock provider by the given name. Binds to localhost and a random port.

Parameters:
provider - Provider name to mock
target - Target test to apply this rule to.

PactProviderRule

public PactProviderRule(java.lang.String provider,
                        au.com.dius.pact.model.PactSpecVersion pactSpecVersion,
                        java.lang.Object target)
Creates a mock provider by the given name. Binds to localhost and a random port.

Parameters:
provider - Provider name to mock
target - Target test to apply this rule to.
Method Detail

getConfig

public au.com.dius.pact.model.MockProviderConfig getConfig()

apply

public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base,
                                               org.junit.runner.Description description)
Specified by:
apply in interface org.junit.rules.TestRule
Overrides:
apply in class org.junit.rules.ExternalResource

getPacts

protected java.util.Map<java.lang.String,au.com.dius.pact.model.PactFragment> getPacts(java.lang.String fragment)
scan all methods for @Pact annotation and execute them, if not already initialized

Parameters:
fragment -