Skip to content

Commit

Permalink
refactor: added missing test hidden by gitignore
Browse files Browse the repository at this point in the history
  • Loading branch information
Ronald Holshausen committed Jul 15, 2018
1 parent 79b212f commit 430bb45
Show file tree
Hide file tree
Showing 2 changed files with 113 additions and 1 deletion.
5 changes: 4 additions & 1 deletion .gitignore
Expand Up @@ -3,11 +3,14 @@
*/bin
# sbt specific
dist/*
target/
/target/
/*/target/
lib_managed/
src_managed/
project/boot/
project/plugins/project/
pact-jvm-provider-sbt/project/project/
pact-jvm-provider-sbt/project/target/

# Scala-IDE specific
.scala_dependencies
Expand Down
@@ -0,0 +1,109 @@
package au.com.dius.pact.provider.junit.target

import au.com.dius.pact.provider.ProviderVerifier
import au.com.dius.pact.provider.junit.VerificationReports
import au.com.dius.pact.support.expressions.ValueResolver
import org.junit.runners.model.TestClass
import spock.lang.Specification

class HttpTargetSpec extends Specification {

private HttpTarget httpTarget
private ProviderVerifier verifier
private ValueResolver resolver

@VerificationReports(['console', 'markdown'])
class StubTest {

}

def setup() {
httpTarget = new HttpTarget('localhost', 9000)
verifier = Mock(ProviderVerifier)
resolver = Mock(ValueResolver)
httpTarget.setValueResolver(resolver)
}

def 'by default does not enable the verification reports'() {
given:
httpTarget.setTestClass(new TestClass(HttpTargetSpec), this)

when:
httpTarget.setupReporters(verifier, 'test', 'test desc')

then:
0 * verifier.setReporters(_)
}

def 'enables the verification reports if there is an annotation on the test class'() {
given:
httpTarget.setTestClass(new TestClass(StubTest), new StubTest())

when:
httpTarget.setupReporters(verifier, 'test', 'test desc')

then:
1 * verifier.setReporters { r -> r*.class*.simpleName == ['AnsiConsoleReporter', 'MarkdownReporter'] }
}

def 'enables the verification reports if there is java properties defined'() {
given:
httpTarget.setTestClass(new TestClass(HttpTargetSpec), this)
resolver.propertyDefined('pact.verification.reports') >> true
resolver.resolveValue('pact.verification.reports:') >> 'markdown,json'
resolver.resolveValue(_) >> { args ->
if (args[0].startsWith('pact.verification.reportDir')) {
'target/reports/pact'
} else {
null
}
}

when:
httpTarget.setupReporters(verifier, 'test', 'test desc')

then:
1 * verifier.setReporters { r -> r*.class*.simpleName == ['MarkdownReporter', 'JsonReporter'] }
}

def 'handles white space in the report names'() {
given:
httpTarget.setTestClass(new TestClass(HttpTargetSpec), this)
resolver.propertyDefined('pact.verification.reports') >> true
resolver.resolveValue('pact.verification.reports:') >> 'markdown ,\tjson '
resolver.resolveValue(_) >> { args ->
if (args[0].startsWith('pact.verification.reportDir')) {
'target/reports/pact'
} else {
null
}
}

when:
httpTarget.setupReporters(verifier, 'test', 'test desc')

then:
1 * verifier.setReporters { r -> r*.class*.simpleName == ['MarkdownReporter', 'JsonReporter'] }
}

def 'handles an empty pact.verification.reports'() {
given:
httpTarget.setTestClass(new TestClass(HttpTargetSpec), this)
resolver.propertyDefined('pact.verification.reports') >> true
resolver.resolveValue('pact.verification.reports:') >> ''
resolver.resolveValue(_) >> { args ->
if (args[0].startsWith('pact.verification.reportDir')) {
'target/reports/pact'
} else {
null
}
}

when:
httpTarget.setupReporters(verifier, 'test', 'test desc')

then:
1 * verifier.setReporters { r -> r.size() == 0 }
}

}

0 comments on commit 430bb45

Please sign in to comment.