Skip to content

Commit ddf7d79

Browse files
committed
feat: add example JUnit4 Spring test using new consumer version selector method
1 parent 09d907b commit ddf7d79

File tree

3 files changed

+68
-22
lines changed

3 files changed

+68
-22
lines changed

provider/spring/src/test/groovy/au/com/dius/pact/provider/spring/testspringbootapp/TestApplication.groovy

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package au.com.dius.pact.provider.spring;
2+
3+
import au.com.dius.pact.provider.junit.target.HttpTarget;
4+
import au.com.dius.pact.provider.junitsupport.IgnoreNoPactsToVerify;
5+
import au.com.dius.pact.provider.junitsupport.Provider;
6+
import au.com.dius.pact.provider.junitsupport.loader.PactBroker;
7+
import au.com.dius.pact.provider.junitsupport.loader.PactBrokerConsumerVersionSelectors;
8+
import au.com.dius.pact.provider.junitsupport.loader.SelectorBuilder;
9+
import au.com.dius.pact.provider.junitsupport.target.Target;
10+
import au.com.dius.pact.provider.junitsupport.target.TestTarget;
11+
import au.com.dius.pact.provider.spring.testspringbootapp.TestApplication;
12+
import org.junit.AfterClass;
13+
import org.junit.runner.RunWith;
14+
import org.springframework.boot.test.context.SpringBootTest;
15+
16+
import static org.hamcrest.MatcherAssert.assertThat;
17+
import static org.hamcrest.Matchers.is;
18+
19+
@RunWith(SpringRestPactRunner.class)
20+
@Provider("myAwesomeService")
21+
@PactBroker(url = "http://broker.host")
22+
@IgnoreNoPactsToVerify(ignoreIoErrors = "true")
23+
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
24+
classes = { TestApplication.class })
25+
public class ConsumerVersionSelectorTest {
26+
@TestTarget
27+
public final Target target = new HttpTarget(8332);
28+
29+
static boolean called = false;
30+
@PactBrokerConsumerVersionSelectors
31+
public static SelectorBuilder consumerVersionSelectors() {
32+
called = true;
33+
return new SelectorBuilder().branch("current");
34+
}
35+
36+
@AfterClass
37+
public static void after() {
38+
assertThat("consumerVersionSelectors() was not called", called, is(true));
39+
}
40+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package au.com.dius.pact.provider.spring.testspringbootapp;
2+
3+
import org.springframework.boot.autoconfigure.SpringBootApplication;
4+
import org.springframework.context.annotation.Bean;
5+
6+
@SpringBootApplication
7+
public class TestApplication {
8+
9+
public static class ObjectThatMustBeClosed {
10+
private ObjectThatMustBeClosed() {}
11+
12+
private static final ObjectThatMustBeClosed instance = new ObjectThatMustBeClosed();
13+
public static ObjectThatMustBeClosed getInstance() {
14+
return instance;
15+
}
16+
17+
public boolean destroyed = false;
18+
19+
public void shutdown() {
20+
destroyed = true;
21+
}
22+
}
23+
24+
@Bean(destroyMethod="shutdown")
25+
ObjectThatMustBeClosed mustBeClosed() {
26+
return ObjectThatMustBeClosed.getInstance();
27+
}
28+
}

0 commit comments

Comments
 (0)