Skip to content

Commit ea081bd

Browse files
committed
fix: Provider states
1 parent c61144d commit ea081bd

5 files changed

Lines changed: 23 additions & 10 deletions

File tree

.github/workflows/build.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ jobs:
8888
working-directory: customer-client
8989

9090
- name: Build customer-service
91-
run: mvn clean package -f customer-service/pom.xml -Dservice.name=customer-service -DskipTests
91+
run: mvn clean package -f customer-service/pom.xml -Dservice.name=customer-service
9292

9393
- name: Build billing-service
9494
run: mvn clean package -f billing-service/pom.xml -Dservice.name=billing-service

customer-client/test/create-customer.spec.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616
import { test, expect } from '@playwright/test';
17-
import { setupApiProxy } from './pact-proxy';
17+
import { createProvider, setupApiProxy } from './pact-proxy';
1818
import { PactV4 } from '@pact-foundation/pact';
1919
import path from 'path';
2020

@@ -32,12 +32,7 @@ test.describe('Neuer Kunde', () => {
3232
});
3333

3434
test('erstellt Kunden erfolgreich und navigiert zur Liste', async ({ page }) => {
35-
const provider = new PactV4({
36-
consumer: 'create-customer',
37-
provider: 'customer-service',
38-
dir: path.resolve(process.cwd(), '../pacts'),
39-
logLevel: 'warn',
40-
});
35+
const provider = createProvider();
4136

4237
provider
4338
.addInteraction()
@@ -51,7 +46,8 @@ test.describe('Neuer Kunde', () => {
5146

5247
await provider
5348
.addInteraction()
54-
.uponReceiving('a request to get all customers')
49+
.given("Sherlock is available")
50+
.uponReceiving('a request to get all customers (inkl. Sherlock)')
5551
.withRequest('GET', '/customers/')
5652
.willRespondWith(200, (builder) => {
5753
builder.headers({ 'Content-Type': 'application/json' }).jsonBody([

customer-service/src/main/java/de/openknowledge/sample/customer/domain/CustomerRepository.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public class CustomerRepository {
4242
@PostConstruct
4343
public void initialize() {
4444

45+
CUSTOMER_NUMBERS.set(0);
4546
customers = new ConcurrentHashMap<>();
4647
customers.put(new CustomerNumber("0815"),
4748
new Customer(new CustomerNumber("0815"), new CustomerName("Max Mustermann")));

customer-service/src/test/java/de/openknowledge/sample/customer/CustomerServiceTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,15 @@
3737
import au.com.dius.pact.provider.junit5.PactVerificationContext;
3838
import au.com.dius.pact.provider.junit5.PactVerificationInvocationContextProvider;
3939
import au.com.dius.pact.provider.junitsupport.Provider;
40+
import au.com.dius.pact.provider.junitsupport.State;
4041
import au.com.dius.pact.provider.junitsupport.loader.PactFolder;
4142
import de.openknowledge.sample.address.domain.Address;
4243
import de.openknowledge.sample.address.domain.BillingAddressRepository;
4344
import de.openknowledge.sample.address.domain.DeliveryAddressRepository;
45+
import de.openknowledge.sample.customer.domain.Customer;
46+
import de.openknowledge.sample.customer.domain.CustomerName;
4447
import de.openknowledge.sample.customer.domain.CustomerNumber;
48+
import de.openknowledge.sample.customer.domain.CustomerRepository;
4549
import rocks.limburg.cdimock.MockitoBeans;
4650

4751
@Provider("customer-service")
@@ -53,6 +57,9 @@ public class CustomerServiceTest {
5357
@ConfigurationInject
5458
private Meecrowave.Builder config;
5559

60+
@Inject
61+
private CustomerRepository customerRepository;
62+
5663
@Inject
5764
private BillingAddressRepository billingAddressRepository;
5865

@@ -96,4 +103,9 @@ public void setUp(PactVerificationContext verificationContext) {
96103
void pactVerificationTestTemplate(PactVerificationContext context) {
97104
ofNullable(context).ifPresent(PactVerificationContext::verifyInteraction);
98105
}
106+
107+
@State("Sherlock is available")
108+
public void insertSherlock() {
109+
customerRepository.persist(new Customer(new CustomerName("Sherlock Holmes")));
110+
}
99111
}

customer-service/src/test/java/de/openknowledge/sample/customer/domain/TestCustomerRepository.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,15 @@
1515
*/
1616
package de.openknowledge.sample.customer.domain;
1717

18+
import jakarta.enterprise.context.Destroyed;
1819
import jakarta.enterprise.context.RequestScoped;
20+
import jakarta.enterprise.event.Observes;
1921
import jakarta.enterprise.inject.Specializes;
2022

2123
@Specializes
22-
@RequestScoped
2324
public class TestCustomerRepository extends CustomerRepository {
2425

26+
public void reset(@Observes @Destroyed(RequestScoped.class) Object event) {
27+
super.initialize();
28+
}
2529
}

0 commit comments

Comments
 (0)