Skip to content

Instantly share code, notes, and snippets.

@dnno
dnno / PactProviderJUnit5WithBrokerTest.java
Last active January 2, 2023 13:22
JUnit5 provider test with broker integration
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@Provider("UserServiceJUnit5")
@PactBroker(url = "http://localhost:9292")
@SetSystemProperty(key = "pact.verifier.publishResults", value = "true")
public class PactProviderJUnit5WithBrokerTest {
@LocalServerPort
int port;
@BeforeEach
@dnno
dnno / docker-compose.yaml
Created December 23, 2022 13:02
Pact Broker Dockercompose file
version: "3"
services:
postgres:
image: postgres
healthcheck:
test: psql postgres --command "select 1" -U postgres
volumes:
- postgres-volume:/var/lib/postgresql/data
environment:
@dnno
dnno / PactMethodWithMatching.java
Created December 22, 2022 14:00
Pact definition with matching dsl
@Pact(provider = "UserServiceJUnit5", consumer = "UserConsumer")
public V4Pact getAllUsers(PactBuilder builder) {
return builder
.usingLegacyDsl()
.given("A running user service")
.uponReceiving("A request for a user list")
.path("/users")
.method("GET")
.willRespondWith()
@dnno
dnno / PactProviderSpringJUnit5Test.java
Created December 21, 2022 09:19
Spring JUnit5 style provider
@WebMvcTest
@Provider("UserServiceJUnit5")
@PactFolder("build/pacts")
public class PactProviderSpringJUnit5Test {
@TestConfiguration
static class Config {
@Bean
public UserRepository userRepo() {
@dnno
dnno / PactProviderJUnit5Test.java
Created December 21, 2022 08:53
JUnit5 style pact provider test
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@Provider("UserServiceJUnit5")
@PactFolder("build/pacts")
public class PactProviderJUnit5Test {
@LocalServerPort
int port;
@BeforeEach
public void setup(PactVerificationContext context) {
@dnno
dnno / PactConsumerJUnit5Test.java
Last active December 21, 2022 08:47
JUnit5 style Pact Consumer
@ExtendWith(PactConsumerTestExt.class)
public class PactConsumerJUnit5Test {
@Pact(provider = "UserServiceJUnit5", consumer = "UserConsumer")
public V4Pact getAllUsers(PactBuilder builder) {
String expectedUsers = """
[
{
"id": 1,
@dnno
dnno / UserConsumer-UserService.json
Created December 20, 2022 13:19
Pact contract file
{
"consumer": {
"name": "UserConsumer"
},
"interactions": [
{
"description": "A request for a user list",
"request": {
"method": "GET",
"path": "/users"
@dnno
dnno / PactProviderTest.java
Last active December 20, 2022 13:36
PactProviderTest
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class PactProviderTest {
ProviderInfo providerInfo;
ConsumerInfo consumerInfo;
static Pact consumerPact;
@LocalServerPort
int port;
@dnno
dnno / PactConsumerTest.java
Last active December 20, 2022 13:00
PactConsumerTest
public class PactConsumerTest {
@Test
public void getAllUsersPact() {
String expectedUsers = """
[
{
"id": 1,
"name": "Jane Doe"
},
@dnno
dnno / response-test.js
Last active May 24, 2022 09:43
Postman response test
let jsonData = JSON.parse(responseBody)
pm.test("Cars have been received", () => {
pm.response.to.have.status(200)
pm.expect(jsonData).to.not.be.undefined
pm.expect(jsonData).to.be.an('array')
pm.expect(jsonData).to.not.be.empty
});