Skip to content

Commit

Permalink
Pact update (#83)
Browse files Browse the repository at this point in the history
* chore: bumps jboss-parent

* chore: bumps pact to latest

* chore: bumps core libraries

* fix: typos in documentation
  • Loading branch information
bartoszmajsak authored and lordofthejars committed Oct 24, 2017
1 parent 897c603 commit 3338c4f
Show file tree
Hide file tree
Showing 12 changed files with 66 additions and 71 deletions.
2 changes: 1 addition & 1 deletion README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ endif::generated-doc[]
With the release of Pact 3.5.0, `toFragment` method has been deprecated in favor of `toPact()`.
Also this method instead of returning `PactFragment` now returns `RequestResponsePact`.

Because of this change your contract definition should be adapted accordantly:
Because of this change your contract definition should be adapted accordingly:

[source, java]
.Algeron Pact 1.X
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import org.junit.rules.TemporaryFolder;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;

import java.io.ByteArrayInputStream;
import java.io.File;
Expand Down
2 changes: 1 addition & 1 deletion docs/skipDeployment.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
In case of consumer driven contracts, there are two kinds of tests - consumer tests and provider tests.
Usually in your CI environment you want to run provider tests against two different scenarios:

against a master branch of provider:: to detect if provider team has already implemented all the functionalities defined in contracts.
against a master branch of provider:: to detect if provider team has already implemented all the functionality defined in contracts.
against (pre)production:: if you support deploying consumer independently of a provider, then you need to ensure that if you deploy new consumer with the new contracts to (pre)production everything will be still working and you haven't introduced any regressions.

So before deploying a new consumer you need to verify that from provider side everything will continue working.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;

import java.lang.reflect.Method;
import java.util.Optional;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;

import java.net.MalformedURLException;
import java.net.URL;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@

import au.com.dius.pact.model.Interaction;
import au.com.dius.pact.model.Pact;
import au.com.dius.pact.model.PactSource;
import au.com.dius.pact.model.UrlPactSource;
import au.com.dius.pact.provider.ConsumerInfo;
import au.com.dius.pact.provider.ProviderInfo;
import au.com.dius.pact.provider.reporters.VerifierReporter;
import java.io.File;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.arquillian.recorder.reporter.PropertyEntry;
import org.arquillian.recorder.reporter.event.PropertyReportEvent;
import org.arquillian.recorder.reporter.model.entry.GroupEntry;
import org.arquillian.recorder.reporter.model.entry.TextEntry;
import org.jboss.arquillian.core.api.Event;
import org.jboss.arquillian.core.api.annotation.Inject;

import java.io.File;
import java.net.URL;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class ArquillianVerifierReporter implements VerifierReporter {

@Inject
Expand All @@ -40,6 +40,16 @@ public void reportVerificationForConsumer(ConsumerInfo consumer, ProviderInfo pr
String.format("Verifying a pact between %s and %s", consumer.getName(), provider.getName()));
}

@Override
public void verifyConsumerFromUrl(UrlPactSource urlPactSource, ConsumerInfo consumerInfo) {

}

@Override
public void verifyConsumerFromFile(PactSource pactSource, ConsumerInfo consumerInfo) {

}

@Override
public void warnProviderHasNoConsumers(ProviderInfo providerInfo) {
appendTextEntry(
Expand Down Expand Up @@ -228,14 +238,6 @@ public void initialise(ProviderInfo provider) {

}

@Override
public void verifyConsumerFromUrl(URL pactUrl, ConsumerInfo consumer) {
}

@Override
public void verifyConsumerFromFile(Object pactFile, ConsumerInfo consumer) {
}

@Override
public void pactLoadFailureForConsumer(ConsumerInfo consumerInfo, String message) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,39 +4,40 @@
import au.com.dius.pact.model.Pact;
import au.com.dius.pact.model.ProviderState;
import au.com.dius.pact.model.RequestResponseInteraction;
import org.arquillian.algeron.pact.provider.spi.Target;
import java.util.ArrayList;
import java.util.List;
import org.arquillian.algeron.pact.provider.api.Pacts;
import org.arquillian.algeron.pact.provider.spi.CurrentConsumer;
import org.arquillian.algeron.pact.provider.spi.CurrentInteraction;
import org.arquillian.algeron.pact.provider.spi.Provider;
import org.arquillian.algeron.pact.provider.spi.State;
import org.arquillian.algeron.pact.provider.spi.Target;
import org.arquillian.algeron.provider.core.retriever.ContractsFolder;
import org.jboss.arquillian.core.api.Instance;
import org.jboss.arquillian.core.spi.EventContext;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.arquillian.test.spi.TestClass;
import org.jboss.arquillian.test.spi.event.suite.BeforeClass;
import org.jboss.arquillian.test.spi.event.suite.Test;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;

import java.util.ArrayList;
import java.util.List;
import org.mockito.junit.MockitoJUnitRunner;

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.mockito.Mockito.*;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

@RunWith(MockitoJUnitRunner.class)
public class InteractionRunnerTest {

@Mock
private EventContext<Test> eventContext;
private EventContext<org.jboss.arquillian.test.spi.event.suite.Test> eventContext;

@Mock
private Test test;
private org.jboss.arquillian.test.spi.event.suite.Test test;

@Mock
private Target target;
Expand All @@ -59,7 +60,7 @@ public void setup() {
when(eventContext.getEvent()).thenReturn(test);
}

@org.junit.Test
@Test
public void should_execute_test_for_each_interaction() {
when(test.getTestClass()).thenReturn(new TestClass(PactProvider.class));
PactProvider pactDefinition = new PactProvider();
Expand All @@ -76,11 +77,10 @@ public void should_execute_test_for_each_interaction() {
verify(eventContext, times(2)).proceed();
}

@org.junit.Test
@Test
public void should_throw_exception_when_no_target() {
when(test.getTestClass()).thenReturn(new TestClass(PactProviderWithNoTarget.class));
PactProviderWithNoTarget pactDefinition = new PactProviderWithNoTarget();
when(test.getTestInstance()).thenReturn(pactDefinition);

InteractionRunner interactionRunner = new InteractionRunner();
interactionRunner.pactsInstance = pactsInstance;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;

import java.util.HashMap;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
package org.arquillian.algeron.pact.provider.core.loader.pactbroker;

import au.com.dius.pact.provider.ConsumerInfo;
import au.com.dius.pact.pactbroker.PactBrokerConsumer;
import au.com.dius.pact.provider.broker.PactBrokerClient;
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.net.URISyntaxException;
import java.net.URI;
import java.util.ArrayList;
import java.util.Collection;
import java.util.stream.Collectors;
import org.arquillian.algeron.provider.spi.retriever.ContractsRetriever;

import java.io.IOException;
import java.net.URI;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.arquillian.algeron.provider.spi.retriever.ContractsRetriever;

/**
* Out-of-the-box implementation of {@link org.arquillian.algeron.provider.spi.retriever.ContractsRetriever} that
Expand Down Expand Up @@ -53,7 +51,7 @@ public List<URI> retrieve() throws IOException {

if (this.pactBroker.tags().length == 0) {

final List<ConsumerInfo> consumerInfos = pactBrokerClient.fetchConsumers(this.providerName);
final List<PactBrokerConsumer> consumerInfos = pactBrokerClient.fetchConsumers(this.providerName);
return toUri(consumerInfos);
} else {
final List<URI> contracts = new ArrayList<>();
Expand All @@ -66,16 +64,10 @@ public List<URI> retrieve() throws IOException {
}
}

private List<URI> toUri(List<ConsumerInfo> consumerInfos) {
private List<URI> toUri(List<PactBrokerConsumer> consumerInfos) {
return consumerInfos.stream()
.map(ConsumerInfo::getPactFile)
.map(u -> {
try {
return ((java.net.URL) u).toURI();
} catch (URISyntaxException e) {
throw new IllegalArgumentException(e);
}
})
.map(PactBrokerConsumer::getPactBrokerUrl)
.map(URI::create)
.collect(Collectors.toList());
}

Expand Down
37 changes: 21 additions & 16 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<!-- Parent -->
<parent>
<groupId>org.jboss</groupId>
<artifactId>jboss-parent</artifactId>
<version>24</version>
<relativePath />
</parent>
<!-- Parent -->
<parent>
<groupId>org.jboss</groupId>
<artifactId>jboss-parent</artifactId>
<version>25</version>
<relativePath/>
</parent>

<!-- Model Version -->
<modelVersion>4.0.0</modelVersion>
Expand Down Expand Up @@ -53,24 +54,28 @@

<properties>
<version.arquillian_core>1.1.13.Final</version.arquillian_core>
<version.junit>4.12</version.junit>
<version.mockito>1.10.19</version.mockito>
<version.assertj>3.6.2</version.assertj>
<version.shrinkwrap.resolvers>2.2.6</version.shrinkwrap.resolvers>
<version.pact>3.5.0</version.pact>
<version.pact>3.5.8</version.pact>

<!-- Requirement from pact to run-->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<version.guava-retrying>2.0.0</version.guava-retrying>
<version.httpclient>4.5.2</version.httpclient>
<version.minimal-json>0.9.4</version.minimal-json>
<version.rest-assured>3.0.1</version.rest-assured>

<version.jgit>4.5.0.201609210915-r</version.jgit>
<version.slf4j-api>1.7.21</version.slf4j-api>
<version.snakeyaml>1.18</version.snakeyaml>
<version.snakeyaml>1.19</version.snakeyaml>
<version.wiremock>2.3.1</version.wiremock>

<version.jcip-annotations>1.0</version.jcip-annotations>
<version.arquillian.recorder>1.1.5.Final</version.arquillian.recorder>

<version.junit>4.12</version.junit>
<version.mockito>2.11.0</version.mockito>
<version.assertj>3.8.0</version.assertj>
<version.shrinkwrap.resolvers>2.2.6</version.shrinkwrap.resolvers>
<version.rest-assured>3.0.5</version.rest-assured>
<version.arquillian.recorder>1.1.6.Final</version.arquillian.recorder>
</properties>

<dependencyManagement>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import org.junit.runner.RunWith;
import org.mockito.Matchers;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;

import java.lang.reflect.Field;
import java.net.MalformedURLException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;

import java.io.File;
import java.io.IOException;
Expand Down Expand Up @@ -46,9 +46,6 @@ public void setup() {
@Test
public void should_clone_repo() throws IOException {
final Path path = Paths.get("/tmp");
when(gitOperations.isValidGitRepository(path)).thenReturn(true);
when(gitOperations.openGitRepository(path)).thenReturn(git);
when(gitOperations.hasAtLeastOneReference(repository)).thenReturn(true);

when(gitOperations.cloneRepository(eq("myrepourl"), any(Path.class))).thenReturn(git);
when(gitOperations.isLocalBranch(git, "master")).thenReturn(false);
Expand Down Expand Up @@ -134,7 +131,6 @@ public void should_pull_specific_branch_git_repo_and_use_tag() throws IOExceptio
when(gitOperations.hasAtLeastOneReference(repository)).thenReturn(true);

when(gitOperations.pullFromRepository(git, "origin", "mybranch")).thenReturn(pullResult);
when(gitOperations.isLocalBranch(git, "master")).thenReturn(false);

ContractsGitLoader pactGitLoader =
new ContractsGitLoader(TestWithPactRepositoryDirectoryAndTag.class.getAnnotation(ContractsGit.class));
Expand Down

0 comments on commit 3338c4f

Please sign in to comment.