Skip to content

Path assertions and ZonedDateTime as string

Compare
Choose a tag to compare
@robstoll robstoll released this 14 Nov 13:00
v0.14.0
a5abcde

Table of Content

New Features

All APIs

  • #461 Sequence.asList => thanks to @Valefant for the implementation
  • #462 Iterable.asList => thanks to @Valefant for the implementation
  • #172 Iterable.containsNoDuplicates => thanks to @frikit for the implementation
  • #480 accept date as string in ISO 8601 format for ChronoLocalDate => thanks to @Valefant for implementation
  • #482 accept date and time as string in ISO 8601 for ChronoZonedDateTime => thanks to @Valefant for implementation
  • #591 Path.isExecutable => thanks to @jGleitz for the implementation
  • #629 Path.isAbsolute => thanks to @jakubriegel for the implementation
  • #630 Path.isRelative => thanks to @jakubriegel for the implementation
  • #590 Path.hasDirectoryEntry => thanks to @jgrgt for the first implementation (api-fluent) and @jGleitz for the completion (generalise to logic and add to infix)

api-fluent-en_GB

  • no fluent only additions this time

api-infx-en_GB

  • no infix only additions this time

Domain / Core

  • we transition away from atrium-domain-... to atrium-logic, getting rid of ServiceLoader and other changes. Some parts of domain were already deprecated (see below)

Fixes

  • #631 Atrium stops working for JS with Kotlin 1.4 => thanks to @chadmarchand for the fix

Improvements

  • #628 Report Evaluation Result After notToThrow(), catch exceptions in feature extraction
  • #329 fuse FeatureAssertionSpec with AssertionSpec => thanks to @tarczynskitomek for the first few adjustments
  • #349 configure dependabot to update samples => thanks to @uzilan for the implementation
  • #400 check if Js isIntance bug is really fixed in Kotlin => thanks to @Valefant for the time and simplification
  • #409 limit representation to 10'000 chars => thanks to @Valefant for the implementation
  • #600 make generateLogic more readable with named matches => thanks to @jgrgt for the suggestion and implementation
  • #637 update gradle wrapper => thanks to @fejd
  • #473 update js samples to use the new org.jetbrains.kotlin.js gradle plugin => thanks to @chadmarchand for most of the work
  • #643 add samples for anyAssertions => thanks to @jdornieden
  • #644 add samples for arrayAssertions => thanks to @jdornieden
  • #646 add samples for collectionAssertions => thanks to @Gosunet
  • #647 add samples for comparableAssertions => thanks to @Gosunet
  • #649 add samples for floatingPointAssertions => thanks to @BimuratMukhtar
  • #652 add samples for iteratorAssertions => thanks to @Gosunet
  • #653 add samples for listAssertions => thanks to @BimuratMukhtar
  • #656 add samples for pairAssertions => thanks to @BimuratMukhtar

Breaking Changes

Planned (previously deprecated or announced)

  • we are no longer using the builders defined in the API for CharSequence/Iterable.contains but the new ones from atrium-logic. This constitutes a binary backward compatibility break. Please re-compile, it is still source compatible.

Unplanned

  • we are no longer using the builders defined in atrium-domain-builders for a subject change and feature extraction but the once from atrium-logic. This constitutes a binary backward compatibility break. Please re-compile, it is still source compatible.

Deprecation

  • the helper function asExpect to turn an Assert<T> into an Expect<T> => time to move on 😉
  • most of the module atrium-domain-builders -> use atrium-logic instead, see migration hints further down below. Inter alia:
    • SubjectChanger and SubjectChangerBuilder
    • FeatureExtractor and FeatureExtractorBuilder
    • toVarArg, iterableLikeToIterable
    • nullable, nullableContainer, nullableKeyMap etc.
    • mapArguments

Breaking Changes with 0.15.0

  • might be we have to break compatibility when we deprecate core-robstoll and core-robstoll-lib
  • might also be, that we have to break compatibility when we move ExpectBuilder and ExpectOptions from domain-builders to atrium-logic
  • we will break binary compatibility when we move Group from atrium-domain-builders to atrium-logic (or to the individual APIs)
  • we will break binary compatibility when we move VarArgHelper from atrium-domain-builders to atrium-logic

Breaking Changes with 1.0.0

See atrium-roadmap -> Milestone 1.0.0

Migrating deprecated functionality

We don't provide ReplaceWith to transition from atrium-domain-robstoll/-robstoll-lib to atrium-logic in all cases. We don't expect that there are enough users using types of those modules directly. Let us know if you do and have troubles migrating.

In case you should use:

  • mapArguments, then search for import ch.tutteli.atrium.domain.builders.utils.mapArguments and replace it with import ch.tutteli.atrium.logic.utils.mapArguments
  • nullable, then search for import ch.tutteli.atrium.domain.builders.utils.nullable and replace with import ch.tutteli.atrium.logic.utils.nullable
  • subExpect, then search for subExpect and replace with expectLambda and search for import ch.tutteli.atrium.domain.builders.utils.subExpect and replace with import ch.tutteli.atrium.logic.utils.expectLambda

Some further search&replace patterns for assertion writers, in case you use:

  • CharSequenceOrNumberOrChar or CharSequenceOrNumberOrChar, search for import ch.tutteli.atrium.domain.creating.typeutils and replace with import ch.tutteli.atrium.logic.creating.typeutils

In case you already started using the experimental atrium-logic module, then you might run into the problem that:

  • getExpectOfFeature() does not exist => replace with transform()
  • addToInitial does not exist => replace with collectAndAppend
  • we removed genericSubjectBasedFeature and genericFeature from FeatureAssertions -> use either manualFeature or FeatureExtractor/FeatureExtractorBuilder instead

Please have a look at the older release-notes in case you don't migrate from 0.12.0 or 0.13.0

Sponsors

We would like to thank Tegonal GmbH for sponsoring Support and PR-Review time.

Are you are using Atrium at work?

Please consider to support the project as well by:

  • sponsoring robstoll (Author and main contributor)
  • share your assertion functions with others
  • report bugs
  • provide feedback in case you miss a feature