mirror of
https://github.com/jlengrand/atrium.git
synced 2026-03-10 08:01:19 +00:00
deprecate ExpectImpl.builder; use assertionBuilder directly
This commit is contained in:
@@ -7,12 +7,12 @@ import ch.tutteli.atrium.api.verbs.assert
|
||||
import ch.tutteli.atrium.api.verbs.assertThat
|
||||
import ch.tutteli.atrium.api.verbs.expect
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.Text
|
||||
import ch.tutteli.atrium.reporting.translating.StringBasedTranslatable
|
||||
import ch.tutteli.atrium.translations.DescriptionBasic.IS
|
||||
import ch.tutteli.atrium.translations.DescriptionAnyAssertion.TO_BE
|
||||
import ch.tutteli.atrium.translations.DescriptionBasic.IS
|
||||
import kotlin.test.Test
|
||||
|
||||
class SmokeTest {
|
||||
@@ -110,7 +110,7 @@ fun Expect<Int>.isEven() = createAndAddAssertion(IS, Text("an even number")) { i
|
||||
fun Expect<Int>.isMultipleOf(base: Int): Expect<Int> = addAssertion(_isMultipleOf(this, base))
|
||||
|
||||
private fun _isMultipleOf(expect: Expect<Int>, base: Int): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, DescriptionIntAssertions.IS_MULTIPLE_OF, base) {
|
||||
assertionBuilder.createDescriptive(expect, DescriptionIntAssertions.IS_MULTIPLE_OF, base) {
|
||||
it % base == 0
|
||||
}
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ import ch.tutteli.atrium.api.fluent.en_GB.toBe
|
||||
import ch.tutteli.atrium.api.verbs.assert
|
||||
import ch.tutteli.atrium.api.verbs.assertThat
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.Text
|
||||
import ch.tutteli.atrium.reporting.translating.StringBasedTranslatable
|
||||
import ch.tutteli.atrium.translations.DescriptionBasic
|
||||
@@ -38,7 +38,7 @@ fun Expect<Int>.isEven() =
|
||||
fun Expect<Int>.isMultipleOf(base: Int) = addAssertion(_isMultipleOf(this, base))
|
||||
|
||||
fun _isMultipleOf(expect: Expect<Int>, base: Int): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, DescriptionIntAssertions.IS_MULTIPLE_OF, base) {
|
||||
assertionBuilder.createDescriptive(expect, DescriptionIntAssertions.IS_MULTIPLE_OF, base) {
|
||||
it % base == 0
|
||||
}
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@ import ch.tutteli.atrium.api.fluent.en_GB.kotlin_1_3.isSuccess
|
||||
import ch.tutteli.atrium.api.fluent.en_GB.toBe
|
||||
import ch.tutteli.atrium.api.verbs.expect
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.Text
|
||||
import ch.tutteli.atrium.reporting.translating.StringBasedTranslatable
|
||||
import ch.tutteli.atrium.translations.DescriptionBasic
|
||||
@@ -37,7 +37,7 @@ fun Expect<Int>.isEven(): Expect<Int> =
|
||||
fun Expect<Int>.isMultipleOf(base: Int): Expect<Int> = addAssertion(_isMultipleOf(this, base))
|
||||
|
||||
fun _isMultipleOf(expect: Expect<Int>, base: Int): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, DescriptionIntAssertions.IS_MULTIPLE_OF, base) {
|
||||
assertionBuilder.createDescriptive(expect, DescriptionIntAssertions.IS_MULTIPLE_OF, base) {
|
||||
it % base == 0
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import ch.tutteli.atrium.api.infix.en_GB.*
|
||||
import ch.tutteli.atrium.api.verbs.assertThat
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.Text
|
||||
import ch.tutteli.atrium.reporting.translating.StringBasedTranslatable
|
||||
import ch.tutteli.atrium.translations.DescriptionBasic.IS
|
||||
@@ -58,7 +58,7 @@ infix fun Expect<Int>.tobe(@Suppress("UNUSED_PARAMETER") even: even) =
|
||||
infix fun Expect<Int>.isMultipleOf(base: Int): Expect<Int> = addAssertion(isMultipleOf(this, base))
|
||||
|
||||
private fun isMultipleOf(expect: Expect<Int>, base: Int): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, DescriptionIntAssertions.IS_MULTIPLE_OF, base) {
|
||||
assertionBuilder.createDescriptive(expect, DescriptionIntAssertions.IS_MULTIPLE_OF, base) {
|
||||
it % base == 0
|
||||
}
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@ package custom
|
||||
import ch.tutteli.atrium.api.infix.en_GB.toBe
|
||||
import ch.tutteli.atrium.api.verbs.assertThat
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.Text
|
||||
import ch.tutteli.atrium.reporting.translating.StringBasedTranslatable
|
||||
import ch.tutteli.atrium.translations.DescriptionBasic
|
||||
@@ -33,7 +33,7 @@ infix fun Expect<Int>.tobe(@Suppress("UNUSED_PARAMETER") even: even) =
|
||||
infix fun Expect<Int>.isMultipleOf(base: Int) = addAssertion(isMultipleOf(this, base))
|
||||
|
||||
fun isMultipleOf(expect: Expect<Int>, base: Int): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, DescriptionIntAssertions.IS_MULTIPLE_OF, base) {
|
||||
assertionBuilder.createDescriptive(expect, DescriptionIntAssertions.IS_MULTIPLE_OF, base) {
|
||||
it % base == 0
|
||||
}
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ import ch.tutteli.atrium.api.infix.en_GB.success
|
||||
import ch.tutteli.atrium.api.infix.en_GB.toBe
|
||||
import ch.tutteli.atrium.api.verbs.expect
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.Text
|
||||
import ch.tutteli.atrium.reporting.translating.StringBasedTranslatable
|
||||
import ch.tutteli.atrium.translations.DescriptionBasic
|
||||
@@ -41,7 +41,7 @@ infix fun Expect<Int>.tobe(@Suppress("UNUSED_PARAMETER") even: even) =
|
||||
infix fun Expect<Int>.isMultipleOf(base: Int): Expect<Int> = addAssertion(_isMultipleOf(this, base))
|
||||
|
||||
fun _isMultipleOf(expect: Expect<Int>, base: Int): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, DescriptionIntAssertions.IS_MULTIPLE_OF, base) {
|
||||
assertionBuilder.createDescriptive(expect, DescriptionIntAssertions.IS_MULTIPLE_OF, base) {
|
||||
it % base == 0
|
||||
}
|
||||
|
||||
|
||||
@@ -31,6 +31,5 @@ interface RootExpect<T> : Expect<T> {
|
||||
is RootExpectImpl -> RootExpectImpl(rootExpect, expectOptions)
|
||||
else -> throw UnsupportedOperationException("Please open an issue that a hook shall be implemented: $BUG_REPORT_URL?template=feature_request&title=Hook%20for%20RootExpect%20creation")
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package ch.tutteli.atrium.assertions.builders
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.core.falseProvider
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.specs.SubjectLessSpec
|
||||
import ch.tutteli.atrium.specs.expectLambda
|
||||
import org.spekframework.spek2.Spek
|
||||
@@ -11,7 +10,7 @@ import org.spekframework.spek2.Spek
|
||||
class DescriptiveWithBasedOnSubjectSpec : Spek({
|
||||
|
||||
fun addDescriptive(f: (Expect<Int>, Descriptive.HoldsOption) -> Assertion) = expectLambda<Int> {
|
||||
addAssertion(f(this, ExpectImpl.builder.descriptive))
|
||||
addAssertion(f(this, assertionBuilder.descriptive))
|
||||
}
|
||||
|
||||
include(object : SubjectLessSpec<Int>("",
|
||||
@@ -23,7 +22,7 @@ class DescriptiveWithBasedOnSubjectSpec : Spek({
|
||||
"withFailureHintBasedOnDefinedSubject" to addDescriptive { expect, builder ->
|
||||
builder.failing
|
||||
.withFailureHintBasedOnDefinedSubject(expect) {
|
||||
ExpectImpl.builder.explanatory.withExplanation("asdf").build()
|
||||
assertionBuilder.explanatory.withExplanation("asdf").build()
|
||||
}
|
||||
.withDescriptionAndRepresentation("what ever", 1)
|
||||
.build()
|
||||
@@ -32,9 +31,9 @@ class DescriptiveWithBasedOnSubjectSpec : Spek({
|
||||
builder.failing
|
||||
.withFailureHintBasedOnSubject(expect) {
|
||||
ifDefined {
|
||||
ExpectImpl.builder.explanatory.withExplanation("asdf").build()
|
||||
assertionBuilder.explanatory.withExplanation("asdf").build()
|
||||
} ifAbsent {
|
||||
ExpectImpl.builder.explanatory.withExplanation("asdf").build()
|
||||
assertionBuilder.explanatory.withExplanation("asdf").build()
|
||||
}
|
||||
}
|
||||
.showForAnyFailure
|
||||
@@ -43,7 +42,7 @@ class DescriptiveWithBasedOnSubjectSpec : Spek({
|
||||
},
|
||||
"showOnlyIf" to addDescriptive { expect, builder ->
|
||||
builder.failing
|
||||
.withFailureHint { ExpectImpl.builder.explanatory.withExplanation("any hint").build() }
|
||||
.withFailureHint { assertionBuilder.explanatory.withExplanation("any hint").build() }
|
||||
.showBasedOnSubjectOnlyIf(expect) {
|
||||
ifDefined {
|
||||
it < 3
|
||||
@@ -54,14 +53,14 @@ class DescriptiveWithBasedOnSubjectSpec : Spek({
|
||||
},
|
||||
"showOnlyIfSubjectDefined" to addDescriptive { expect, builder ->
|
||||
builder.failing
|
||||
.withFailureHint { ExpectImpl.builder.explanatory.withExplanation("any hint").build() }
|
||||
.withFailureHint { assertionBuilder.explanatory.withExplanation("any hint").build() }
|
||||
.showOnlyIfSubjectDefined(expect)
|
||||
.withDescriptionAndRepresentation("what ever", 1)
|
||||
.build()
|
||||
},
|
||||
"showBasedOnDefinedSubjectOnlyIf" to addDescriptive { expect, builder ->
|
||||
builder.failing
|
||||
.withFailureHint { ExpectImpl.builder.explanatory.withExplanation("any hint").build() }
|
||||
.withFailureHint { assertionBuilder.explanatory.withExplanation("any hint").build() }
|
||||
.showBasedOnDefinedSubjectOnlyIf(expect) { it < 3 }
|
||||
.withDescriptionAndRepresentation("what ever", 1)
|
||||
.build()
|
||||
|
||||
@@ -2,8 +2,8 @@ package ch.tutteli.atrium.core.robstoll.lib.reporting
|
||||
|
||||
import ch.tutteli.atrium.api.fluent.en_GB.toBe
|
||||
import ch.tutteli.atrium.api.verbs.internal.expect
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.root
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.Text
|
||||
import ch.tutteli.atrium.reporting.translating.Untranslatable
|
||||
import ch.tutteli.atrium.reporting.translating.UsingDefaultTranslator
|
||||
@@ -30,7 +30,7 @@ class TextNextLineAssertionPairFormatterSpec : AssertionFormatterSpecBase({
|
||||
describeFun(testee::formatGroupHeader.name) {
|
||||
it("puts the representation on the next line indented as the bullet point used for newParameterObject") {
|
||||
val newParameterObject = parameterObject.createChildWithNewPrefix(bulletPoint)
|
||||
val assertionGroup = ExpectImpl.builder.root
|
||||
val assertionGroup = assertionBuilder.root
|
||||
.withDescriptionAndRepresentation(name, subject)
|
||||
.withAssertions(listOf())
|
||||
.build()
|
||||
@@ -39,7 +39,7 @@ class TextNextLineAssertionPairFormatterSpec : AssertionFormatterSpecBase({
|
||||
}
|
||||
|
||||
it("does not append a new line if the subject is ${Text::class.simpleName}${Text.Companion::EMPTY.name}") {
|
||||
val assertionGroup = ExpectImpl.builder.root
|
||||
val assertionGroup = assertionBuilder.root
|
||||
.withDescriptionAndEmptyRepresentation(name)
|
||||
.withAssertions(listOf())
|
||||
.build()
|
||||
|
||||
@@ -2,11 +2,11 @@ package ch.tutteli.atrium.logic.impl
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.ExplanatoryAssertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.withFailureHintBasedOnDefinedSubject
|
||||
import ch.tutteli.atrium.core.polyfills.formatFloatingPointNumber
|
||||
import ch.tutteli.atrium.core.polyfills.fullName
|
||||
import ch.tutteli.atrium.creating.AssertionContainer
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.logic.FloatingPointAssertions
|
||||
import ch.tutteli.atrium.reporting.translating.TranslatableWithArgs
|
||||
import ch.tutteli.atrium.translations.DescriptionFloatingPointAssertion.*
|
||||
@@ -37,7 +37,7 @@ class DefaultFloatingPointAssertions : FloatingPointAssertions {
|
||||
): Assertion where T : Comparable<T>, T : Number {
|
||||
return toBeWithErrorTolerance(container, expected, tolerance, absDiff) { subject ->
|
||||
listOf(
|
||||
ExpectImpl.builder.explanatory
|
||||
assertionBuilder.explanatory
|
||||
.withExplanation(FAILURE_DUE_TO_FLOATING_POINT_NUMBER, subject::class.fullName)
|
||||
.build(),
|
||||
createToBeWithErrorToleranceExplained(subject, expected, absDiff, tolerance)
|
||||
@@ -53,7 +53,7 @@ internal fun <T> createToBeWithErrorToleranceExplained(
|
||||
expected: T,
|
||||
absDiff: (T) -> T,
|
||||
tolerance: T
|
||||
): ExplanatoryAssertion where T : Comparable<T>, T : Number = ExpectImpl.builder.explanatory
|
||||
): ExplanatoryAssertion where T : Comparable<T>, T : Number = assertionBuilder.explanatory
|
||||
.withExplanation(
|
||||
TO_BE_WITH_ERROR_TOLERANCE_EXPLAINED,
|
||||
formatFloatingPointNumber(subject),
|
||||
@@ -69,14 +69,14 @@ internal fun <T : Comparable<T>> toBeWithErrorTolerance(
|
||||
tolerance: T,
|
||||
absDiff: (T) -> T,
|
||||
explanatoryAssertionCreator: (T) -> List<Assertion>
|
||||
): Assertion = ExpectImpl.builder.descriptive
|
||||
): Assertion = assertionBuilder.descriptive
|
||||
.withTest(container) { absDiff(it) <= tolerance }
|
||||
.withFailureHintBasedOnDefinedSubject(container) { subject ->
|
||||
//TODO that's not nice in case we use it in an Iterable contains assertion, for instance contains...entry { toBeWithErrorTolerance(x, 0.01) }
|
||||
//we do not want to see the failure nor the exact check in the 'an entry which...' part
|
||||
//same problematic applies to feature assertions within an identification lambda
|
||||
// => yet explanatory assertion should always hold
|
||||
ExpectImpl.builder.explanatoryGroup
|
||||
assertionBuilder.explanatoryGroup
|
||||
.withDefaultType
|
||||
.withAssertions(explanatoryAssertionCreator(subject))
|
||||
.build()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package ch.tutteli.atrium.logic.impl
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.fixedClaimGroup
|
||||
import ch.tutteli.atrium.assertions.builders.invisibleGroup
|
||||
import ch.tutteli.atrium.core.Option
|
||||
@@ -8,7 +9,6 @@ import ch.tutteli.atrium.core.falseProvider
|
||||
import ch.tutteli.atrium.core.getOrElse
|
||||
import ch.tutteli.atrium.creating.AssertionContainer
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.domain.creating.changers.ExtractedFeaturePostStep
|
||||
import ch.tutteli.atrium.logic.*
|
||||
import ch.tutteli.atrium.logic.assertions.LazyThreadUnsafeAssertionGroup
|
||||
@@ -35,10 +35,10 @@ class DefaultIterableLikeAssertions : IterableLikeAssertions {
|
||||
|
||||
val mismatches = createMismatchAssertions(list, assertionCreatorOrNull)
|
||||
assertions.add(
|
||||
ExpectImpl.builder.explanatoryGroup
|
||||
assertionBuilder.explanatoryGroup
|
||||
.withWarningType
|
||||
.withAssertion(
|
||||
ExpectImpl.builder.list
|
||||
assertionBuilder.list
|
||||
.withDescriptionAndEmptyRepresentation(DescriptionIterableAssertion.WARNING_MISMATCHES)
|
||||
.withAssertions(mismatches)
|
||||
.build()
|
||||
@@ -46,10 +46,10 @@ class DefaultIterableLikeAssertions : IterableLikeAssertions {
|
||||
.build()
|
||||
)
|
||||
|
||||
ExpectImpl.builder.invisibleGroup
|
||||
assertionBuilder.invisibleGroup
|
||||
.withAssertions(
|
||||
hasElementAssertion,
|
||||
ExpectImpl.builder.fixedClaimGroup
|
||||
assertionBuilder.fixedClaimGroup
|
||||
.withListType
|
||||
.withClaim(mismatches.isEmpty())
|
||||
.withDescriptionAndEmptyRepresentation(DescriptionIterableAssertion.ALL)
|
||||
@@ -69,7 +69,7 @@ class DefaultIterableLikeAssertions : IterableLikeAssertions {
|
||||
.mapWithIndex()
|
||||
.filter { (_, element) -> !allCreatedAssertionsHold(element, assertionCreator) }
|
||||
.map { (index, element) ->
|
||||
ExpectImpl.builder.createDescriptive(
|
||||
assertionBuilder.createDescriptive(
|
||||
TranslatableWithArgs(DescriptionIterableAssertion.INDEX, index),
|
||||
element,
|
||||
falseProvider
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package ch.tutteli.atrium.logic.impl
|
||||
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.core.None
|
||||
import ch.tutteli.atrium.core.Option
|
||||
import ch.tutteli.atrium.core.Some
|
||||
import ch.tutteli.atrium.core.trueProvider
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.domain.builders.creating.collectors.collectAssertions
|
||||
import ch.tutteli.atrium.domain.creating.collectors.assertionCollector
|
||||
import ch.tutteli.atrium.reporting.Text
|
||||
@@ -15,10 +15,10 @@ import ch.tutteli.atrium.translations.DescriptionIterableAssertion
|
||||
|
||||
internal fun createHasElementAssertion(iterator: Iterator<*>): AssertionGroup {
|
||||
val hasElement = iterator.hasNext()
|
||||
return ExpectImpl.builder.feature
|
||||
return assertionBuilder.feature
|
||||
.withDescriptionAndRepresentation(DescriptionIterableAssertion.HAS_ELEMENT, Text(hasElement.toString()))
|
||||
.withAssertion(
|
||||
ExpectImpl.builder.createDescriptive(DescriptionBasic.IS, Text(true.toString())) { hasElement }
|
||||
assertionBuilder.createDescriptive(DescriptionBasic.IS, Text(true.toString())) { hasElement }
|
||||
)
|
||||
.build()
|
||||
}
|
||||
@@ -43,7 +43,7 @@ internal inline fun <E : Any> createExplanatoryAssertionGroup(
|
||||
noinline assertionCreatorOrNull: (Expect<E>.() -> Unit)?,
|
||||
firstOrNull: () -> Option<E>
|
||||
): AssertionGroup {
|
||||
return ExpectImpl.builder.explanatoryGroup
|
||||
return assertionBuilder.explanatoryGroup
|
||||
.withDefaultType
|
||||
.let {
|
||||
if (assertionCreatorOrNull != null) {
|
||||
@@ -52,7 +52,7 @@ internal inline fun <E : Any> createExplanatoryAssertionGroup(
|
||||
it.withAssertion(
|
||||
// it is for an explanatoryGroup where it does not matter if the assertion holds or not
|
||||
// thus it is OK to use trueProvider
|
||||
ExpectImpl.builder.createDescriptive(DescriptionBasic.IS, Text.NULL, trueProvider)
|
||||
assertionBuilder.createDescriptive(DescriptionBasic.IS, Text.NULL, trueProvider)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,8 +6,8 @@ import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.ExplanatoryAssertion
|
||||
import ch.tutteli.atrium.assertions.WarningAssertionGroupType
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.translating.TranslatableWithArgs
|
||||
import ch.tutteli.atrium.reporting.translating.Untranslatable
|
||||
import ch.tutteli.atrium.specs.fileSystemSupportsCreatingSymlinks
|
||||
@@ -35,7 +35,7 @@ object SymbolicLinkResolvingSpec : Spek({
|
||||
val ifSymlinksNotSupported =
|
||||
if (fileSystemSupportsCreatingSymlinks()) Skip.No else Skip.Yes("creating symbolic links is not supported on this file system")
|
||||
|
||||
val testAssertion = ExpectImpl.builder.createDescriptive(Untranslatable("testAssertion"), null) { true }
|
||||
val testAssertion = assertionBuilder.createDescriptive(Untranslatable("testAssertion"), null) { true }
|
||||
val resolvedPathConsumer by memoized(TEST) {
|
||||
mockk<(Path) -> Assertion> {
|
||||
every { this@mockk.invoke(any()) } returns testAssertion
|
||||
|
||||
@@ -27,7 +27,12 @@ object ExpectImpl {
|
||||
* In detail, its an `inline` property which returns [ch.tutteli.atrium.assertions.builders.assertionBuilder]
|
||||
* which in turn returns an implementation of [AssertionBuilder].
|
||||
*/
|
||||
inline val builder get() = assertionBuilder
|
||||
@Deprecated(
|
||||
"Use assertionBuilder directly, ExpectImpl will be removed with 1.0.0",
|
||||
ReplaceWith("ch.tutteli.atrium.assertions.builders.assertionBuilder")
|
||||
)
|
||||
inline val builder
|
||||
get() = assertionBuilder
|
||||
|
||||
/**
|
||||
* Returns [SubjectChangerBuilder] - helping you to change the subject of the assertion.
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package ch.tutteli.atrium.domain.builders.creating.changers.impl.subjectchanger
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.invisibleGroup
|
||||
import ch.tutteli.atrium.core.None
|
||||
import ch.tutteli.atrium.core.Option
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.domain.builders.creating.collectors.collectAssertions
|
||||
import ch.tutteli.atrium.domain.creating.changers.SubjectChanger
|
||||
|
||||
@@ -18,10 +18,10 @@ class DefaultFailureHandlerImpl<T, R> : SubjectChanger.FailureHandler<T, R> {
|
||||
): Assertion = maybeAssertionCreator.fold({
|
||||
descriptiveAssertion
|
||||
}) { assertionCreator ->
|
||||
ExpectImpl.builder.invisibleGroup
|
||||
assertionBuilder.invisibleGroup
|
||||
.withAssertions(
|
||||
descriptiveAssertion,
|
||||
ExpectImpl.builder.explanatoryGroup
|
||||
assertionBuilder.explanatoryGroup
|
||||
.withDefaultType
|
||||
.collectAssertions(None, assertionCreator)
|
||||
.build()
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
package ch.tutteli.atrium.domain.robstoll.lib.creating
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.creating.SubjectProvider
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
@@ -19,28 +20,28 @@ import kotlin.reflect.KClass
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T> _toBe(subjectProvider: SubjectProvider<T>, expected: T) =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, TO_BE, expected) { it == expected }
|
||||
assertionBuilder.createDescriptive(subjectProvider, TO_BE, expected) { it == expected }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T> _notToBe(subjectProvider: SubjectProvider<T>, expected: T) =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, NOT_TO_BE, expected) { it != expected }
|
||||
assertionBuilder.createDescriptive(subjectProvider, NOT_TO_BE, expected) { it != expected }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T> _isSame(subjectProvider: SubjectProvider<T>, expected: T) =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, IS_SAME, expected) { it === expected }
|
||||
assertionBuilder.createDescriptive(subjectProvider, IS_SAME, expected) { it === expected }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T> _isNotSame(subjectProvider: SubjectProvider<T>, expected: T) =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, IS_NOT_SAME, expected) { it !== expected }
|
||||
assertionBuilder.createDescriptive(subjectProvider, IS_NOT_SAME, expected) { it !== expected }
|
||||
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : Any?> _toBeNull(subjectProvider: SubjectProvider<T>) =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, TO_BE, Text.NULL) { it == null }
|
||||
assertionBuilder.createDescriptive(subjectProvider, TO_BE, Text.NULL) { it == null }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
package ch.tutteli.atrium.domain.robstoll.lib.creating.changers
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.fixedClaimGroup
|
||||
import ch.tutteli.atrium.core.*
|
||||
import ch.tutteli.atrium.core.ExperimentalNewExpectTypes
|
||||
import ch.tutteli.atrium.core.None
|
||||
import ch.tutteli.atrium.core.Option
|
||||
import ch.tutteli.atrium.core.Some
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.creating.FeatureExpect
|
||||
import ch.tutteli.atrium.creating.FeatureExpectOptions
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.domain.builders.creating.collectors.collectAssertions
|
||||
import ch.tutteli.atrium.domain.creating.collectors.assertionCollector
|
||||
import ch.tutteli.atrium.reporting.translating.Translatable
|
||||
@@ -26,7 +29,7 @@ fun <T, R> _extractFeature(
|
||||
.fold(
|
||||
{
|
||||
originalAssertionContainer.addAssertion(
|
||||
ExpectImpl.builder.fixedClaimGroup
|
||||
assertionBuilder.fixedClaimGroup
|
||||
.withFeatureType
|
||||
.failing
|
||||
.withDescriptionAndRepresentation(description, representationForFailure)
|
||||
@@ -34,7 +37,7 @@ fun <T, R> _extractFeature(
|
||||
listOf<Assertion>()
|
||||
}) { assertionCreator ->
|
||||
listOf(
|
||||
ExpectImpl.builder.explanatoryGroup.withDefaultType
|
||||
assertionBuilder.explanatoryGroup.withDefaultType
|
||||
.collectAssertions(None, assertionCreator)
|
||||
.build()
|
||||
)
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
package ch.tutteli.atrium.domain.robstoll.lib.creating
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.creating.SubjectProvider
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.domain.creating.charsequence.contains.CharSequenceContains
|
||||
import ch.tutteli.atrium.domain.creating.charsequence.contains.searchbehaviours.NoOpSearchBehaviour
|
||||
import ch.tutteli.atrium.domain.creating.charsequence.contains.searchbehaviours.NotSearchBehaviour
|
||||
@@ -26,44 +26,44 @@ fun <T : CharSequence> _containsNotBuilder(subjectProvider: SubjectProvider<T>):
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun _startsWith(subjectProvider: SubjectProvider<CharSequence>, expected: CharSequence): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, STARTS_WITH, expected) { it.startsWith(expected) }
|
||||
assertionBuilder.createDescriptive(subjectProvider, STARTS_WITH, expected) { it.startsWith(expected) }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun _startsNotWith(subjectProvider: SubjectProvider<CharSequence>, expected: CharSequence): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, STARTS_NOT_WITH, expected) { !it.startsWith(expected) }
|
||||
assertionBuilder.createDescriptive(subjectProvider, STARTS_NOT_WITH, expected) { !it.startsWith(expected) }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun _endsWith(subjectProvider: SubjectProvider<CharSequence>, expected: CharSequence): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, ENDS_WITH, expected) { it.endsWith(expected) }
|
||||
assertionBuilder.createDescriptive(subjectProvider, ENDS_WITH, expected) { it.endsWith(expected) }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun _endsNotWith(subjectProvider: SubjectProvider<CharSequence>, expected: CharSequence): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, ENDS_NOT_WITH, expected) { !it.endsWith(expected) }
|
||||
assertionBuilder.createDescriptive(subjectProvider, ENDS_NOT_WITH, expected) { !it.endsWith(expected) }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun _isEmpty(subjectProvider: SubjectProvider<CharSequence>): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, IS, EMPTY) { it.isEmpty() }
|
||||
assertionBuilder.createDescriptive(subjectProvider, IS, EMPTY) { it.isEmpty() }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun _isNotEmpty(subjectProvider: SubjectProvider<CharSequence>): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, IS_NOT, EMPTY) { it.isNotEmpty() }
|
||||
assertionBuilder.createDescriptive(subjectProvider, IS_NOT, EMPTY) { it.isNotEmpty() }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun _isNotBlank(subjectProvider: SubjectProvider<CharSequence>): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, IS_NOT, BLANK) { it.isNotBlank() }
|
||||
assertionBuilder.createDescriptive(subjectProvider, IS_NOT, BLANK) { it.isNotBlank() }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : CharSequence> _matches(expect: Expect<T>, expected: Regex): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, MATCHES, expected) { it.matches(expected) }
|
||||
assertionBuilder.createDescriptive(expect, MATCHES, expected) { it.matches(expected) }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : CharSequence> _mismatches(expect: Expect<T>, expected: Regex): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, MISMATCHES, expected) { !it.matches(expected) }
|
||||
assertionBuilder.createDescriptive(expect, MISMATCHES, expected) { !it.matches(expected) }
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package ch.tutteli.atrium.domain.robstoll.lib.creating.charsequence.contains.checkers
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.domain.creating.charsequence.contains.CharSequenceContains
|
||||
import ch.tutteli.atrium.translations.DescriptionBasic
|
||||
|
||||
@@ -11,5 +11,5 @@ import ch.tutteli.atrium.translations.DescriptionBasic
|
||||
class NotChecker : CharSequenceContains.Checker {
|
||||
|
||||
override fun createAssertion(foundNumberOfTimes: Int): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(DescriptionBasic.IS, 0) { foundNumberOfTimes == 0 }
|
||||
assertionBuilder.createDescriptive(DescriptionBasic.IS, 0) { foundNumberOfTimes == 0 }
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
package ch.tutteli.atrium.domain.robstoll.lib.creating
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.creating.SubjectProvider
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
@@ -15,12 +16,12 @@ import ch.tutteli.atrium.translations.DescriptionCollectionAssertion.EMPTY
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun _isEmpty(subjectProvider: SubjectProvider<Collection<*>>): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, IS, EMPTY) { it.isEmpty() }
|
||||
assertionBuilder.createDescriptive(subjectProvider, IS, EMPTY) { it.isEmpty() }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun _isNotEmpty(subjectProvider: SubjectProvider<Collection<*>>): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, IS_NOT, EMPTY) { it.isNotEmpty() }
|
||||
assertionBuilder.createDescriptive(subjectProvider, IS_NOT, EMPTY) { it.isNotEmpty() }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
|
||||
@@ -2,13 +2,12 @@ package ch.tutteli.atrium.domain.robstoll.lib.creating.collectors
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.invisibleGroup
|
||||
import ch.tutteli.atrium.assertions.builders.withExplanatoryAssertion
|
||||
import ch.tutteli.atrium.core.Option
|
||||
import ch.tutteli.atrium.core.coreFactory
|
||||
import ch.tutteli.atrium.creating.CollectingExpect
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.Text
|
||||
import ch.tutteli.atrium.translations.DescriptionBasic
|
||||
import ch.tutteli.atrium.translations.ErrorMessages
|
||||
@@ -21,7 +20,7 @@ fun <T> _collect(
|
||||
.addAssertionsCreatedBy(assertionCreator)
|
||||
.getAssertions()
|
||||
return if (collectedAssertions.size > 1) {
|
||||
ExpectImpl.builder.invisibleGroup.withAssertions(collectedAssertions).build()
|
||||
assertionBuilder.invisibleGroup.withAssertions(collectedAssertions).build()
|
||||
} else {
|
||||
collectedAssertions[0]
|
||||
}
|
||||
@@ -47,7 +46,7 @@ fun <T> _collectForComposition(
|
||||
} catch (@Suppress("DEPRECATION") e: ch.tutteli.atrium.creating.PlantHasNoSubjectException) {
|
||||
@Suppress("DEPRECATION")
|
||||
listOf(
|
||||
ExpectImpl.builder.explanatoryGroup
|
||||
assertionBuilder.explanatoryGroup
|
||||
.withWarningType
|
||||
.withExplanatoryAssertion(ErrorMessages.SUBJECT_ACCESSED_TOO_EARLY)
|
||||
.build()
|
||||
@@ -65,7 +64,7 @@ private fun <T> collectAssertions(
|
||||
.addAssertionsCreatedBy(assertionCreatorOrNull)
|
||||
.getAssertions()
|
||||
} else {
|
||||
listOf(ExpectImpl.builder.createDescriptive(DescriptionBasic.IS, Text.NULL) {
|
||||
listOf(assertionBuilder.createDescriptive(DescriptionBasic.IS, Text.NULL) {
|
||||
maybeSubject.isDefined()
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
package ch.tutteli.atrium.domain.robstoll.lib.creating
|
||||
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.creating.SubjectProvider
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.translations.DescriptionComparableAssertion.*
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T1 : Comparable<T2>, T2 : Any?> _isLessThan(subjectProvider: SubjectProvider<T1>, expected: T2) =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, IS_LESS_THAN, expected) { it < expected }
|
||||
assertionBuilder.createDescriptive(subjectProvider, IS_LESS_THAN, expected) { it < expected }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T1 : Comparable<T2>, T2 : Any?> _isLessThanOrEqual(subjectProvider: SubjectProvider<T1>, expected: T2) =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, IS_LESS_OR_EQUALS, expected) { it <= expected }
|
||||
assertionBuilder.createDescriptive(subjectProvider, IS_LESS_OR_EQUALS, expected) { it <= expected }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T1 : Comparable<T2>, T2 : Any?> _isGreaterThan(subjectProvider: SubjectProvider<T1>, expected: T2) =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, IS_GREATER_THAN, expected) { it > expected }
|
||||
assertionBuilder.createDescriptive(subjectProvider, IS_GREATER_THAN, expected) { it > expected }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T1 : Comparable<T2>, T2 : Any?> _isGreaterThanOrEqual(subjectProvider: SubjectProvider<T1>, expected: T2) =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, IS_GREATER_OR_EQUALS, expected) { it >= expected }
|
||||
assertionBuilder.createDescriptive(subjectProvider, IS_GREATER_OR_EQUALS, expected) { it >= expected }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T1 : Comparable<T2>, T2 : Any?> _isEqualComparingTo(expect: Expect<T1>, expected: T2) =
|
||||
ExpectImpl.builder.createDescriptive(expect, IS_EQUAL, expected) { it.compareTo(expected) == 0 }
|
||||
assertionBuilder.createDescriptive(expect, IS_EQUAL, expected) { it.compareTo(expected) == 0 }
|
||||
|
||||
@@ -7,11 +7,11 @@ package ch.tutteli.atrium.domain.robstoll.lib.creating
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.ExplanatoryAssertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.withFailureHintBasedOnDefinedSubject
|
||||
import ch.tutteli.atrium.core.polyfills.formatFloatingPointNumber
|
||||
import ch.tutteli.atrium.core.polyfills.fullName
|
||||
import ch.tutteli.atrium.creating.SubjectProvider
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.translating.TranslatableWithArgs
|
||||
import ch.tutteli.atrium.translations.DescriptionFloatingPointAssertion.*
|
||||
import kotlin.jvm.JvmMultifileClass
|
||||
@@ -36,7 +36,7 @@ private fun <T> toBeWithErrorToleranceOfFloatOrDouble(
|
||||
): Assertion where T : Comparable<T>, T : Number {
|
||||
return toBeWithErrorTolerance(subjectProvider, expected, tolerance, absDiff) { subject ->
|
||||
listOf(
|
||||
ExpectImpl.builder.explanatory
|
||||
assertionBuilder.explanatory
|
||||
.withExplanation(FAILURE_DUE_TO_FLOATING_POINT_NUMBER, subject::class.fullName)
|
||||
.build(),
|
||||
createToBeWithErrorToleranceExplained(subject, expected, absDiff, tolerance)
|
||||
@@ -50,7 +50,7 @@ internal fun <T> createToBeWithErrorToleranceExplained(
|
||||
expected: T,
|
||||
absDiff: (T) -> T,
|
||||
tolerance: T
|
||||
): ExplanatoryAssertion where T : Comparable<T>, T : Number = ExpectImpl.builder.explanatory
|
||||
): ExplanatoryAssertion where T : Comparable<T>, T : Number = assertionBuilder.explanatory
|
||||
.withExplanation(
|
||||
TO_BE_WITH_ERROR_TOLERANCE_EXPLAINED,
|
||||
formatFloatingPointNumber(subject),
|
||||
@@ -66,14 +66,14 @@ internal fun <T : Comparable<T>> toBeWithErrorTolerance(
|
||||
tolerance: T,
|
||||
absDiff: (T) -> T,
|
||||
explanatoryAssertionCreator: (T) -> List<Assertion>
|
||||
): Assertion = ExpectImpl.builder.descriptive
|
||||
): Assertion = assertionBuilder.descriptive
|
||||
.withTest(subjectProvider) { absDiff(it) <= tolerance }
|
||||
.withFailureHintBasedOnDefinedSubject(subjectProvider) { subject ->
|
||||
//TODO that's not nice in case we use it in an Iterable contains assertion, for instance contains...entry { toBeWithErrorTolerance(x, 0.01) }
|
||||
//we do not want to see the failure nor the exact check in the 'an entry which...' part
|
||||
//same problematic applies to feature assertions within an identification lambda
|
||||
// => yet explanatory assertion should always hold
|
||||
ExpectImpl.builder.explanatoryGroup
|
||||
assertionBuilder.explanatoryGroup
|
||||
.withDefaultType
|
||||
.withAssertions(explanatoryAssertionCreator(subject))
|
||||
.build()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package ch.tutteli.atrium.domain.robstoll.lib.creating.iterable.contains.checkers
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.domain.creating.iterable.contains.IterableContains
|
||||
import ch.tutteli.atrium.translations.DescriptionBasic
|
||||
|
||||
@@ -11,5 +11,5 @@ import ch.tutteli.atrium.translations.DescriptionBasic
|
||||
class NotChecker : IterableContains.Checker {
|
||||
|
||||
override fun createAssertion(foundNumberOfTimes: Int): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(DescriptionBasic.IS, 0) { foundNumberOfTimes == 0 }
|
||||
assertionBuilder.createDescriptive(DescriptionBasic.IS, 0) { foundNumberOfTimes == 0 }
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import ch.tutteli.atrium.api.fluent.en_GB.feature
|
||||
import ch.tutteli.atrium.api.fluent.en_GB.toBe
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.fixedClaimGroup
|
||||
import ch.tutteli.atrium.core.*
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
@@ -32,7 +33,7 @@ internal inline fun <E : Any> createExplanatoryAssertionGroup(
|
||||
noinline assertionCreatorOrNull: (Expect<E>.() -> Unit)?,
|
||||
firstOrNull: () -> Option<E>
|
||||
): AssertionGroup {
|
||||
return ExpectImpl.builder.explanatoryGroup
|
||||
return assertionBuilder.explanatoryGroup
|
||||
.withDefaultType
|
||||
.let {
|
||||
if (assertionCreatorOrNull != null) {
|
||||
@@ -41,7 +42,7 @@ internal inline fun <E : Any> createExplanatoryAssertionGroup(
|
||||
it.withAssertion(
|
||||
// it is for an explanatoryGroup where it does not matter if the assertion holds or not
|
||||
// thus it is OK to use trueProvider
|
||||
ExpectImpl.builder.createDescriptive(DescriptionBasic.IS, Text.NULL, trueProvider)
|
||||
assertionBuilder.createDescriptive(DescriptionBasic.IS, Text.NULL, trueProvider)
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -49,7 +50,7 @@ internal inline fun <E : Any> createExplanatoryAssertionGroup(
|
||||
}
|
||||
|
||||
internal fun createEntryAssertion(explanatoryGroup: AssertionGroup, found: Boolean): AssertionGroup {
|
||||
return ExpectImpl.builder.fixedClaimGroup
|
||||
return assertionBuilder.fixedClaimGroup
|
||||
.withListType
|
||||
.withClaim(found)
|
||||
.withDescriptionAndEmptyRepresentation(AN_ENTRY_WHICH)
|
||||
@@ -81,7 +82,7 @@ internal fun <E, SC> createEntryAssertionTemplate(
|
||||
false to SIZE_EXCEEDED
|
||||
})
|
||||
val description = TranslatableWithArgs(entryWithIndex, index)
|
||||
ExpectImpl.builder.feature
|
||||
assertionBuilder.feature
|
||||
.withDescriptionAndRepresentation(description, entryRepresentation)
|
||||
.withAssertion(createEntryFeatureAssertion { found })
|
||||
.build()
|
||||
@@ -100,16 +101,16 @@ internal fun <E> createSizeFeatureAssertionForInOrderOnly(
|
||||
addAssertion(LazyThreadUnsafeAssertionGroup {
|
||||
val additionalEntries = itr.mapRemainingWithCounter { counter, it ->
|
||||
val description = TranslatableWithArgs(ENTRY_WITH_INDEX, expectedSize + counter)
|
||||
ExpectImpl.builder.descriptive
|
||||
assertionBuilder.descriptive
|
||||
.holding
|
||||
.withDescriptionAndRepresentation(description, it)
|
||||
.build()
|
||||
}
|
||||
|
||||
ExpectImpl.builder.explanatoryGroup
|
||||
assertionBuilder.explanatoryGroup
|
||||
.withWarningType
|
||||
.withAssertion(
|
||||
ExpectImpl.builder.list
|
||||
assertionBuilder.list
|
||||
.withDescriptionAndEmptyRepresentation(WARNING_ADDITIONAL_ENTRIES)
|
||||
.withAssertions(additionalEntries)
|
||||
.build()
|
||||
@@ -123,10 +124,10 @@ internal fun <E> createSizeFeatureAssertionForInOrderOnly(
|
||||
|
||||
internal fun createHasElementAssertion(iterator: Iterator<*>): AssertionGroup {
|
||||
val hasElement = iterator.hasNext()
|
||||
return ExpectImpl.builder.feature
|
||||
return assertionBuilder.feature
|
||||
.withDescriptionAndRepresentation(HAS_ELEMENT, Text(hasElement.toString()))
|
||||
.withAssertion(
|
||||
ExpectImpl.builder.createDescriptive(DescriptionBasic.IS, Text(true.toString())) { hasElement }
|
||||
assertionBuilder.createDescriptive(DescriptionBasic.IS, Text(true.toString())) { hasElement }
|
||||
)
|
||||
.build()
|
||||
}
|
||||
|
||||
@@ -4,14 +4,13 @@ import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.DefaultListAssertionGroupType
|
||||
import ch.tutteli.atrium.assertions.DefaultSummaryAssertionGroupType
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.core.None
|
||||
import ch.tutteli.atrium.core.Some
|
||||
import ch.tutteli.atrium.core.coreFactory
|
||||
import ch.tutteli.atrium.core.getOrElse
|
||||
import ch.tutteli.atrium.creating.CollectingExpect
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.creating.SubjectProvider
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.domain.creating.iterable.contains.IterableContains
|
||||
import ch.tutteli.atrium.domain.creating.iterable.contains.searchbehaviours.InAnyOrderSearchBehaviour
|
||||
import ch.tutteli.atrium.domain.creating.iterable.contains.searchbehaviours.NotSearchBehaviour
|
||||
@@ -72,7 +71,7 @@ class InAnyOrderEntriesAssertionCreator<E : Any, in T : Iterable<E?>>(
|
||||
DefaultListAssertionGroupType
|
||||
}
|
||||
|
||||
return ExpectImpl.builder.customType(groupType)
|
||||
return assertionBuilder.customType(groupType)
|
||||
.withDescriptionAndEmptyRepresentation(AN_ENTRY_WHICH)
|
||||
.withAssertions(assertions)
|
||||
.build()
|
||||
|
||||
@@ -5,9 +5,9 @@ package ch.tutteli.atrium.domain.robstoll.lib.creating.iterable.contains.creator
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.invisibleGroup
|
||||
import ch.tutteli.atrium.creating.SubjectProvider
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.domain.creating.iterable.contains.IterableContains
|
||||
import ch.tutteli.atrium.domain.creating.iterable.contains.searchbehaviours.InAnyOrderOnlySearchBehaviour
|
||||
import ch.tutteli.atrium.domain.robstoll.lib.assertions.LazyThreadUnsafeAssertionGroup
|
||||
@@ -54,14 +54,14 @@ abstract class InAnyOrderOnlyAssertionCreator<E, in T : Iterable<E?>, in SC>(
|
||||
})
|
||||
}
|
||||
assertions.add(
|
||||
ExpectImpl.builder.feature
|
||||
assertionBuilder.feature
|
||||
.withDescriptionAndRepresentation(Untranslatable("size"), Text(actualSize.toString()))
|
||||
.withAssertions(featureAssertions)
|
||||
.build()
|
||||
)
|
||||
|
||||
val description = searchBehaviour.decorateDescription(CONTAINS)
|
||||
val summary = ExpectImpl.builder.summary
|
||||
val summary = assertionBuilder.summary
|
||||
.withDescription(description)
|
||||
.withAssertions(assertions)
|
||||
.build()
|
||||
@@ -71,7 +71,7 @@ abstract class InAnyOrderOnlyAssertionCreator<E, in T : Iterable<E?>, in SC>(
|
||||
mismatches -> WARNING_MISMATCHES
|
||||
else -> WARNING_MISMATCHES_ADDITIONAL_ENTRIES
|
||||
}
|
||||
ExpectImpl.builder.invisibleGroup
|
||||
assertionBuilder.invisibleGroup
|
||||
.withAssertions(
|
||||
summary,
|
||||
createExplanatoryGroupForMismatchesEtc(list, warningDescription)
|
||||
@@ -103,7 +103,8 @@ abstract class InAnyOrderOnlyAssertionCreator<E, in T : Iterable<E?>, in SC>(
|
||||
): Pair<Boolean, Assertion>
|
||||
|
||||
private fun createSizeFeatureAssertion(allSearchCriteria: List<SC>, actualSize: Int): MutableList<Assertion> =
|
||||
mutableListOf(ExpectImpl.builder.descriptive
|
||||
mutableListOf(
|
||||
assertionBuilder.descriptive
|
||||
.withTest { actualSize == allSearchCriteria.size }
|
||||
.withDescriptionAndRepresentation(TO_BE, Text(allSearchCriteria.size.toString()))
|
||||
.build()
|
||||
@@ -113,12 +114,12 @@ abstract class InAnyOrderOnlyAssertionCreator<E, in T : Iterable<E?>, in SC>(
|
||||
list: MutableList<E?>,
|
||||
warning: DescriptionIterableAssertion
|
||||
): AssertionGroup {
|
||||
val assertions = list.map { ExpectImpl.builder.explanatory.withExplanation(it).build() }
|
||||
val additionalEntries = ExpectImpl.builder.list
|
||||
val assertions = list.map { assertionBuilder.explanatory.withExplanation(it).build() }
|
||||
val additionalEntries = assertionBuilder.list
|
||||
.withDescriptionAndEmptyRepresentation(warning)
|
||||
.withAssertions(assertions)
|
||||
.build()
|
||||
return ExpectImpl.builder.explanatoryGroup
|
||||
return assertionBuilder.explanatoryGroup
|
||||
.withWarningType
|
||||
.withAssertion(additionalEntries)
|
||||
.build()
|
||||
|
||||
@@ -2,7 +2,7 @@ package ch.tutteli.atrium.domain.robstoll.lib.creating.iterable.contains.creator
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.domain.creating.iterable.contains.searchbehaviours.InAnyOrderOnlySearchBehaviour
|
||||
import ch.tutteli.atrium.reporting.translating.Translatable
|
||||
import ch.tutteli.atrium.translations.DescriptionIterableAssertion.AN_ENTRY_WHICH_IS
|
||||
@@ -28,6 +28,6 @@ class InAnyOrderOnlyValuesAssertionCreator<E, in T : Iterable<E?>>(
|
||||
list: MutableList<E?>
|
||||
): Pair<Boolean, Assertion> {
|
||||
val found: Boolean = list.remove(searchCriterion)
|
||||
return found to ExpectImpl.builder.createDescriptive(AN_ENTRY_WHICH_IS, searchCriterion) { found }
|
||||
return found to assertionBuilder.createDescriptive(AN_ENTRY_WHICH_IS, searchCriterion) { found }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package ch.tutteli.atrium.domain.robstoll.lib.creating.iterable.contains.creators
|
||||
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.core.Some
|
||||
import ch.tutteli.atrium.core.getOrElse
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
@@ -34,7 +35,7 @@ abstract class InOrderOnlyBaseAssertionCreator<E, in T : Iterable<E>, SC>(
|
||||
addAssertion(createSizeFeatureAssertionForInOrderOnly(index, subject, remainingList.iterator()))
|
||||
}
|
||||
val description = searchBehaviour.decorateDescription(DescriptionIterableAssertion.CONTAINS)
|
||||
ExpectImpl.builder.summary
|
||||
assertionBuilder.summary
|
||||
.withDescription(description)
|
||||
.withAssertion(assertion)
|
||||
.build()
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package ch.tutteli.atrium.domain.robstoll.lib.creating.iterable.contains.creators
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.core.Option
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.translations.DescriptionAnyAssertion.TO_BE
|
||||
|
||||
class InOrderOnlyValueMatcher<E> : InOrderOnlyMatcher<E, E> {
|
||||
@@ -13,6 +13,6 @@ class InOrderOnlyValueMatcher<E> : InOrderOnlyMatcher<E, E> {
|
||||
maybeSubject: Option<List<E>>,
|
||||
searchCriterion: E
|
||||
): (() -> Boolean) -> Assertion = { found ->
|
||||
ExpectImpl.builder.createDescriptive(TO_BE, searchCriterion, found)
|
||||
assertionBuilder.createDescriptive(TO_BE, searchCriterion, found)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ package ch.tutteli.atrium.domain.robstoll.lib.creating.iterable.contains
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.core.coreFactory
|
||||
import ch.tutteli.atrium.creating.AssertionPlant
|
||||
import ch.tutteli.atrium.creating.MaybeSubject
|
||||
@@ -101,7 +102,7 @@ internal fun <E, SC> createEntryAssertionTemplate(
|
||||
Pair(false, DescriptionIterableAssertion.SIZE_EXCEEDED)
|
||||
})
|
||||
val description = TranslatableWithArgs(entryWithIndex, index)
|
||||
ExpectImpl.builder.feature
|
||||
assertionBuilder.feature
|
||||
.withDescriptionAndRepresentation(description, entryRepresentation)
|
||||
.withAssertion(createEntryFeatureAssertion { found })
|
||||
.build()
|
||||
@@ -111,7 +112,7 @@ internal fun <E, SC> createEntryAssertionTemplate(
|
||||
@Suppress("DeprecatedCallableAddReplaceWith", "DEPRECATION")
|
||||
@Deprecated("Will be removed with 1.0.0")
|
||||
internal fun createEntryAssertion(explanatoryAssertions: List<Assertion>, found: Boolean): AssertionGroup {
|
||||
val explanatoryGroup = ExpectImpl.builder.explanatoryGroup
|
||||
val explanatoryGroup = assertionBuilder.explanatoryGroup
|
||||
.withDefaultType
|
||||
.withAssertions(explanatoryAssertions)
|
||||
.build()
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
package ch.tutteli.atrium.domain.robstoll.lib.creating
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.fixedClaimGroup
|
||||
import ch.tutteli.atrium.assertions.builders.invisibleGroup
|
||||
import ch.tutteli.atrium.core.Option
|
||||
@@ -49,10 +50,10 @@ fun <E : Any, T : Iterable<E?>> _iterableAll(
|
||||
|
||||
val mismatches = createMismatchAssertions(list, assertionCreatorOrNull)
|
||||
assertions.add(
|
||||
ExpectImpl.builder.explanatoryGroup
|
||||
assertionBuilder.explanatoryGroup
|
||||
.withWarningType
|
||||
.withAssertion(
|
||||
ExpectImpl.builder.list
|
||||
assertionBuilder.list
|
||||
.withDescriptionAndEmptyRepresentation(WARNING_MISMATCHES)
|
||||
.withAssertions(mismatches)
|
||||
.build()
|
||||
@@ -60,10 +61,10 @@ fun <E : Any, T : Iterable<E?>> _iterableAll(
|
||||
.build()
|
||||
)
|
||||
|
||||
ExpectImpl.builder.invisibleGroup
|
||||
assertionBuilder.invisibleGroup
|
||||
.withAssertions(
|
||||
hasElementAssertion,
|
||||
ExpectImpl.builder.fixedClaimGroup
|
||||
assertionBuilder.fixedClaimGroup
|
||||
.withListType
|
||||
.withClaim(mismatches.isEmpty())
|
||||
.withDescriptionAndEmptyRepresentation(ALL)
|
||||
@@ -83,7 +84,7 @@ private fun <E : Any> createMismatchAssertions(
|
||||
.mapWithIndex()
|
||||
.filter { (_, element) -> !allCreatedAssertionsHold(element, assertionCreator) }
|
||||
.map { (index, element) ->
|
||||
ExpectImpl.builder.createDescriptive(TranslatableWithArgs(INDEX, index), element, falseProvider)
|
||||
assertionBuilder.createDescriptive(TranslatableWithArgs(INDEX, index), element, falseProvider)
|
||||
}
|
||||
.toList()
|
||||
}
|
||||
@@ -91,14 +92,14 @@ private fun <E : Any> createMismatchAssertions(
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <E, T : Iterable<E>> _hasNext(expect: Expect<T>): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, DescriptionBasic.HAS, NEXT_ELEMENT) {
|
||||
assertionBuilder.createDescriptive(expect, DescriptionBasic.HAS, NEXT_ELEMENT) {
|
||||
it.iterator().hasNext()
|
||||
}
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <E, T : Iterable<E>> _hasNotNext(expect: Expect<T>): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, DescriptionBasic.HAS_NOT, NEXT_ELEMENT) {
|
||||
assertionBuilder.createDescriptive(expect, DescriptionBasic.HAS_NOT, NEXT_ELEMENT) {
|
||||
!it.iterator().hasNext()
|
||||
}
|
||||
|
||||
|
||||
@@ -3,18 +3,18 @@
|
||||
package ch.tutteli.atrium.domain.robstoll.lib.creating
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.translations.DescriptionBasic
|
||||
import ch.tutteli.atrium.translations.DescriptionIterableAssertion.NEXT_ELEMENT
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <E, T : Iterator<E>> _hasNext(expect: Expect<T>): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, DescriptionBasic.HAS, NEXT_ELEMENT) { it.hasNext() }
|
||||
assertionBuilder.createDescriptive(expect, DescriptionBasic.HAS, NEXT_ELEMENT) { it.hasNext() }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <E, T : Iterator<E>> _hasNotNext(expect: Expect<T>): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, DescriptionBasic.HAS_NOT, NEXT_ELEMENT) { !it.hasNext() }
|
||||
assertionBuilder.createDescriptive(expect, DescriptionBasic.HAS_NOT, NEXT_ELEMENT) { !it.hasNext() }
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ package ch.tutteli.atrium.domain.robstoll.lib.creating
|
||||
|
||||
import ch.tutteli.atrium.api.fluent.en_GB.toBe
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.core.Option
|
||||
import ch.tutteli.atrium.core.coreFactory
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
@@ -64,7 +65,7 @@ fun <K, V, T : Map<out K, V>> _containsKeyWithValueAssertion(
|
||||
.addToInitial(assertionCreator)
|
||||
}
|
||||
}
|
||||
return ExpectImpl.builder.list
|
||||
return assertionBuilder.list
|
||||
.withDescriptionAndEmptyRepresentation(CONTAINS_IN_ANY_ORDER)
|
||||
.withAssertion(assertion)
|
||||
.build()
|
||||
@@ -73,23 +74,23 @@ fun <K, V, T : Map<out K, V>> _containsKeyWithValueAssertion(
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <K> _containsKey(subjectProvider: SubjectProvider<Map<out K, *>>, key: K): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, CONTAINS_KEY, key) { it.containsKey(key) }
|
||||
assertionBuilder.createDescriptive(subjectProvider, CONTAINS_KEY, key) { it.containsKey(key) }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <K> _containsNotKey(subjectProvider: SubjectProvider<Map<out K, *>>, key: K): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, CONTAINS_NOT_KEY, key) { it.containsKey(key).not() }
|
||||
assertionBuilder.createDescriptive(subjectProvider, CONTAINS_NOT_KEY, key) { it.containsKey(key).not() }
|
||||
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun _isEmpty(subjectProvider: SubjectProvider<Map<*, *>>): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, IS, EMPTY) { it.isEmpty() }
|
||||
assertionBuilder.createDescriptive(subjectProvider, IS, EMPTY) { it.isEmpty() }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun _isNotEmpty(subjectProvider: SubjectProvider<Map<*, *>>): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, IS_NOT, EMPTY) { it.isNotEmpty() }
|
||||
assertionBuilder.createDescriptive(subjectProvider, IS_NOT, EMPTY) { it.isNotEmpty() }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
|
||||
@@ -5,13 +5,13 @@ package ch.tutteli.atrium.domain.robstoll.lib.creating.throwable.thrown.creators
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.ExplanatoryAssertionGroupType
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.invisibleGroup
|
||||
import ch.tutteli.atrium.core.None
|
||||
import ch.tutteli.atrium.core.Option
|
||||
import ch.tutteli.atrium.core.polyfills.fullName
|
||||
import ch.tutteli.atrium.core.polyfills.stackBacktrace
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.domain.builders.creating.collectors.collectAssertions
|
||||
import ch.tutteli.atrium.domain.creating.changers.SubjectChanger
|
||||
import ch.tutteli.atrium.reporting.Text
|
||||
@@ -34,7 +34,7 @@ class ThrowableThrownFailureHandler<T : Throwable?, R>(
|
||||
val assertions = mutableListOf(descriptiveAssertion)
|
||||
maybeAssertionCreator.fold({ /* nothing to do */ }) { assertionCreator ->
|
||||
assertions.add(
|
||||
ExpectImpl.builder.explanatoryGroup
|
||||
assertionBuilder.explanatoryGroup
|
||||
.withDefaultType
|
||||
.collectAssertions(None, assertionCreator)
|
||||
.build()
|
||||
@@ -46,7 +46,7 @@ class ThrowableThrownFailureHandler<T : Throwable?, R>(
|
||||
if (it != null) assertions.add(propertiesOfThrowable(it, maxStackTrace))
|
||||
}
|
||||
)
|
||||
return ExpectImpl.builder.invisibleGroup
|
||||
return assertionBuilder.invisibleGroup
|
||||
.withAssertions(assertions.toList())
|
||||
.build()
|
||||
}
|
||||
@@ -62,7 +62,7 @@ class ThrowableThrownFailureHandler<T : Throwable?, R>(
|
||||
maxStackTrace: Int,
|
||||
explanation: Assertion = createExplanation(throwable)
|
||||
): AssertionGroup {
|
||||
return ExpectImpl.builder.explanatoryGroup
|
||||
return assertionBuilder.explanatoryGroup
|
||||
.withDefaultType
|
||||
.withAssertions(
|
||||
explanation,
|
||||
@@ -72,7 +72,7 @@ class ThrowableThrownFailureHandler<T : Throwable?, R>(
|
||||
}
|
||||
|
||||
private fun createExplanation(throwable: Throwable) =
|
||||
ExpectImpl.builder.explanatory
|
||||
assertionBuilder.explanatory
|
||||
.withExplanation(
|
||||
DescriptionThrowableAssertion.OCCURRED_EXCEPTION_PROPERTIES,
|
||||
throwable::class.simpleName ?: throwable::class.fullName
|
||||
@@ -95,14 +95,14 @@ class ThrowableThrownFailureHandler<T : Throwable?, R>(
|
||||
assertions.addAll(createAdditionalHints(throwable, maxStackTrace))
|
||||
createCauseHint(throwable, maxStackTrace)?.let { assertions.add(it) }
|
||||
|
||||
return ExpectImpl.builder.explanatoryGroup
|
||||
return assertionBuilder.explanatoryGroup
|
||||
.withDefaultType
|
||||
.withAssertions(assertions.toList())
|
||||
.build()
|
||||
}
|
||||
|
||||
private fun createMessageHint(throwable: Throwable) =
|
||||
ExpectImpl.builder.descriptive
|
||||
assertionBuilder.descriptive
|
||||
.holding
|
||||
.withDescriptionAndRepresentation(
|
||||
DescriptionThrowableAssertion.OCCURRED_EXCEPTION_MESSAGE,
|
||||
@@ -123,17 +123,17 @@ class ThrowableThrownFailureHandler<T : Throwable?, R>(
|
||||
val assertions = stackTrace.asSequence()
|
||||
.take(maxStackTrace)
|
||||
.map {
|
||||
ExpectImpl.builder.explanatory.withExplanation(Text(it)).build()
|
||||
assertionBuilder.explanatory.withExplanation(Text(it)).build()
|
||||
}
|
||||
.let {
|
||||
if (stackTrace.size > maxStackTrace) {
|
||||
it.plus(ExpectImpl.builder.explanatory.withExplanation(Text("...")).build())
|
||||
it.plus(assertionBuilder.explanatory.withExplanation(Text("...")).build())
|
||||
} else {
|
||||
it
|
||||
}
|
||||
}.toList()
|
||||
|
||||
return ExpectImpl.builder.list
|
||||
return assertionBuilder.list
|
||||
.withDescriptionAndEmptyRepresentation(DescriptionThrowableAssertion.OCCURRED_EXCEPTION_STACKTRACE)
|
||||
.withAssertions(assertions)
|
||||
.build()
|
||||
@@ -161,7 +161,7 @@ class ThrowableThrownFailureHandler<T : Throwable?, R>(
|
||||
maxStackTrace: Int
|
||||
): AssertionGroup {
|
||||
val secondStackTrace = if (throwable.stackBacktrace.size > 1) throwable.stackBacktrace[1] else null
|
||||
return ExpectImpl.builder.list
|
||||
return assertionBuilder.list
|
||||
.withDescriptionAndRepresentation(childDescription, child)
|
||||
.withAssertion(
|
||||
createHints(
|
||||
|
||||
@@ -6,7 +6,7 @@ package ch.tutteli.atrium.assertions
|
||||
import ch.tutteli.atrium.api.fluent.en_GB.containsExactly
|
||||
import ch.tutteli.atrium.api.fluent.en_GB.toBe
|
||||
import ch.tutteli.atrium.api.verbs.internal.expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.domain.robstoll.lib.assertions.LazyThreadUnsafeAssertionGroup
|
||||
import org.spekframework.spek2.Spek
|
||||
import org.spekframework.spek2.style.specification.describe
|
||||
@@ -15,14 +15,14 @@ object LazyThreadUnsafeAssertionGroupSpec : Spek({
|
||||
|
||||
describe("creating it") {
|
||||
var callingCount = 0
|
||||
val assertion = ExpectImpl.builder.descriptive
|
||||
val assertion = assertionBuilder.descriptive
|
||||
.failing
|
||||
.withDescriptionAndRepresentation("b", 3)
|
||||
.build()
|
||||
|
||||
val testee = LazyThreadUnsafeAssertionGroup {
|
||||
++callingCount
|
||||
ExpectImpl.builder.feature
|
||||
assertionBuilder.feature
|
||||
.withDescriptionAndRepresentation("a", 2)
|
||||
.withAssertion(assertion)
|
||||
.build()
|
||||
|
||||
@@ -5,7 +5,7 @@ package ch.tutteli.atrium.assertions
|
||||
|
||||
import ch.tutteli.atrium.api.fluent.en_GB.toBe
|
||||
import ch.tutteli.atrium.api.verbs.internal.expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.domain.robstoll.lib.assertions.LazyThreadUnsafeBasicAssertion
|
||||
import org.spekframework.spek2.Spek
|
||||
import org.spekframework.spek2.style.specification.describe
|
||||
@@ -16,7 +16,7 @@ object LazyThreadUnsafeBasicAssertionSpec : Spek({
|
||||
var callingCount = 0
|
||||
val testee = LazyThreadUnsafeBasicAssertion {
|
||||
++callingCount
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation("a", 2).build()
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation("a", 2).build()
|
||||
}
|
||||
it("does not evaluate anything") {
|
||||
expect(callingCount).toBe(0)
|
||||
|
||||
@@ -8,17 +8,17 @@
|
||||
package ch.tutteli.atrium.domain.robstoll.lib.creating
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.withExplanatoryAssertion
|
||||
import ch.tutteli.atrium.assertions.builders.withFailureHint
|
||||
import ch.tutteli.atrium.creating.SubjectProvider
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.translations.DescriptionBigDecimalAssertion.*
|
||||
import java.math.BigDecimal
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : BigDecimal> _isNumericallyEqualTo(subjectProvider: SubjectProvider<T>, expected: T) =
|
||||
ExpectImpl.builder.createDescriptive(subjectProvider, IS_NUMERICALLY_EQUAL_TO, expected) {
|
||||
assertionBuilder.createDescriptive(subjectProvider, IS_NUMERICALLY_EQUAL_TO, expected) {
|
||||
isNumericallyEqualTo(it, expected)
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ private fun <T : BigDecimal> isNumericallyEqualTo(subject: T, expected: T) =
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : BigDecimal> _isNotNumericallyEqualTo(subjectProvider: SubjectProvider<T>, expected: T) =
|
||||
ExpectImpl.builder.createDescriptive(
|
||||
assertionBuilder.createDescriptive(
|
||||
subjectProvider,
|
||||
IS_NOT_NUMERICALLY_EQUAL_TO,
|
||||
expected
|
||||
@@ -40,10 +40,10 @@ fun <T : BigDecimal> _isEqualIncludingScale(
|
||||
subjectProvider: SubjectProvider<T>,
|
||||
expected: T,
|
||||
nameOfIsNumericallyEqualTo: String
|
||||
): Assertion = ExpectImpl.builder.descriptive
|
||||
): Assertion = assertionBuilder.descriptive
|
||||
.withTest(subjectProvider) { it == expected }
|
||||
.withFailureHint {
|
||||
ExpectImpl.builder.explanatoryGroup
|
||||
assertionBuilder.explanatoryGroup
|
||||
.withDefaultType
|
||||
.withExplanatoryAssertion(
|
||||
FAILURE_IS_EQUAL_INCLUDING_SCALE_BUT_NUMERICALLY_EQUAL,
|
||||
@@ -63,7 +63,7 @@ fun <T : BigDecimal> _isNotEqualIncludingScale(subjectProvider: SubjectProvider<
|
||||
// unfortunately we cannot give a hint about isNotNumericallyEqualTo, because <<10 is not 10.0>> holds
|
||||
// so we do not get to the point where we can detect that using this function instead of isNotNumericallyEqualTo
|
||||
// might not be the intention of the user
|
||||
return ExpectImpl.builder.createDescriptive(subjectProvider, IS_NOT_EQUAL_INCLUDING_SCALE, expected) {
|
||||
return assertionBuilder.createDescriptive(subjectProvider, IS_NOT_EQUAL_INCLUDING_SCALE, expected) {
|
||||
it != expected
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,39 +8,39 @@
|
||||
package ch.tutteli.atrium.domain.robstoll.lib.creating
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.translations.DescriptionDateTimeLikeAssertion.*
|
||||
import java.time.chrono.ChronoLocalDate
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : ChronoLocalDate> _isBefore(expect: Expect<T>, expected: ChronoLocalDate): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, IS_BEFORE, expected) { it.isBefore(expected) }
|
||||
assertionBuilder.createDescriptive(expect, IS_BEFORE, expected) { it.isBefore(expected) }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : ChronoLocalDate> _isBeforeOrEquals(expect: Expect<T>, expected: ChronoLocalDate): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, IS_BEFORE_OR_EQUAL, expected) {
|
||||
assertionBuilder.createDescriptive(expect, IS_BEFORE_OR_EQUAL, expected) {
|
||||
it.isBefore(expected) || it.isEqual(expected)
|
||||
}
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : ChronoLocalDate> _isAfter(expect: Expect<T>, expected: ChronoLocalDate): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, IS_AFTER, expected) { it.isAfter(expected) }
|
||||
assertionBuilder.createDescriptive(expect, IS_AFTER, expected) { it.isAfter(expected) }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : ChronoLocalDate> _isAfterOrEquals(expect: Expect<T>, expected: ChronoLocalDate): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, IS_AFTER_OR_EQUAL, expected) {
|
||||
assertionBuilder.createDescriptive(expect, IS_AFTER_OR_EQUAL, expected) {
|
||||
it.isAfter(expected) || it.isEqual(expected)
|
||||
}
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : ChronoLocalDate> _isEqual(expect: Expect<T>, expected: ChronoLocalDate): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, SAME_DAY, expected) {
|
||||
assertionBuilder.createDescriptive(expect, SAME_DAY, expected) {
|
||||
it.isEqual(expected)
|
||||
}
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
package ch.tutteli.atrium.domain.robstoll.lib.creating
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.translations.DescriptionDateTimeLikeAssertion.*
|
||||
import java.time.chrono.ChronoLocalDate
|
||||
import java.time.chrono.ChronoLocalDateTime
|
||||
@@ -17,7 +17,7 @@ import java.time.chrono.ChronoLocalDateTime
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : ChronoLocalDateTime<*>> _isBefore(expect: Expect<T>, expected: ChronoLocalDateTime<*>): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, IS_BEFORE, expected) { it.isBefore(expected) }
|
||||
assertionBuilder.createDescriptive(expect, IS_BEFORE, expected) { it.isBefore(expected) }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
@@ -25,7 +25,7 @@ fun <T : ChronoLocalDateTime<out ChronoLocalDate>> _isBeforeOrEquals(
|
||||
expect: Expect<T>,
|
||||
expected: ChronoLocalDateTime<*>
|
||||
): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, IS_BEFORE_OR_EQUAL, expected) {
|
||||
assertionBuilder.createDescriptive(expect, IS_BEFORE_OR_EQUAL, expected) {
|
||||
it.isBefore(expected) || it.isEqual(expected)
|
||||
}
|
||||
|
||||
@@ -34,14 +34,14 @@ fun <T : ChronoLocalDateTime<out ChronoLocalDate>> _isBeforeOrEquals(
|
||||
fun <T : ChronoLocalDateTime<out ChronoLocalDate>> _isAfter(
|
||||
expect: Expect<T>,
|
||||
expected: ChronoLocalDateTime<*>
|
||||
): Assertion = ExpectImpl.builder.createDescriptive(expect, IS_AFTER, expected) { it.isAfter(expected) }
|
||||
): Assertion = assertionBuilder.createDescriptive(expect, IS_AFTER, expected) { it.isAfter(expected) }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : ChronoLocalDateTime<out ChronoLocalDate>> _isAfterOrEquals(
|
||||
expect: Expect<T>,
|
||||
expected: ChronoLocalDateTime<*>
|
||||
): Assertion = ExpectImpl.builder.createDescriptive(expect, IS_AFTER_OR_EQUAL, expected) {
|
||||
): Assertion = assertionBuilder.createDescriptive(expect, IS_AFTER_OR_EQUAL, expected) {
|
||||
it.isAfter(expected) || it.isEqual(expected)
|
||||
}
|
||||
|
||||
@@ -50,6 +50,6 @@ fun <T : ChronoLocalDateTime<out ChronoLocalDate>> _isAfterOrEquals(
|
||||
fun <T : ChronoLocalDateTime<out ChronoLocalDate>> _isEqual(
|
||||
expect: Expect<T>,
|
||||
expected: ChronoLocalDateTime<*>
|
||||
): Assertion = ExpectImpl.builder.createDescriptive(expect, IS_EQUAL_TO, expected) {
|
||||
): Assertion = assertionBuilder.createDescriptive(expect, IS_EQUAL_TO, expected) {
|
||||
it.isEqual(expected)
|
||||
}
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
package ch.tutteli.atrium.domain.robstoll.lib.creating
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.translations.DescriptionDateTimeLikeAssertion.*
|
||||
import java.time.chrono.ChronoLocalDate
|
||||
import java.time.chrono.ChronoZonedDateTime
|
||||
@@ -19,7 +19,7 @@ import java.time.chrono.ChronoZonedDateTime
|
||||
fun <T : ChronoZonedDateTime<out ChronoLocalDate>> _isBefore(
|
||||
expect: Expect<T>,
|
||||
expected: ChronoZonedDateTime<*>
|
||||
): Assertion = ExpectImpl.builder.createDescriptive(expect, IS_BEFORE, expected) { it.isBefore(expected) }
|
||||
): Assertion = assertionBuilder.createDescriptive(expect, IS_BEFORE, expected) { it.isBefore(expected) }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
@@ -27,7 +27,7 @@ fun <T : ChronoZonedDateTime<out ChronoLocalDate>> _isBeforeOrEquals(
|
||||
expect: Expect<T>,
|
||||
expected: ChronoZonedDateTime<*>
|
||||
): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, IS_BEFORE_OR_EQUAL, expected) {
|
||||
assertionBuilder.createDescriptive(expect, IS_BEFORE_OR_EQUAL, expected) {
|
||||
it.isBefore(expected) || it.isEqual(expected)
|
||||
}
|
||||
|
||||
@@ -36,14 +36,14 @@ fun <T : ChronoZonedDateTime<out ChronoLocalDate>> _isBeforeOrEquals(
|
||||
fun <T : ChronoZonedDateTime<out ChronoLocalDate>> _isAfter(
|
||||
expect: Expect<T>,
|
||||
expected: ChronoZonedDateTime<*>
|
||||
): Assertion = ExpectImpl.builder.createDescriptive(expect, IS_AFTER, expected) { it.isAfter(expected) }
|
||||
): Assertion = assertionBuilder.createDescriptive(expect, IS_AFTER, expected) { it.isAfter(expected) }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : ChronoZonedDateTime<out ChronoLocalDate>> _isAfterOrEquals(
|
||||
expect: Expect<T>,
|
||||
expected: ChronoZonedDateTime<*>
|
||||
): Assertion = ExpectImpl.builder.createDescriptive(expect, IS_AFTER_OR_EQUAL, expected) {
|
||||
): Assertion = assertionBuilder.createDescriptive(expect, IS_AFTER_OR_EQUAL, expected) {
|
||||
it.isAfter(expected) || it.isEqual(expected)
|
||||
}
|
||||
|
||||
@@ -52,6 +52,6 @@ fun <T : ChronoZonedDateTime<out ChronoLocalDate>> _isAfterOrEquals(
|
||||
fun <T : ChronoZonedDateTime<out ChronoLocalDate>> _isEqual(
|
||||
expect: Expect<T>,
|
||||
expected: ChronoZonedDateTime<*>
|
||||
): Assertion = ExpectImpl.builder.createDescriptive(expect, IS_EQUAL_TO, expected) {
|
||||
): Assertion = assertionBuilder.createDescriptive(expect, IS_EQUAL_TO, expected) {
|
||||
it.isEqual(expected)
|
||||
}
|
||||
|
||||
@@ -8,8 +8,8 @@ package ch.tutteli.atrium.domain.robstoll.lib.creating.filesystem
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.withExplanatoryAssertion
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.translations.DescriptionPathAssertion.FAILURE_DUE_TO_LINK_LOOP
|
||||
import ch.tutteli.atrium.translations.DescriptionPathAssertion.HINT_FOLLOWED_SYMBOLIC_LINK
|
||||
import ch.tutteli.niok.followSymbolicLink
|
||||
@@ -28,7 +28,7 @@ inline fun explainForResolvedLink(path: Path, resolvedPathAssertionProvider: (re
|
||||
is AssertionGroup -> hintList.addAll(resolvedPathAssertion.assertions)
|
||||
else -> hintList.add(resolvedPathAssertion)
|
||||
}
|
||||
ExpectImpl.builder.explanatoryGroup.withDefaultType
|
||||
assertionBuilder.explanatoryGroup.withDefaultType
|
||||
.withAssertions(hintList)
|
||||
.build()
|
||||
} else {
|
||||
@@ -87,7 +87,7 @@ private fun addOneStepResolvedSymlinkHint(absolutePath: Path, hintList: Deque<As
|
||||
.normalize()
|
||||
|
||||
hintList.add(
|
||||
ExpectImpl.builder.explanatory
|
||||
assertionBuilder.explanatory
|
||||
.withExplanation(HINT_FOLLOWED_SYMBOLIC_LINK, absolutePath, nextPath)
|
||||
.build()
|
||||
)
|
||||
@@ -100,7 +100,7 @@ private fun addOneStepResolvedSymlinkHint(absolutePath: Path, hintList: Deque<As
|
||||
|
||||
private fun hintForLinkLoop(loop: List<Path>, startIndex: Int): Assertion {
|
||||
val loopRepresentation = loop.subList(startIndex, loop.size).joinToString(" -> ")
|
||||
return ExpectImpl.builder.explanatoryGroup.withWarningType
|
||||
return assertionBuilder.explanatoryGroup.withWarningType
|
||||
.withExplanatoryAssertion(FAILURE_DUE_TO_LINK_LOOP, loopRepresentation)
|
||||
.build()
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
package ch.tutteli.atrium.domain.robstoll.lib.creating
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.core.Option
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
@@ -18,7 +19,7 @@ import java.util.*
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : Optional<*>> _isEmpty(expect: Expect<T>): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, IS, DescriptionOptionalAssertion.EMPTY) { !it.isPresent }
|
||||
assertionBuilder.createDescriptive(expect, IS, DescriptionOptionalAssertion.EMPTY) { !it.isPresent }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
|
||||
@@ -9,6 +9,7 @@ package ch.tutteli.atrium.domain.robstoll.lib.creating
|
||||
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.withFailureHintBasedOnDefinedSubject
|
||||
import ch.tutteli.atrium.core.None
|
||||
import ch.tutteli.atrium.core.Some
|
||||
@@ -39,22 +40,22 @@ private const val IO_EXCEPTION_STACK_TRACE_LENGTH = 15
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : Path> _startsWith(expect: Expect<T>, expected: Path): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, STARTS_WITH, expected) { it.startsWith(expected) }
|
||||
assertionBuilder.createDescriptive(expect, STARTS_WITH, expected) { it.startsWith(expected) }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : Path> _startsNotWith(expect: Expect<T>, expected: Path): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, STARTS_NOT_WITH, expected) { !it.startsWith(expected) }
|
||||
assertionBuilder.createDescriptive(expect, STARTS_NOT_WITH, expected) { !it.startsWith(expected) }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : Path> _endsWith(expect: Expect<T>, expected: Path): Assertion =
|
||||
ExpectImpl.builder.createDescriptive(expect, ENDS_WITH, expected) { it.endsWith(expected) }
|
||||
assertionBuilder.createDescriptive(expect, ENDS_WITH, expected) { it.endsWith(expected) }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : Path> _endsNotWith(expect: Expect<T>, expected: Path) =
|
||||
ExpectImpl.builder.createDescriptive(expect, ENDS_NOT_WITH, expected) { !it.endsWith(expected) }
|
||||
assertionBuilder.createDescriptive(expect, ENDS_NOT_WITH, expected) { !it.endsWith(expected) }
|
||||
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
@@ -64,7 +65,7 @@ fun <T : Path> _hasSameTextualContentAs(
|
||||
sourceCharset: Charset,
|
||||
targetCharset: Charset
|
||||
) =
|
||||
ExpectImpl.builder.createDescriptive(
|
||||
assertionBuilder.createDescriptive(
|
||||
expect,
|
||||
TranslatableWithArgs(HAS_SAME_TEXTUAL_CONTENT, sourceCharset, targetCharset),
|
||||
targetPath
|
||||
@@ -75,7 +76,7 @@ fun <T : Path> _hasSameTextualContentAs(
|
||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : Path> _hasSameBinaryContentAs(expect: Expect<T>, targetPath: Path) =
|
||||
ExpectImpl.builder.createDescriptive(expect, HAS_SAME_BINARY_CONTENT, targetPath) {
|
||||
assertionBuilder.createDescriptive(expect, HAS_SAME_BINARY_CONTENT, targetPath) {
|
||||
it.readAllBytes().contentEquals(targetPath.readAllBytes())
|
||||
}
|
||||
|
||||
@@ -83,14 +84,14 @@ fun <T : Path> _hasSameBinaryContentAs(expect: Expect<T>, targetPath: Path) =
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : Path> _exists(expect: Expect<T>): Assertion =
|
||||
changeSubjectToFileAttributes(expect) { fileAttributesAssertionContainer ->
|
||||
ExpectImpl.builder.descriptive
|
||||
assertionBuilder.descriptive
|
||||
.withTest(fileAttributesAssertionContainer) { it is Success }
|
||||
.withFailureHintBasedOnDefinedSubject(fileAttributesAssertionContainer) { result ->
|
||||
explainForResolvedLink(result.path) { realPath ->
|
||||
val exception = (result as Failure).exception
|
||||
when (exception) {
|
||||
// TODO remove group once https://github.com/robstoll/atrium-roadmap/issues/1 is implemented
|
||||
is NoSuchFileException -> ExpectImpl.builder.explanatoryGroup.withDefaultType.withAssertion(
|
||||
is NoSuchFileException -> assertionBuilder.explanatoryGroup.withDefaultType.withAssertion(
|
||||
hintForClosestExistingParent(realPath)
|
||||
).build()
|
||||
else -> hintForIoException(realPath, exception)
|
||||
@@ -105,7 +106,7 @@ fun <T : Path> _exists(expect: Expect<T>): Assertion =
|
||||
@Deprecated("use the function from atrium-logic instead, will be removed with 1.0.0")
|
||||
fun <T : Path> _existsNot(expect: Expect<T>): Assertion =
|
||||
changeSubjectToFileAttributes(expect) { fileAttributesAssertionContainer ->
|
||||
ExpectImpl.builder.descriptive
|
||||
assertionBuilder.descriptive
|
||||
.withTest(fileAttributesAssertionContainer) { it is Failure && it.exception is NoSuchFileException }
|
||||
.withFailureHintBasedOnDefinedSubject(fileAttributesAssertionContainer) { result ->
|
||||
explainForResolvedLink(result.path) { realPath ->
|
||||
@@ -146,14 +147,14 @@ private fun <T : Path> filePermissionAssertion(
|
||||
) = ExpectImpl.changeSubject(expect).unreported {
|
||||
it.runCatchingIo { fileSystem.provider().checkAccess(it, accessMode) }
|
||||
}.let { checkAccessResultContainer ->
|
||||
ExpectImpl.builder.descriptive
|
||||
assertionBuilder.descriptive
|
||||
.withTest(checkAccessResultContainer) { it is Success }
|
||||
.withFailureHintBasedOnDefinedSubject(checkAccessResultContainer) { result ->
|
||||
explainForResolvedLink(result.path) { realPath ->
|
||||
val exception = (result as Failure).exception
|
||||
when (exception) {
|
||||
is AccessDeniedException -> findHintForProblemWithParent(realPath)
|
||||
?: ExpectImpl.builder.explanatoryGroup.withDefaultType
|
||||
?: assertionBuilder.explanatoryGroup.withDefaultType
|
||||
.withAssertions(
|
||||
listOf(hintForExistsButMissingPermission(realPath, permissionName))
|
||||
+ hintForOwnersAndPermissions(realPath)
|
||||
@@ -172,7 +173,7 @@ private inline fun <T : Path> fileTypeAssertion(
|
||||
typeName: Translatable,
|
||||
crossinline typeTest: (BasicFileAttributes) -> Boolean
|
||||
) = changeSubjectToFileAttributes(expect) { fileAttributesAssertionContainer ->
|
||||
ExpectImpl.builder.descriptive
|
||||
assertionBuilder.descriptive
|
||||
.withTest(fileAttributesAssertionContainer) { it is Success && typeTest(it.value) }
|
||||
.withFailureHintBasedOnDefinedSubject(fileAttributesAssertionContainer) { result ->
|
||||
explainForResolvedLink(result.path) { realPath ->
|
||||
@@ -228,28 +229,28 @@ private fun findHintForProblemWithParent(path: Path): Assertion? {
|
||||
}
|
||||
|
||||
private fun hintForParentFailure(parent: Path, explanation: Assertion) =
|
||||
ExpectImpl.builder.explanatoryGroup.withDefaultType
|
||||
assertionBuilder.explanatoryGroup.withDefaultType
|
||||
.withAssertions(
|
||||
ExpectImpl.builder.descriptive.failing
|
||||
assertionBuilder.descriptive.failing
|
||||
.withDescriptionAndRepresentation(FAILURE_DUE_TO_PARENT, parent)
|
||||
.build(),
|
||||
when (explanation) {
|
||||
is AssertionGroup -> explanation
|
||||
// TODO remove group once https://github.com/robstoll/atrium-roadmap/issues/1 is implemented
|
||||
else -> ExpectImpl.builder.explanatoryGroup.withDefaultType
|
||||
else -> assertionBuilder.explanatoryGroup.withDefaultType
|
||||
.withAssertion(explanation)
|
||||
.build()
|
||||
}
|
||||
).build()
|
||||
|
||||
private fun hintForAccessDenied(path: Path): Assertion {
|
||||
val failureDueToAccessDeniedHint = ExpectImpl.builder.explanatory
|
||||
val failureDueToAccessDeniedHint = assertionBuilder.explanatory
|
||||
.withExplanation(FAILURE_DUE_TO_ACCESS_DENIED)
|
||||
.build()
|
||||
return try {
|
||||
val hints = hintForOwnersAndPermissions(path)
|
||||
hints.add(0, failureDueToAccessDeniedHint)
|
||||
ExpectImpl.builder.explanatoryGroup.withDefaultType
|
||||
assertionBuilder.explanatoryGroup.withDefaultType
|
||||
.withAssertions(hints)
|
||||
.build()
|
||||
} catch (e: IOException) {
|
||||
@@ -275,32 +276,32 @@ private fun hintForOwnersAndPermissions(path: Path): MutableList<Assertion> {
|
||||
}
|
||||
|
||||
private fun hintForOwner(owner: String) =
|
||||
ExpectImpl.builder.explanatory
|
||||
assertionBuilder.explanatory
|
||||
.withExplanation(HINT_OWNER, owner)
|
||||
.build()
|
||||
|
||||
private fun hintForOwnerAndGroup(owner: String, group: String) =
|
||||
ExpectImpl.builder.explanatory
|
||||
assertionBuilder.explanatory
|
||||
.withExplanation(HINT_OWNER_AND_GROUP, owner, group)
|
||||
.build()
|
||||
|
||||
private fun hintsForActualAclPermissions(acl: List<AclEntry>) =
|
||||
arrayOf(
|
||||
ExpectImpl.builder.explanatory
|
||||
assertionBuilder.explanatory
|
||||
.withExplanation(HINT_ACTUAL_ACL_PERMISSIONS)
|
||||
.build(),
|
||||
ExpectImpl.builder.explanatoryGroup.withDefaultType
|
||||
assertionBuilder.explanatoryGroup.withDefaultType
|
||||
.withAssertions(acl.map(::hintForAclEntry))
|
||||
.build()
|
||||
)
|
||||
|
||||
private fun hintForAclEntry(entry: AclEntry) =
|
||||
ExpectImpl.builder.explanatory
|
||||
assertionBuilder.explanatory
|
||||
.withExplanation("${entry.type()} ${entry.principal().name}: ${entry.permissions().joinToString()}")
|
||||
.build()
|
||||
|
||||
private fun hintForActualPosixPermissions(filePermissions: Set<PosixFilePermission>) =
|
||||
ExpectImpl.builder.explanatory
|
||||
assertionBuilder.explanatory
|
||||
.withExplanation(HINT_ACTUAL_POSIX_PERMISSIONS, formatPosixPermissions(filePermissions))
|
||||
.build()
|
||||
|
||||
@@ -332,12 +333,12 @@ private fun toPermissionString(
|
||||
}
|
||||
|
||||
private fun <T : Path> hintForExistsButMissingPermission(subject: T, permissionName: Translatable) =
|
||||
ExpectImpl.builder.explanatory
|
||||
assertionBuilder.explanatory
|
||||
.withExplanation(FAILURE_DUE_TO_PERMISSION_FILE_TYPE_HINT, subject.fileType, permissionName)
|
||||
.build()
|
||||
|
||||
private fun describeWas(actual: Translatable) =
|
||||
ExpectImpl.builder.descriptive.failing
|
||||
assertionBuilder.descriptive.failing
|
||||
.withDescriptionAndRepresentation(WAS, actual)
|
||||
.build()
|
||||
|
||||
@@ -353,7 +354,7 @@ private fun hintForFileSpecificIoException(path: Path, exception: IOException) =
|
||||
}
|
||||
|
||||
private fun hintForFileNotFound(path: Path) =
|
||||
ExpectImpl.builder.explanatoryGroup.withDefaultType
|
||||
assertionBuilder.explanatoryGroup.withDefaultType
|
||||
.withAssertions(
|
||||
hintForNoSuchFile(),
|
||||
hintForClosestExistingParent(path)
|
||||
@@ -361,7 +362,7 @@ private fun hintForFileNotFound(path: Path) =
|
||||
.build()
|
||||
|
||||
private fun hintForNoSuchFile() =
|
||||
ExpectImpl.builder.explanatory
|
||||
assertionBuilder.explanatory
|
||||
.withExplanation(FAILURE_DUE_TO_NO_SUCH_FILE)
|
||||
.build()
|
||||
|
||||
@@ -391,12 +392,12 @@ private fun hintForClosestExistingParent(path: Path): Assertion {
|
||||
}
|
||||
|
||||
private fun hintForExistingParentDirectory(parent: Path?) =
|
||||
ExpectImpl.builder.explanatory
|
||||
assertionBuilder.explanatory
|
||||
.withExplanation(HINT_CLOSEST_EXISTING_PARENT_DIRECTORY, parent ?: NONE)
|
||||
.build()
|
||||
|
||||
private fun hintForNotDirectory(actualType: Translatable) =
|
||||
ExpectImpl.builder.explanatory
|
||||
assertionBuilder.explanatory
|
||||
.withExplanation(FAILURE_DUE_TO_WRONG_FILE_TYPE, actualType, A_DIRECTORY)
|
||||
.build()
|
||||
|
||||
@@ -404,7 +405,7 @@ private fun hintForOtherIoException(exception: IOException) =
|
||||
ThrowableThrownFailureHandler.propertiesOfThrowable(
|
||||
exception,
|
||||
maxStackTrace = IO_EXCEPTION_STACK_TRACE_LENGTH,
|
||||
explanation = ExpectImpl.builder.explanatory
|
||||
explanation = assertionBuilder.explanatory
|
||||
.withExplanation(
|
||||
FAILURE_DUE_TO_ACCESS_EXCEPTION,
|
||||
exception::class.simpleName ?: exception::class.fullName
|
||||
|
||||
@@ -9,8 +9,8 @@ import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.ExplanatoryAssertion
|
||||
import ch.tutteli.atrium.assertions.WarningAssertionGroupType
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.domain.robstoll.lib.creating.filesystem.explainForResolvedLink
|
||||
import ch.tutteli.atrium.reporting.translating.TranslatableWithArgs
|
||||
import ch.tutteli.atrium.reporting.translating.Untranslatable
|
||||
@@ -39,7 +39,7 @@ object SymbolicLinkResolvingSpec : Spek({
|
||||
val ifSymlinksNotSupported =
|
||||
if (fileSystemSupportsCreatingSymlinks()) Skip.No else Skip.Yes("creating symbolic links is not supported on this file system")
|
||||
|
||||
val testAssertion = ExpectImpl.builder.createDescriptive(Untranslatable("testAssertion"), null) { true }
|
||||
val testAssertion = assertionBuilder.createDescriptive(Untranslatable("testAssertion"), null) { true }
|
||||
val resolvedPathConsumer by memoized(TEST) {
|
||||
mockk<(Path) -> Assertion> {
|
||||
every { this@mockk.invoke(any()) } returns testAssertion
|
||||
|
||||
@@ -3,11 +3,11 @@ package ch.tutteli.atrium.specs
|
||||
import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.ExplanatoryAssertionGroupType
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.core.None
|
||||
import ch.tutteli.atrium.core.coreFactory
|
||||
import ch.tutteli.atrium.creating.CollectingExpect
|
||||
import ch.tutteli.atrium.creating.Expect
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.domain.builders.reporting.ExpectBuilder
|
||||
import ch.tutteli.atrium.domain.builders.reporting.ExpectOptions
|
||||
import org.spekframework.spek2.Spek
|
||||
@@ -39,7 +39,7 @@ abstract class SubjectLessSpec<T>(
|
||||
)
|
||||
.build()
|
||||
|
||||
val explanatoryGroup = ExpectImpl.builder.explanatoryGroup
|
||||
val explanatoryGroup = assertionBuilder.explanatoryGroup
|
||||
.withDefaultType
|
||||
.withAssertions(assertions)
|
||||
.build()
|
||||
|
||||
@@ -4,10 +4,10 @@ import ch.tutteli.atrium.api.fluent.en_GB.toBe
|
||||
import ch.tutteli.atrium.api.verbs.internal.expect
|
||||
import ch.tutteli.atrium.assertions.*
|
||||
import ch.tutteli.atrium.assertions.builders.AssertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.fixedClaimGroup
|
||||
import ch.tutteli.atrium.assertions.builders.root
|
||||
import ch.tutteli.atrium.core.coreFactory
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatterController
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatterParameterObject
|
||||
import ch.tutteli.atrium.reporting.Text
|
||||
@@ -67,12 +67,12 @@ abstract class AssertionFormatterControllerSpec(
|
||||
)
|
||||
)
|
||||
|
||||
val holdingAssertion = ExpectImpl.builder.descriptive
|
||||
val holdingAssertion = assertionBuilder.descriptive
|
||||
.holding
|
||||
.withDescriptionAndRepresentation(IS_GREATER_OR_EQUALS, 1)
|
||||
.build()
|
||||
|
||||
val failingAssertion = ExpectImpl.builder.descriptive
|
||||
val failingAssertion = assertionBuilder.descriptive
|
||||
.failing
|
||||
.withDescriptionAndRepresentation(IS_LESS_OR_EQUALS, 2)
|
||||
.build()
|
||||
@@ -97,19 +97,19 @@ abstract class AssertionFormatterControllerSpec(
|
||||
|
||||
listOf<Pair<String, (ExplanatoryAssertionGroupType, List<Assertion>) -> AssertionGroup>>(
|
||||
"${AssertionBuilder::class.simpleName}.${AssertionBuilder::explanatoryGroup.name}.customType(t)" to { t, a ->
|
||||
ExpectImpl.builder.explanatoryGroup
|
||||
assertionBuilder.explanatoryGroup
|
||||
.withType(t)
|
||||
.withAssertions(a)
|
||||
.build()
|
||||
},
|
||||
"${AssertionBuilder::class.simpleName}.customType(t, ..)" to { t, a ->
|
||||
ExpectImpl.builder.customType(t)
|
||||
assertionBuilder.customType(t)
|
||||
.withDescriptionAndRepresentation(AssertionVerb.VERB, 1)
|
||||
.withAssertions(a)
|
||||
.build()
|
||||
},
|
||||
"${AssertionBuilder::class.simpleName}.${AssertionBuilder::fixedClaimGroup.name}" to { t, a ->
|
||||
ExpectImpl.builder.fixedClaimGroup
|
||||
assertionBuilder.fixedClaimGroup
|
||||
.withType(t)
|
||||
.failing
|
||||
.withDescriptionAndRepresentation(AssertionVerb.VERB, 1)
|
||||
@@ -177,10 +177,10 @@ abstract class AssertionFormatterControllerSpec(
|
||||
|
||||
context("first an ${ExplanatoryAssertionGroupType::class.simpleName} and then a regular assertion") {
|
||||
it("appends only the explanatory assertion group") {
|
||||
val rootGroup = ExpectImpl.builder.root
|
||||
val rootGroup = assertionBuilder.root
|
||||
.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 5)
|
||||
.withAssertions(
|
||||
ExpectImpl.builder.explanatoryGroup.withDefaultType.withAssertion(holdingAssertion).build(),
|
||||
assertionBuilder.explanatoryGroup.withDefaultType.withAssertion(holdingAssertion).build(),
|
||||
holdingAssertion
|
||||
)
|
||||
.build()
|
||||
@@ -194,11 +194,11 @@ abstract class AssertionFormatterControllerSpec(
|
||||
|
||||
context("first a regular assertion, then an ${ExplanatoryAssertionGroupType::class.simpleName} and finally a regular assertion again") {
|
||||
it("appends only the explanatory assertion group") {
|
||||
val rootGroup = ExpectImpl.builder.root
|
||||
val rootGroup = assertionBuilder.root
|
||||
.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 5)
|
||||
.withAssertions(
|
||||
holdingAssertion,
|
||||
ExpectImpl.builder.explanatoryGroup.withWarningType.withAssertion(holdingAssertion).build(),
|
||||
assertionBuilder.explanatoryGroup.withWarningType.withAssertion(holdingAssertion).build(),
|
||||
holdingAssertion
|
||||
)
|
||||
.build()
|
||||
@@ -211,17 +211,17 @@ abstract class AssertionFormatterControllerSpec(
|
||||
}
|
||||
|
||||
context("an assertion group with assertions within an ${ExplanatoryAssertionGroupType::class.simpleName}") {
|
||||
val assertionGroup = ExpectImpl.builder.list
|
||||
val assertionGroup = assertionBuilder.list
|
||||
.withDescriptionAndRepresentation(AssertionVerb.EXPECT_THROWN, 2)
|
||||
.withAssertions(holdingAssertion, failingAssertion)
|
||||
.build()
|
||||
val explanatoryAssertionGroup = ExpectImpl.builder.explanatoryGroup
|
||||
val explanatoryAssertionGroup = assertionBuilder.explanatoryGroup
|
||||
.withDefaultType
|
||||
.withAssertions(listOf(assertionGroup, holdingAssertion))
|
||||
.build()
|
||||
|
||||
it("appends the explanatory assertion group including all its assertions") {
|
||||
val rootGroup = ExpectImpl.builder.root
|
||||
val rootGroup = assertionBuilder.root
|
||||
.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 5)
|
||||
.withAssertion(explanatoryAssertionGroup)
|
||||
.build()
|
||||
@@ -237,11 +237,11 @@ abstract class AssertionFormatterControllerSpec(
|
||||
|
||||
context("within another ${ExplanatoryAssertionGroupType::class.simpleName} which is preceded and followed by a regular assertion ") {
|
||||
it("appends the explanatory assertion group including all its assertions") {
|
||||
val explanatoryAssertionGroup2 = ExpectImpl.builder.explanatoryGroup
|
||||
val explanatoryAssertionGroup2 = assertionBuilder.explanatoryGroup
|
||||
.withWarningType
|
||||
.withAssertion(explanatoryAssertionGroup)
|
||||
.build()
|
||||
val rootGroup2 = ExpectImpl.builder.root
|
||||
val rootGroup2 = assertionBuilder.root
|
||||
.withDescriptionAndRepresentation(IS_LESS_THAN, 10)
|
||||
.withAssertions(failingAssertion, explanatoryAssertionGroup2, holdingAssertion)
|
||||
.build()
|
||||
@@ -281,7 +281,7 @@ abstract class AssertionFormatterControllerSpec(
|
||||
override val representation = "representation"
|
||||
override val assertions = listOf(holdingAssertion, failingAssertion)
|
||||
}
|
||||
val summaryGroup = ExpectImpl.builder.summary
|
||||
val summaryGroup = assertionBuilder.summary
|
||||
.withDescription(AssertionVerb.ASSERT)
|
||||
.withAssertion(invisibleGroup)
|
||||
.build()
|
||||
|
||||
@@ -5,8 +5,8 @@ import ch.tutteli.atrium.api.fluent.en_GB.containsNot
|
||||
import ch.tutteli.atrium.api.verbs.internal.expect
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.AssertionGroupType
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.core.coreFactory
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatter
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatterController
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatterParameterObject
|
||||
@@ -45,7 +45,7 @@ abstract class EmptyNameAndSubjectAssertionGroupFormatterSpec<T : AssertionGroup
|
||||
).forEach { (typeRepresentation, type) ->
|
||||
context("formatting an ${AssertionGroup::class.simpleName} of type $typeRepresentation") {
|
||||
it("does not include ${AssertionGroup::description.name} nor ${AssertionGroup::representation.name}") {
|
||||
val assertionGroup = ExpectImpl.builder.customType(type)
|
||||
val assertionGroup = assertionBuilder.customType(type)
|
||||
.withDescriptionAndRepresentation(TestDescription.TEST_NAME, testSubject)
|
||||
.withAssertions(listOf())
|
||||
.build()
|
||||
|
||||
@@ -6,9 +6,9 @@ import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.DescriptiveAssertion
|
||||
import ch.tutteli.atrium.assertions.RootAssertionGroupType
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.assertions.builders.root
|
||||
import ch.tutteli.atrium.core.coreFactory
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatterFacade
|
||||
import ch.tutteli.atrium.reporting.AtriumErrorAdjuster
|
||||
import ch.tutteli.atrium.reporting.Reporter
|
||||
@@ -44,7 +44,7 @@ abstract class OnlyFailureReporterSpec(
|
||||
val assertion = object : Assertion {
|
||||
override fun holds() = true
|
||||
}
|
||||
val basicAssertion = ExpectImpl.builder.descriptive
|
||||
val basicAssertion = assertionBuilder.descriptive
|
||||
.holding
|
||||
.withDescriptionAndRepresentation(TO_BE, 0)
|
||||
.build()
|
||||
@@ -61,7 +61,7 @@ abstract class OnlyFailureReporterSpec(
|
||||
override val representation = 0
|
||||
override val assertions = listOf(assertion, basicAssertion, basicAssertionAnonymous)
|
||||
}
|
||||
val assertionGroup = ExpectImpl.builder.root
|
||||
val assertionGroup = assertionBuilder.root
|
||||
.withDescriptionAndRepresentation(AssertionVerb.VERB, 1)
|
||||
.withAssertions(listOf(assertion, basicAssertion, basicAssertionAnonymous, assertionGroupAnonymous))
|
||||
.build()
|
||||
|
||||
@@ -9,9 +9,9 @@ import ch.tutteli.atrium.assertions.Assertion
|
||||
import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.AssertionGroupType
|
||||
import ch.tutteli.atrium.assertions.BulletPointIdentifier
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.core.coreFactory
|
||||
import ch.tutteli.atrium.core.polyfills.fullName
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatter
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatterController
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatterParameterObject
|
||||
@@ -43,11 +43,11 @@ abstract class SingleAssertionGroupTypeFormatterSpec<out T : AssertionGroupType>
|
||||
val unsupportedAssertion = object : Assertion {
|
||||
override fun holds() = false
|
||||
}
|
||||
val unsupportedAssertionGroup = ExpectImpl.builder.customType(object : AssertionGroupType {})
|
||||
val unsupportedAssertionGroup = assertionBuilder.customType(object : AssertionGroupType {})
|
||||
.withDescriptionAndRepresentation(Untranslatable.EMPTY, 1)
|
||||
.withAssertions(listOf())
|
||||
.build()
|
||||
val supportedAssertionGroupWithAnonymousType = ExpectImpl.builder.customType(supportedAnonymousAssertionGroupType)
|
||||
val supportedAssertionGroupWithAnonymousType = assertionBuilder.customType(supportedAnonymousAssertionGroupType)
|
||||
.withDescriptionAndRepresentation(Untranslatable.EMPTY, 1)
|
||||
.withAssertions(listOf())
|
||||
.build()
|
||||
@@ -57,7 +57,7 @@ abstract class SingleAssertionGroupTypeFormatterSpec<out T : AssertionGroupType>
|
||||
override val representation = 1
|
||||
override val assertions: List<Assertion> = emptyList()
|
||||
}
|
||||
val supportedAssertionGroup = ExpectImpl.builder.customType(supportedAssertionGroupType)
|
||||
val supportedAssertionGroup = assertionBuilder.customType(supportedAssertionGroupType)
|
||||
.withDescriptionAndRepresentation(Untranslatable.EMPTY, 1)
|
||||
.withAssertions(listOf())
|
||||
.build()
|
||||
|
||||
@@ -2,7 +2,7 @@ package ch.tutteli.atrium.specs.reporting
|
||||
|
||||
import ch.tutteli.atrium.assertions.BulletPointIdentifier
|
||||
import ch.tutteli.atrium.assertions.ExplanatoryAssertionGroupType
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatter
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatterController
|
||||
import kotlin.reflect.KClass
|
||||
@@ -14,5 +14,5 @@ abstract class TextExplanatoryAssertionGroupFormatterSpec(
|
||||
testeeFactory,
|
||||
ExplanatoryAssertionGroupType::class,
|
||||
object : ExplanatoryAssertionGroupType {},
|
||||
{ ExpectImpl.builder.explanatoryGroup.withDefaultType.withAssertions(it).build() },
|
||||
{ assertionBuilder.explanatoryGroup.withDefaultType.withAssertions(it).build() },
|
||||
describePrefix)
|
||||
|
||||
@@ -4,17 +4,17 @@ import ch.tutteli.atrium.api.fluent.en_GB.contains
|
||||
import ch.tutteli.atrium.api.fluent.en_GB.toBe
|
||||
import ch.tutteli.atrium.api.verbs.internal.expect
|
||||
import ch.tutteli.atrium.assertions.*
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.core.coreFactory
|
||||
import ch.tutteli.atrium.core.polyfills.fullName
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatter
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatterController
|
||||
import ch.tutteli.atrium.reporting.ObjectFormatter
|
||||
import ch.tutteli.atrium.reporting.translating.Translator
|
||||
import ch.tutteli.atrium.reporting.translating.Untranslatable
|
||||
import ch.tutteli.atrium.reporting.translating.UsingDefaultTranslator
|
||||
import ch.tutteli.atrium.specs.lineSeperator
|
||||
import ch.tutteli.atrium.specs.describeFunTemplate
|
||||
import ch.tutteli.atrium.specs.lineSeperator
|
||||
import ch.tutteli.atrium.specs.toBeDescr
|
||||
import ch.tutteli.atrium.translations.DescriptionAnyAssertion.IS_SAME
|
||||
import ch.tutteli.atrium.translations.DescriptionAnyAssertion.TO_BE
|
||||
@@ -69,14 +69,14 @@ abstract class TextFallbackAssertionFormatterSpec(
|
||||
context("assertion of type ${DescriptiveAssertion::class.simpleName}") {
|
||||
it("writes ${DescriptiveAssertion::description.name} and ${DescriptiveAssertion::representation.name} on the same line separated by colon and space") {
|
||||
val assertion =
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(IS_SAME, "bli").build()
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(IS_SAME, "bli").build()
|
||||
testee.formatNonGroup(assertion, parameterObject)
|
||||
expect(sb.toString()).toBe("$lineSeperator${IS_SAME.getDefault()}: bli")
|
||||
}
|
||||
}
|
||||
context("assertion of type ${RepresentationOnlyAssertion::class.simpleName}") {
|
||||
it("writes ${RepresentationOnlyAssertion::representation.name} without any additional colon or such") {
|
||||
val assertion = ExpectImpl.builder.representationOnly.failing.withRepresentation("hello").build()
|
||||
val assertion = assertionBuilder.representationOnly.failing.withRepresentation("hello").build()
|
||||
testee.formatNonGroup(assertion, parameterObject)
|
||||
expect(sb.toString()).toBe("${lineSeperator}hello")
|
||||
}
|
||||
@@ -98,10 +98,10 @@ abstract class TextFallbackAssertionFormatterSpec(
|
||||
override val description = Untranslatable("group")
|
||||
override val representation = "subject of group"
|
||||
override val assertions = listOf(
|
||||
ExpectImpl.builder.descriptive.failing
|
||||
assertionBuilder.descriptive.failing
|
||||
.withDescriptionAndRepresentation(IS_SAME, "b")
|
||||
.build(),
|
||||
ExpectImpl.builder.descriptive.failing
|
||||
assertionBuilder.descriptive.failing
|
||||
.withDescriptionAndRepresentation(TO_BE, "d")
|
||||
.build()
|
||||
)
|
||||
@@ -133,10 +133,10 @@ abstract class TextFallbackAssertionFormatterSpec(
|
||||
override val description = Untranslatable("inner group")
|
||||
override val representation = "subject of inner group"
|
||||
override val assertions = listOf(
|
||||
ExpectImpl.builder.descriptive.failing
|
||||
assertionBuilder.descriptive.failing
|
||||
.withDescriptionAndRepresentation(IS_SAME, "b")
|
||||
.build(),
|
||||
ExpectImpl.builder.descriptive.failing
|
||||
assertionBuilder.descriptive.failing
|
||||
.withDescriptionAndRepresentation(TO_BE, "d")
|
||||
.build()
|
||||
)
|
||||
|
||||
@@ -3,15 +3,14 @@ package ch.tutteli.atrium.specs.reporting
|
||||
import ch.tutteli.atrium.api.fluent.en_GB.toBe
|
||||
import ch.tutteli.atrium.api.verbs.internal.expect
|
||||
import ch.tutteli.atrium.assertions.*
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.core.coreFactory
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatter
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatterController
|
||||
import ch.tutteli.atrium.reporting.translating.Untranslatable
|
||||
import ch.tutteli.atrium.specs.lineSeperator
|
||||
import ch.tutteli.atrium.specs.AssertionVerb
|
||||
import ch.tutteli.atrium.specs.describeFunTemplate
|
||||
import org.spekframework.spek2.Spek
|
||||
import ch.tutteli.atrium.specs.lineSeperator
|
||||
import org.spekframework.spek2.style.specification.Suite
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@@ -38,7 +37,7 @@ abstract class TextIndentBasedAssertionGroupFormatterSpec<T : AssertionGroupType
|
||||
val testee = testeeFactory(bulletPoints, coreFactory.newAssertionFormatterController())
|
||||
it("returns true for an ${AssertionGroup::class.simpleName} with type object: ${assertionGroupTypeClass.simpleName}") {
|
||||
val result = testee.canFormat(
|
||||
ExpectImpl.builder.customType(anonymousAssertionGroupType)
|
||||
assertionBuilder.customType(anonymousAssertionGroupType)
|
||||
.withDescriptionAndRepresentation(Untranslatable.EMPTY, 1)
|
||||
.withAssertions(listOf())
|
||||
.build()
|
||||
@@ -50,11 +49,11 @@ abstract class TextIndentBasedAssertionGroupFormatterSpec<T : AssertionGroupType
|
||||
describeFun(AssertionFormatter::formatGroup.name) {
|
||||
context("${AssertionGroup::class.simpleName} of type ${assertionGroupTypeClass.simpleName}") {
|
||||
val assertions = listOf(
|
||||
ExpectImpl.builder.descriptive.holding.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.holding.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
1
|
||||
).build(),
|
||||
ExpectImpl.builder.descriptive.holding.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.holding.withDescriptionAndRepresentation(
|
||||
AssertionVerb.EXPECT_THROWN,
|
||||
2
|
||||
).build()
|
||||
@@ -80,12 +79,12 @@ abstract class TextIndentBasedAssertionGroupFormatterSpec<T : AssertionGroupType
|
||||
it("puts the assertions one under the other and indents the second one including a prefix") {
|
||||
val featureAssertions = listOf(
|
||||
indentAssertionGroup,
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
20
|
||||
).build()
|
||||
)
|
||||
val featureAssertionGroup = ExpectImpl.builder.feature
|
||||
val featureAssertionGroup = assertionBuilder.feature
|
||||
.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 10)
|
||||
.withAssertions(featureAssertions)
|
||||
.build()
|
||||
@@ -107,12 +106,12 @@ abstract class TextIndentBasedAssertionGroupFormatterSpec<T : AssertionGroupType
|
||||
context("in an ${AssertionGroup::class.simpleName} of type ${ListAssertionGroupType::class.simpleName}") {
|
||||
val listAssertions = listOf(
|
||||
indentAssertionGroup,
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
20
|
||||
).build()
|
||||
)
|
||||
val listAssertionGroup = ExpectImpl.builder.list
|
||||
val listAssertionGroup = assertionBuilder.list
|
||||
.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 10)
|
||||
.withAssertions(listAssertions)
|
||||
.build()
|
||||
@@ -136,12 +135,12 @@ abstract class TextIndentBasedAssertionGroupFormatterSpec<T : AssertionGroupType
|
||||
it("puts the assertions one under the other and indents as the other assertions but adds an extra indent to the second assertion including a prefix") {
|
||||
val listAssertions2 = listOf(
|
||||
listAssertionGroup,
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.EXPECT_THROWN,
|
||||
30
|
||||
).build()
|
||||
)
|
||||
val listAssertionGroup2 = ExpectImpl.builder.list
|
||||
val listAssertionGroup2 = assertionBuilder.list
|
||||
.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 5)
|
||||
.withAssertions(listAssertions2)
|
||||
.build()
|
||||
@@ -165,16 +164,16 @@ abstract class TextIndentBasedAssertionGroupFormatterSpec<T : AssertionGroupType
|
||||
|
||||
context("in another ${AssertionGroup::class.simpleName} of type object: ${assertionGroupTypeClass::class.simpleName}") {
|
||||
val indentAssertions = listOf(
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
21
|
||||
).build(), indentAssertionGroup,
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
20
|
||||
).build()
|
||||
)
|
||||
val indentAssertionGroup2 = ExpectImpl.builder.customType(anonymousAssertionGroupType)
|
||||
val indentAssertionGroup2 = assertionBuilder.customType(anonymousAssertionGroupType)
|
||||
.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 10)
|
||||
.withAssertions(indentAssertions)
|
||||
.build()
|
||||
|
||||
@@ -4,15 +4,14 @@ import ch.tutteli.atrium.api.fluent.en_GB.isEmpty
|
||||
import ch.tutteli.atrium.api.fluent.en_GB.toBe
|
||||
import ch.tutteli.atrium.api.verbs.internal.expect
|
||||
import ch.tutteli.atrium.assertions.*
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.core.coreFactory
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatter
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatterController
|
||||
import ch.tutteli.atrium.reporting.translating.Untranslatable
|
||||
import ch.tutteli.atrium.specs.lineSeperator
|
||||
import ch.tutteli.atrium.specs.AssertionVerb
|
||||
import ch.tutteli.atrium.specs.describeFunTemplate
|
||||
import org.spekframework.spek2.Spek
|
||||
import ch.tutteli.atrium.specs.lineSeperator
|
||||
import org.spekframework.spek2.style.specification.Suite
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@@ -44,7 +43,7 @@ abstract class TextSummaryAssertionGroupFormatterSpec(
|
||||
val testee = testeeFactory(bulletPoints, coreFactory.newAssertionFormatterController())
|
||||
it("returns true for an ${AssertionGroup::class.simpleName} with type object: ${SummaryAssertionGroupType::class.simpleName}") {
|
||||
val result = testee.canFormat(
|
||||
ExpectImpl.builder.customType(object : SummaryAssertionGroupType {})
|
||||
assertionBuilder.customType(object : SummaryAssertionGroupType {})
|
||||
.withDescriptionAndRepresentation(Untranslatable.EMPTY, 1)
|
||||
.withAssertions(listOf())
|
||||
.build()
|
||||
@@ -57,16 +56,16 @@ abstract class TextSummaryAssertionGroupFormatterSpec(
|
||||
describeFun(AssertionFormatter::formatGroup.name) {
|
||||
context("${AssertionGroup::class.simpleName} of ${DefaultSummaryAssertionGroupType::class.simpleName} and does not hold") {
|
||||
val assertions = listOf(
|
||||
ExpectImpl.builder.descriptive.holding.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.holding.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
1
|
||||
).build(),
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.EXPECT_THROWN,
|
||||
2
|
||||
).build()
|
||||
)
|
||||
val summaryAssertionGroup = ExpectImpl.builder.customType(DefaultSummaryAssertionGroupType)
|
||||
val summaryAssertionGroup = assertionBuilder.customType(DefaultSummaryAssertionGroupType)
|
||||
.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 22)
|
||||
.withAssertions(assertions)
|
||||
.build()
|
||||
@@ -90,12 +89,12 @@ abstract class TextSummaryAssertionGroupFormatterSpec(
|
||||
it("puts the assertions one under the other and indents the second one including a prefix") {
|
||||
val featureAssertions = listOf(
|
||||
summaryAssertionGroup,
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
20
|
||||
).build()
|
||||
)
|
||||
val featureAssertionGroup = ExpectImpl.builder.feature
|
||||
val featureAssertionGroup = assertionBuilder.feature
|
||||
.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 10)
|
||||
.withAssertions(featureAssertions)
|
||||
.build()
|
||||
@@ -117,12 +116,12 @@ abstract class TextSummaryAssertionGroupFormatterSpec(
|
||||
context("in an ${AssertionGroup::class.simpleName} of type ${ListAssertionGroupType::class.simpleName}") {
|
||||
val listAssertions = listOf(
|
||||
summaryAssertionGroup,
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
20
|
||||
).build()
|
||||
)
|
||||
val listAssertionGroup = ExpectImpl.builder.list
|
||||
val listAssertionGroup = assertionBuilder.list
|
||||
.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 10)
|
||||
.withAssertions(listAssertions)
|
||||
.build()
|
||||
@@ -146,12 +145,12 @@ abstract class TextSummaryAssertionGroupFormatterSpec(
|
||||
it("puts the assertions one under the other and indents as the other assertions but adds an extra indent to the second assertion including a prefix") {
|
||||
val listAssertions2 = listOf(
|
||||
listAssertionGroup,
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.EXPECT_THROWN,
|
||||
30
|
||||
).build()
|
||||
)
|
||||
val listAssertionGroup2 = ExpectImpl.builder.list
|
||||
val listAssertionGroup2 = assertionBuilder.list
|
||||
.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 5)
|
||||
.withAssertions(listAssertions2)
|
||||
.build()
|
||||
@@ -175,26 +174,26 @@ abstract class TextSummaryAssertionGroupFormatterSpec(
|
||||
|
||||
context("in another ${AssertionGroup::class.simpleName} of type object: ${SummaryAssertionGroupType::class.simpleName}") {
|
||||
val summaryAssertions = listOf(
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
21
|
||||
).build(),
|
||||
summaryAssertionGroup,
|
||||
ExpectImpl.builder.summary
|
||||
assertionBuilder.summary
|
||||
.withDescription(AssertionVerb.EXPECT_THROWN)
|
||||
.withAssertions(
|
||||
ExpectImpl.builder.descriptive.holding.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.holding.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
30
|
||||
).build(),
|
||||
ExpectImpl.builder.descriptive.holding.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.holding.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
31
|
||||
).build()
|
||||
)
|
||||
.build()
|
||||
)
|
||||
val summaryAssertionGroup2 = ExpectImpl.builder.customType(object : SummaryAssertionGroupType {})
|
||||
val summaryAssertionGroup2 = assertionBuilder.customType(object : SummaryAssertionGroupType {})
|
||||
.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 10)
|
||||
.withAssertions(summaryAssertions)
|
||||
.build()
|
||||
@@ -221,12 +220,12 @@ abstract class TextSummaryAssertionGroupFormatterSpec(
|
||||
context("${AssertionGroup::class.simpleName} of ${DefaultSummaryAssertionGroupType::class.simpleName} and group holds") {
|
||||
it("The group is not formatted since it is filtered out") {
|
||||
val assertions = listOf(
|
||||
ExpectImpl.builder.descriptive.holding.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.holding.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
1
|
||||
).build()
|
||||
)
|
||||
val summaryAssertionGroup = ExpectImpl.builder.summary
|
||||
val summaryAssertionGroup = assertionBuilder.summary
|
||||
.withDescription(AssertionVerb.ASSERT)
|
||||
.withAssertions(assertions)
|
||||
.build()
|
||||
|
||||
@@ -2,7 +2,7 @@ package ch.tutteli.atrium.specs.reporting
|
||||
|
||||
import ch.tutteli.atrium.assertions.BulletPointIdentifier
|
||||
import ch.tutteli.atrium.assertions.WarningAssertionGroupType
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatter
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatterController
|
||||
import kotlin.reflect.KClass
|
||||
@@ -14,6 +14,6 @@ abstract class TextWarningAssertionGroupFormatterSpec(
|
||||
testeeFactory,
|
||||
WarningAssertionGroupType::class,
|
||||
WarningAssertionGroupType,
|
||||
{ ExpectImpl.builder.explanatoryGroup.withWarningType.withAssertions(it).build() },
|
||||
{ assertionBuilder.explanatoryGroup.withWarningType.withAssertions(it).build() },
|
||||
describePrefix
|
||||
)
|
||||
|
||||
@@ -6,17 +6,17 @@ import ch.tutteli.atrium.assertions.AssertionGroup
|
||||
import ch.tutteli.atrium.assertions.BulletPointIdentifier
|
||||
import ch.tutteli.atrium.assertions.DefaultListAssertionGroupType
|
||||
import ch.tutteli.atrium.assertions.FeatureAssertionGroupType
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.core.coreFactory
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatter
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatterController
|
||||
import ch.tutteli.atrium.reporting.ObjectFormatter
|
||||
import ch.tutteli.atrium.reporting.translating.Translator
|
||||
import ch.tutteli.atrium.reporting.translating.Untranslatable
|
||||
import ch.tutteli.atrium.reporting.translating.UsingDefaultTranslator
|
||||
import ch.tutteli.atrium.specs.lineSeperator
|
||||
import ch.tutteli.atrium.specs.AssertionVerb
|
||||
import ch.tutteli.atrium.specs.describeFunTemplate
|
||||
import ch.tutteli.atrium.specs.lineSeperator
|
||||
import ch.tutteli.atrium.specs.reporting.translating.TranslatorIntSpec
|
||||
import org.spekframework.spek2.style.specification.Suite
|
||||
import kotlin.reflect.KClass
|
||||
@@ -30,10 +30,10 @@ abstract class TextFeatureAssertionGroupFormatterSpec(
|
||||
describeFunTemplate(describePrefix, funName, body = body)
|
||||
|
||||
val assertions = listOf(
|
||||
ExpectImpl.builder.descriptive.holding.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 1).build(),
|
||||
ExpectImpl.builder.descriptive.holding.withDescriptionAndRepresentation(AssertionVerb.EXPECT_THROWN, 2).build()
|
||||
assertionBuilder.descriptive.holding.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 1).build(),
|
||||
assertionBuilder.descriptive.holding.withDescriptionAndRepresentation(AssertionVerb.EXPECT_THROWN, 2).build()
|
||||
)
|
||||
val featureAssertionGroup = ExpectImpl.builder
|
||||
val featureAssertionGroup = assertionBuilder
|
||||
.customType(object : FeatureAssertionGroupType {})
|
||||
.withDescriptionAndRepresentation(TranslatorIntSpec.TestTranslatable.PLACEHOLDER, 2)
|
||||
.withAssertions(assertions)
|
||||
@@ -46,7 +46,7 @@ abstract class TextFeatureAssertionGroupFormatterSpec(
|
||||
)
|
||||
it("returns true for an ${AssertionGroup::class.simpleName} with type object: ${FeatureAssertionGroupType::class.simpleName}") {
|
||||
val result = testee.canFormat(
|
||||
ExpectImpl.builder
|
||||
assertionBuilder
|
||||
.customType(object : FeatureAssertionGroupType {})
|
||||
.withDescriptionAndRepresentation(Untranslatable.EMPTY, 1)
|
||||
.withAssertions(listOf())
|
||||
@@ -99,12 +99,12 @@ abstract class TextFeatureAssertionGroupFormatterSpec(
|
||||
context("in an ${AssertionGroup::class.simpleName} of type ${DefaultListAssertionGroupType::class.simpleName}") {
|
||||
val listAssertions = listOf(
|
||||
featureAssertionGroup,
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
20
|
||||
).build()
|
||||
)
|
||||
val listAssertionGroup = ExpectImpl.builder.list
|
||||
val listAssertionGroup = assertionBuilder.list
|
||||
.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 10)
|
||||
.withAssertions(listAssertions)
|
||||
.build()
|
||||
@@ -127,16 +127,16 @@ abstract class TextFeatureAssertionGroupFormatterSpec(
|
||||
context("in another ${AssertionGroup::class.simpleName} of type ${FeatureAssertionGroupType::class.simpleName}") {
|
||||
it("indents the group ${AssertionGroup::description.name} as well as the ${AssertionGroup::assertions.name} accordingly - uses `$featureBulletPoint` for each assertion and `$listBulletPoint` for each element in the list group") {
|
||||
val featureAssertions = listOf(
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
5
|
||||
).build(), featureAssertionGroup,
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
30
|
||||
).build()
|
||||
)
|
||||
val featureAssertionGroup2 = ExpectImpl.builder
|
||||
val featureAssertionGroup2 = assertionBuilder
|
||||
.customType(object : FeatureAssertionGroupType {})
|
||||
.withDescriptionAndRepresentation(AssertionVerb.EXPECT_THROWN, 10)
|
||||
.withAssertions(featureAssertions)
|
||||
|
||||
@@ -3,17 +3,17 @@ package ch.tutteli.atrium.specs.reporting
|
||||
import ch.tutteli.atrium.api.fluent.en_GB.toBe
|
||||
import ch.tutteli.atrium.api.verbs.internal.expect
|
||||
import ch.tutteli.atrium.assertions.*
|
||||
import ch.tutteli.atrium.assertions.builders.assertionBuilder
|
||||
import ch.tutteli.atrium.core.coreFactory
|
||||
import ch.tutteli.atrium.domain.builders.ExpectImpl
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatter
|
||||
import ch.tutteli.atrium.reporting.AssertionFormatterController
|
||||
import ch.tutteli.atrium.reporting.ObjectFormatter
|
||||
import ch.tutteli.atrium.reporting.translating.Translator
|
||||
import ch.tutteli.atrium.reporting.translating.Untranslatable
|
||||
import ch.tutteli.atrium.reporting.translating.UsingDefaultTranslator
|
||||
import ch.tutteli.atrium.specs.lineSeperator
|
||||
import ch.tutteli.atrium.specs.AssertionVerb
|
||||
import ch.tutteli.atrium.specs.describeFunTemplate
|
||||
import ch.tutteli.atrium.specs.lineSeperator
|
||||
import ch.tutteli.atrium.specs.reporting.translating.TranslatorIntSpec
|
||||
import org.spekframework.spek2.style.specification.Suite
|
||||
import kotlin.reflect.KClass
|
||||
@@ -30,10 +30,10 @@ abstract class TextListBasedAssertionGroupFormatterSpec<T : AssertionGroupType>(
|
||||
describeFunTemplate(describePrefix, funName, body = body)
|
||||
|
||||
val assertions = listOf(
|
||||
ExpectImpl.builder.descriptive.holding.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 1).build(),
|
||||
ExpectImpl.builder.descriptive.holding.withDescriptionAndRepresentation(AssertionVerb.EXPECT_THROWN, 2).build()
|
||||
assertionBuilder.descriptive.holding.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 1).build(),
|
||||
assertionBuilder.descriptive.holding.withDescriptionAndRepresentation(AssertionVerb.EXPECT_THROWN, 2).build()
|
||||
)
|
||||
val listAssertionGroup = ExpectImpl.builder.customType(anonymousAssertionGroupType)
|
||||
val listAssertionGroup = assertionBuilder.customType(anonymousAssertionGroupType)
|
||||
.withDescriptionAndRepresentation(TranslatorIntSpec.TestTranslatable.PLACEHOLDER, 2)
|
||||
.withAssertions(assertions)
|
||||
.build()
|
||||
@@ -45,7 +45,7 @@ abstract class TextListBasedAssertionGroupFormatterSpec<T : AssertionGroupType>(
|
||||
)
|
||||
it("returns true for an ${AssertionGroup::class.simpleName} with type object: ${assertionGroupClass.simpleName}") {
|
||||
val result = testee.canFormat(
|
||||
ExpectImpl.builder.customType(anonymousAssertionGroupType)
|
||||
assertionBuilder.customType(anonymousAssertionGroupType)
|
||||
.withDescriptionAndRepresentation(Untranslatable.EMPTY, 1)
|
||||
.withAssertions(listOf())
|
||||
.build()
|
||||
@@ -109,12 +109,12 @@ abstract class TextListBasedAssertionGroupFormatterSpec<T : AssertionGroupType>(
|
||||
context("in an ${AssertionGroup::class.simpleName} of type ${DefaultFeatureAssertionGroupType::class.simpleName}") {
|
||||
val featureAssertions = listOf(
|
||||
listAssertionGroup,
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
20
|
||||
).build()
|
||||
)
|
||||
val featureAssertionGroup = ExpectImpl.builder.feature
|
||||
val featureAssertionGroup = assertionBuilder.feature
|
||||
.withDescriptionAndRepresentation(AssertionVerb.ASSERT, 10)
|
||||
.withAssertions(featureAssertions)
|
||||
.build()
|
||||
@@ -136,16 +136,16 @@ abstract class TextListBasedAssertionGroupFormatterSpec<T : AssertionGroupType>(
|
||||
context("in another ${AssertionGroup::class.simpleName} of type ${assertionGroupType::class.simpleName}") {
|
||||
it("indents the group ${AssertionGroup::description.name} as well as the ${AssertionGroup::assertions.name} accordingly - uses `$listBulletPoint` for each assertion and `$bulletPoint` for each element in the list group") {
|
||||
val listAssertions = listOf(
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
5
|
||||
).build(), featureAssertionGroup,
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
30
|
||||
).build()
|
||||
)
|
||||
val listAssertionGroup2 = ExpectImpl.builder
|
||||
val listAssertionGroup2 = assertionBuilder
|
||||
.customType(assertionGroupType)
|
||||
.withDescriptionAndRepresentation(AssertionVerb.EXPECT_THROWN, 10)
|
||||
.withAssertions(listAssertions)
|
||||
@@ -172,17 +172,17 @@ abstract class TextListBasedAssertionGroupFormatterSpec<T : AssertionGroupType>(
|
||||
context("in another ${AssertionGroup::class.simpleName} of type ${assertionGroupClass.simpleName}") {
|
||||
it("indents the group ${AssertionGroup::description.name} as well as the ${AssertionGroup::assertions.name} accordingly - uses `$listBulletPoint` for each assertion and `$bulletPoint` for each element in the list group") {
|
||||
val listAssertions = listOf(
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
5
|
||||
).build(),
|
||||
listAssertionGroup,
|
||||
ExpectImpl.builder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
assertionBuilder.descriptive.failing.withDescriptionAndRepresentation(
|
||||
AssertionVerb.ASSERT,
|
||||
30
|
||||
).build()
|
||||
)
|
||||
val listAssertionGroup2 = ExpectImpl.builder.customType(anonymousAssertionGroupType)
|
||||
val listAssertionGroup2 = assertionBuilder.customType(anonymousAssertionGroupType)
|
||||
.withDescriptionAndRepresentation(AssertionVerb.EXPECT_THROWN, 10)
|
||||
.withAssertions(listAssertions)
|
||||
.build()
|
||||
|
||||
Reference in New Issue
Block a user