Skip to content

MapLike.contains

Compare
Choose a tag to compare
@robstoll robstoll released this 23 Dec 15:16
v0.15.0
12667ac

Table of Content

New Features

All APIs

  • #173 MapLike.contains including sophisticated builder (also for inOrder.only)
  • #68 MapLike.containsOnly
  • #733 MapLike.size
  • #660 add Expect.because to document the reason for an assertion => thanks to @Valefant for most of the implementation and @jGleitz for the proposition and discussion.

api-fluent-en_GB

  • no fluent only additions this time

api-infx-en_GB

  • no infix only additions this time

Logic / Core

  • #711 turn MapAssertions into MapLikeAssertions

Fixes

  • #719 fix link to examples in README

Improvements

  • #717 reword entry in reporting of Iterable.contains to element
  • #720 don't show the feature value in an explanatory assertion group
  • #736 don't show the down-cast in toBeNullIfNullGivenElse
  • #738 use the info bullet point for unexpected Exceptions
  • #739 use info bullet point for notice in BigDecimal.isEqualIncludingScale
  • add link to output of examples in README
  • list third-party extensions in README => create a pull request if you are a maintainer of an extension, we happily add yours as well.

Breaking Changes

Planned (previously deprecated or announced)

  • none this time

Unplanned

  • none this time

Deprecation

  • AnyAssertions.toBeNull on the logic level; will be removed with 0.16.0 => use toBe(null)
  • DescriptionMapAssertion; will be removed with 0.16.0 => use DescriptionMapLikeAssertion

Deprecations with 0.16.0

  • we will transform the api-fluent to a consistent to + infinitive syntax and will therefore deprecate most of the assertion functions, see robstoll/atrium-roadmap#93 for more information.

Breaking Changes with 0.16.0

  • we will remove all deprecated APIs (you need to migrate to api-fluent or api-infix if you want to use this version or onwards, see older release notes for migration hints and scripts).
  • we will also remove deprecated stuff on the domain/core level where they only remained due to the deprecated APIs.
  • remove AnyAssertions.toBeNullIfNullGivenElse which expects a kClass => use the one which does not
  • 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
  • we might skip the process of deprecating stuff on the logic level. We will rename ...Assertions to ...Expectations
  • we will rename files on the API level which is a binary break
  • might be that we need to change package names which is a binary and source backward compatibility break in case we switch to the new Kotlin MPP plugin with 0.16.0
  • we will drop support for Java 9 and 10 (we will build 0.16.0 with jdk11) => update to jdk 11 or stick with jdk8
  • we will no longer check if compatible with jdk 12 or 13 => use jdk11 (or jdk14 but we will move to jdk15 as soon as jacoco supports it)

Breaking Changes with 1.0.0

See atrium-roadmap -> Milestone 1.0.0

Migrating deprecated functionality

We provide @Deprecated annotations with ReplaceWith -> use the suggestions as advertised.

Please have a look at older release-notes in case you don't migrate from 0.12.0, 0.13.0 or 0.14.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