From 8e7d06bee747e6afc9ad2fbe6084b57d21631adc Mon Sep 17 00:00:00 2001 From: Andrew Morgan Date: Fri, 28 Oct 2016 14:57:06 +0100 Subject: [PATCH] Fixes #124 - When specifying 'workOffline=false', the stubrunner will now always fail if unable to find the stub remotely --- .../spring/StubRunnerConfiguration.java | 3 +-- .../FailFastLoanApplicationServiceTests.java | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.java index b1f7b58fe7..f9c777e6ec 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.java @@ -63,8 +63,7 @@ public class StubRunnerConfiguration { .withMinMaxPort(this.props.getMinPort(), this.props.getMaxPort()) .withStubRepositoryRoot( uriStringOrEmpty(this.props.getRepositoryRoot())) - .withWorkOffline(this.props.getRepositoryRoot() == null - || this.props.isWorkOffline()) + .withWorkOffline(this.props.isWorkOffline()) .withStubsClassifier(this.props.getClassifier()) .withStubs(this.props.getIds()) .withContextPath(contextPath()) diff --git a/tests/spring-cloud-contract-stub-runner-context-path/src/test/java/com/example/loan/FailFastLoanApplicationServiceTests.java b/tests/spring-cloud-contract-stub-runner-context-path/src/test/java/com/example/loan/FailFastLoanApplicationServiceTests.java index 18dcf704d4..d4246a5ee9 100644 --- a/tests/spring-cloud-contract-stub-runner-context-path/src/test/java/com/example/loan/FailFastLoanApplicationServiceTests.java +++ b/tests/spring-cloud-contract-stub-runner-context-path/src/test/java/com/example/loan/FailFastLoanApplicationServiceTests.java @@ -32,4 +32,21 @@ public class FailFastLoanApplicationServiceTests { .hasMessage("For groupId [org.springframework.cloud.contract.verifier.stubs] artifactId [should-not-be-found] and classifier [stubs] the version was not resolved!"); } + @Test + public void shouldNotTryAndWorkOfflineWhenWorkOfflineIsSetToFalse() { + // When + final Throwable throwable = catchThrowable(() -> new SpringApplicationBuilder(Application.class, StubRunnerConfiguration.class) + .properties(ImmutableMap.of( + "stubrunner.workOffline", "false", + "stubrunner.ids", new String[]{"org.springframework.cloud.contract.verifier.stubs:should-not-be-found"})) + .run()); + + // Then + assertThat(throwable).isInstanceOf(BeanCreationException.class); + assertThat(throwable.getCause()).isInstanceOf(BeanInstantiationException.class); + assertThat(throwable.getCause().getCause()) + .isInstanceOf(IllegalStateException.class) + .hasMessage("Remote repositories for stubs are not specified and work offline flag wasn't passed"); + } + }