Class StubRunnerExtension
- java.lang.Object
-
- org.springframework.cloud.contract.stubrunner.junit.StubRunnerExtension
-
- All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterAllCallback,org.junit.jupiter.api.extension.AfterEachCallback,org.junit.jupiter.api.extension.BeforeAllCallback,org.junit.jupiter.api.extension.BeforeEachCallback,org.junit.jupiter.api.extension.Extension,StubFinder,StubTrigger
- Direct Known Subclasses:
StubRunnerExtension.PortStubRunnerExtension
public class StubRunnerExtension extends Object implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.AfterEachCallback, StubFinder
JUnit 5 extension that allows to download and run stubs.- Since:
- 2.1.0
- Author:
- Olga Maciaszek-Sharma
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classStubRunnerExtension.PortStubRunnerExtensionHelper class with additional port, related methods once you pick a stub to download.
-
Constructor Summary
Constructors Constructor Description StubRunnerExtension()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterAll(org.junit.jupiter.api.extension.ExtensionContext extensionContext)voidafterEach(org.junit.jupiter.api.extension.ExtensionContext context)voidbeforeAll(org.junit.jupiter.api.extension.ExtensionContext extensionContext)voidbeforeEach(org.junit.jupiter.api.extension.ExtensionContext context)StubRunnerExtension.PortStubRunnerExtensiondownloadLatestStub(String groupId, String artifactId, String classifier)StubRunnerExtension.PortStubRunnerExtensiondownloadStub(String ivyNotation)StubRunnerExtension.PortStubRunnerExtensiondownloadStub(String groupId, String artifactId)StubRunnerExtension.PortStubRunnerExtensiondownloadStub(String groupId, String artifactId, String version)StubRunnerExtension.PortStubRunnerExtensiondownloadStub(String groupId, String artifactId, String version, String classifier)StubRunnerExtensiondownloadStubs(String... ivyNotations)StubRunnerExtensiondownloadStubs(List<String> ivyNotations)StubRunnerExtensionfailOnNoStubs(boolean failOnNoStubs)RunningStubsfindAllRunningStubs()URLfindStubUrl(String ivyNotation)For the given Ivy notation[groupId]:artifactId:[version]:[classifier]tries to find the matching URL of the running stub.URLfindStubUrl(String groupId, String artifactId)For the given groupId and artifactId tries to find the matching URL of the running stub.Map<StubConfiguration,Collection<org.springframework.cloud.contract.spec.Contract>>getContracts()Map<String,Collection<String>>labels()Feature related to messaging.StubRunnerExtensionmaxPort(int maxPort)StubRunnerExtensionmessageVerifier(org.springframework.cloud.contract.verifier.messaging.MessageVerifier messageVerifier)StubRunnerExtensionminPort(int minPort)StubRunnerExtensionoptions(StubRunnerOptions stubRunnerOptions)StubRunnerExtensionrepoRoot(String repoRoot)StubRunnerExtensionstubsMode(StubRunnerProperties.StubsMode stubsMode)booleantrigger()Triggers all possible events.booleantrigger(String labelName)Triggers an event by a given label.booleantrigger(String ivyNotation, String labelName)Triggers an event by a given label for a givengroupid:artifactidnotation.StubRunnerExtensionwithConsumerName(String consumerName)StubRunnerExtensionwithDeleteStubsAfterTest(boolean deleteStubsAfterTest)StubRunnerExtensionwithGenerateStubs(boolean generateStubs)StubRunnerExtensionwithHttpServerStubConfigurer(Class<? extends HttpServerStubConfigurer> httpServerStubConfigurer)StubRunnerExtensionwithMappingsOutputFolder(String mappingsOutputFolder)StubRunnerExtensionwithProperties(Map<String,String> properties)StubRunnerExtensionwithStubPerConsumer(boolean stubPerConsumer)
-
-
-
Method Detail
-
afterAll
public void afterAll(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
- Specified by:
afterAllin interfaceorg.junit.jupiter.api.extension.AfterAllCallback
-
afterEach
public void afterEach(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception- Specified by:
afterEachin interfaceorg.junit.jupiter.api.extension.AfterEachCallback- Throws:
Exception
-
beforeAll
public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
- Specified by:
beforeAllin interfaceorg.junit.jupiter.api.extension.BeforeAllCallback
-
beforeEach
public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception- Specified by:
beforeEachin interfaceorg.junit.jupiter.api.extension.BeforeEachCallback- Throws:
Exception
-
findStubUrl
public URL findStubUrl(String groupId, String artifactId) throws StubNotFoundException
Description copied from interface:StubFinderFor the given groupId and artifactId tries to find the matching URL of the running stub.- Specified by:
findStubUrlin interfaceStubFinder- Parameters:
groupId- - might be null. In that case a search only via artifactId takes placeartifactId- - artifact id of the stub- Returns:
- URL of a running stub or throws exception if not found
- Throws:
StubNotFoundException- in case of not finding a stub
-
findStubUrl
public URL findStubUrl(String ivyNotation) throws StubNotFoundException
Description copied from interface:StubFinderFor the given Ivy notation[groupId]:artifactId:[version]:[classifier]tries to find the matching URL of the running stub. You can also pass onlyartifactId.- Specified by:
findStubUrlin interfaceStubFinder- Parameters:
ivyNotation- - Ivy representation of the Maven artifact- Returns:
- URL of a running stub or throws exception if not found
- Throws:
StubNotFoundException- in case of not finding a stub
-
findAllRunningStubs
public RunningStubs findAllRunningStubs()
- Specified by:
findAllRunningStubsin interfaceStubFinder- Returns:
- all running stubs
-
getContracts
public Map<StubConfiguration,Collection<org.springframework.cloud.contract.spec.Contract>> getContracts()
- Specified by:
getContractsin interfaceStubFinder- Returns:
- the list of Contracts
-
trigger
public boolean trigger(String ivyNotation, String labelName)
Description copied from interface:StubTriggerTriggers an event by a given label for a givengroupid:artifactidnotation. You can use onlyartifactIdtoo. Feature related to messaging.- Specified by:
triggerin interfaceStubTrigger- Parameters:
ivyNotation- ivy notation of a stublabelName- name of the label to trigger- Returns:
- true - if managed to run a trigger
-
trigger
public boolean trigger(String labelName)
Description copied from interface:StubTriggerTriggers an event by a given label. Feature related to messaging.- Specified by:
triggerin interfaceStubTrigger- Parameters:
labelName- name of the label to trigger- Returns:
- true - if managed to run a trigger
-
trigger
public boolean trigger()
Description copied from interface:StubTriggerTriggers all possible events. Feature related to messaging.- Specified by:
triggerin interfaceStubTrigger- Returns:
- true - if managed to run a trigger
-
labels
public Map<String,Collection<String>> labels()
Description copied from interface:StubTriggerFeature related to messaging.- Specified by:
labelsin interfaceStubTrigger- Returns:
- a mapping of ivy notation of a dependency to all the labels it has.
-
messageVerifier
public StubRunnerExtension messageVerifier(org.springframework.cloud.contract.verifier.messaging.MessageVerifier messageVerifier)
-
options
public StubRunnerExtension options(StubRunnerOptions stubRunnerOptions)
-
minPort
public StubRunnerExtension minPort(int minPort)
-
maxPort
public StubRunnerExtension maxPort(int maxPort)
-
repoRoot
public StubRunnerExtension repoRoot(String repoRoot)
-
stubsMode
public StubRunnerExtension stubsMode(StubRunnerProperties.StubsMode stubsMode)
-
downloadStub
public StubRunnerExtension.PortStubRunnerExtension downloadStub(String groupId, String artifactId, String version, String classifier)
-
downloadLatestStub
public StubRunnerExtension.PortStubRunnerExtension downloadLatestStub(String groupId, String artifactId, String classifier)
-
downloadStub
public StubRunnerExtension.PortStubRunnerExtension downloadStub(String groupId, String artifactId, String version)
-
downloadStub
public StubRunnerExtension.PortStubRunnerExtension downloadStub(String groupId, String artifactId)
-
downloadStub
public StubRunnerExtension.PortStubRunnerExtension downloadStub(String ivyNotation)
-
downloadStubs
public StubRunnerExtension downloadStubs(String... ivyNotations)
-
downloadStubs
public StubRunnerExtension downloadStubs(List<String> ivyNotations)
-
withStubPerConsumer
public StubRunnerExtension withStubPerConsumer(boolean stubPerConsumer)
-
withConsumerName
public StubRunnerExtension withConsumerName(String consumerName)
-
withMappingsOutputFolder
public StubRunnerExtension withMappingsOutputFolder(String mappingsOutputFolder)
-
withDeleteStubsAfterTest
public StubRunnerExtension withDeleteStubsAfterTest(boolean deleteStubsAfterTest)
-
withGenerateStubs
public StubRunnerExtension withGenerateStubs(boolean generateStubs)
-
failOnNoStubs
public StubRunnerExtension failOnNoStubs(boolean failOnNoStubs)
-
withProperties
public StubRunnerExtension withProperties(Map<String,String> properties)
-
withHttpServerStubConfigurer
public StubRunnerExtension withHttpServerStubConfigurer(Class<? extends HttpServerStubConfigurer> httpServerStubConfigurer)
-
-