7
0
forked from pool/assertj-core
Files
assertj-core/assertj-core.changes

291 lines
13 KiB
Plaintext
Raw Permalink Normal View History

2026-01-27 15:21:59 +01:00
-------------------------------------------------------------------
Tue Jan 27 13:52:15 UTC 2026 - Fridrich Strba <fstrba@suse.com>
- Upgrade to version 3.27.7
* Security
+ Fix XXE vulnerability in isXmlEqualTo assertion
(bsc#1257293, CVE-2026-24400)
* Breaking Changes
+ Delegate OptionalDouble value comparison to Double.compare
in hasValue assertion
+ Replace assertThat(Temporal) with
assertThatTemporal(Temporal)
* Deprecated
+ Deprecate ObjectAssertFactory in favor of
Assertions.assertThat(Object)
+ Deprecate AssertionErrorFactory in favor of
AssertionErrorCreator
+ Deprecate catchThrowableOfType(ThrowingCallable, Class) in
favor of catchThrowableOfType(Class, ThrowingCallable)
+ Deprecate assertThat(Iterable, AssertFactory),
+ Deprecate ClassBasedNavigableIterableAssert and
ClassBasedNavigableListAssert
+ Deprecate usingComparatorForFields and remove deprecated
assertions from usingComparatorForType documentation
+ Deprecate hasCauseReference(Throwable) from Throwable
assertions
+ Deprecate org.assertj.core.annotations.Beta in favor of
org.assertj.core.annotation.Beta
+ Deprecate org.assertj.core.util.CanIgnoreReturnValue in favor
of org.assertj.core.annotation.CanIgnoreReturnValue
+ Deprecate org.assertj.core.util.CheckReturnValue in favor of
org.assertj.core.annotation.CheckReturnValue
+ Deprecate XmlStringPrettyFormatter with no replacement
* New Features
+ Support multiple AfterAssertionErrorCollected callbacks
+ Add InstanceOfAssertFactory for Set instances
+ Add doesNotContainKey and doesNotContainKeys to Guava Multimap
assertions
+ Add assertions for JDK YearMonth type
+ Add TemporalAssert type
+ Add ignoringFieldsOfTypesMatchingRegexes
+ Add fail(Throwable) and fail() variants
+ Add isPrivate to Class assertions
+ Add doesNot[Start/End]WithWhitespace methods to CharSequence
assertions
+ Add createAssert(ValueProvider) to AssertFactory
+ Add values() navigation method to AbstractMapAssert
+ Add bytes()/bytes(Charset)/bytes(String) navigation methods to
AbstractStringAssert
+ Add doesNotThrowAnyExceptionExcept to AbstractThrowableAssert
+ Add hasPermittedSubclasses to Class assertions
+ Add isUnmodifiable to Iterator assertions
+ Add actual() to access the object under test
+ Add isCompletedWithValueMatchingWithin to CompletableFuture
assertions
+ Add completesExceptionallyWithin to CompletableFuture
assertions
+ Add inBinary to CharSequence assertions
+ Support for Assertions.byLessThan(Duration) and
Assertions.within(Duration)
+ Add standard representation for CharSequence
+ Add predicate descriptions overloads to anyMatch and noneMatch
+ Add doesNotMatch(Predicate)
+ Add usingEquals accepting a BiPredicate and an optional
description to provide a custom comparison in assertions
+ Add isNotEmpty to Table assertions
* Bug Fixes
+ Preserve original order of elements when returning duplicates
on doesNotHaveDuplicates
+ Make isNotEqualTo(boolean) pass when actual is null
+ Fix isEqualTo comparison of Timestamp instances with Instant
+ Fix Instant conversion with Date assertions
+ Rebuild default date formats used to parse strings as dates
when default timezone or lenient flag changes
+ Fix Javadoc rendering on
FactoryBasedNavigableListAssert::assertThat
+ Allow ComparingNormalizedFields instances to be reused across
different assertions
+ Recursive assertion hasNoNullFields throws NPE with fields of
anonymous and local types
+ Fix incorrect mutation of actualElementsGroupedByHashCode in
recursive comparison
+ Recursive comparison ignoringFields not working properly with
maps
+ Custom representation ignored when describing expected items
not in the actual list
+ hasFieldOrPropertyWithValue swallows exceptions thrown by
getters, and reports non-existent property instead
+ satisfies() with nested assertions obscures stack trace
+ Recursive comparison fails if ignored fields are not found in
expected
+ Fix missing introspection for record accessors
+ Honor assertion description in asString()
+ Avoid InputStream manipulation when mark / reset are supported
+ NPE with custom RecursiveComparisonConfiguration on
usingRecursiveFieldByFieldElementComparator
+ Restore support for null-valued maps when ignoring fields
+ Fix StandardRepresentation regression for unquoted strings
+ Fix thread-safety in AbstractDateAssert
+ Add missing export for org.assertj.core.annotation
+ Navigation to assertj-core or guava types from assertj-guava
Javadoc site has unnecessary header
* Improvements
+ Avoid duplicating maven-javadoc-plugin configuration and CSS
files
+ Favor additionalOption entries in maven-javadoc-plugin
+ Fix typo in Javadoc
+ Improve AssertFactory Javadoc
+ Add Throwable stack trace to ShouldHaveCauseExactlyInstance
+ Fix typo
+ Add Throwable stack trace to ShouldHaveCauseInstance
+ Implement boolean assertions directly in AbstractBooleanAssert
and remove Booleans internal class
+ Remove stack trace elements triggered by AssertJ in addition
to AssertJ elements
+ Report all failing conditions when using
satisfies(allOf(Condition...))
+ Fix Unicode escapes in inUnicode() Javadoc
+ Show error differences if values were compared with equals in
recursive comparison
+ Add throwable stacktrace to ShouldNotContainCharSequence
+ Remove unused code and other minor cleanup
+ Simplify comparison strategy isLessThan and
isLessThanOrEqualTo in AbstractComparisonStrategy
+ Update AbstractCharSequenceAssert.java reference
+ Include stack trace of internal errors in all/any satisfy
assertions
+ Declare license using SPDX identifier
+ Add Class info to class loading strategy failures
+ Migrate to the Central Publisher Portal, enable snapshot
publishing
+ Annotate fail methods with custom @Contract
+ ByteBuddy in AssertJ 3.27.4 not compatible with Java 25
-------------------------------------------------------------------
Mon Sep 23 05:32:04 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Use SOURCE_DATE_EPOCH for reproducible builds
-------------------------------------------------------------------
Fri May 24 05:36:38 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Require in OBS junit5-minimal to avoid provider choice
-------------------------------------------------------------------
Tue Apr 30 16:00:07 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Upgrade to version 3.25.3
* Deprecations:
+ Deprecate the following date/time related assertions in favor
of isCloseTo:
- isEqualToIgnoringHours
- isEqualToIgnoringMinutes
- isEqualToIgnoringSeconds
- isEqualToIgnoringMillis
- isEqualToIgnoringNanos
- isInSameHourAs
- isInSameMinuteAs
- isInSameSecondAs
+ Deprecate asList in favor of asInstanceOf
* New Features:
+ Add Descriptable#describedAs(Supplier<String>)
+ Add isInThePast and isInTheFuture to LocalDate assertions
+ Add isInThePast and isInTheFuture to the missing Java 8
date/time types
+ Add isRecord and isNotRecord to Class assertions
+ Add hasNullValue and doesNotHaveNullValue to
AtomicReferenceAssert
+ Add asBoolean|Byte|Short|Int|Long|Float|Double to String
assertions
+ Add hasRecordComponents to Class assertions
+ Add getters for field path in ComparisonDifference
+ Allow to compare enum and string fields in the recursive
comparison
+ Provide value when assertThatThrownBy / thenThrownBy fail
+ Add isSealed and isNotSealed to Class assertions
+ Add assertThatCharSequence to disambiguate Groovy's GString
+ Change the way the properties are collected using the
Class.getMethods() API instead of iterating the class
hierarchy using Class.declaredMethods()
+ Add default constructor for RecursiveComparator
+ Add isPrimitive and isNotPrimitive to Class assertions
+ Add anyOf(ThrowingConsumer...) and allOf(ThrowingConsumer...)
+ Show the array/iterable under test in the assertion error
message when it is not empty but should have been
* Bug Fixes:
+ Compare Java types from javax and com.sun by their equals
method in recursive comparison
+ The recursive comparison comparingOnlyFields did not treat
array/iterable elements as root objects
+ Fixes a bug when failing assertions on DirectoryStream types
+ Fix handling of null containers in the recursive assertion
+ Handle null values in map entry sets when formatting
+ Fix NPE when expected and actual field values are null
+ Fix NPE on anyMatch when actual contains null and
Objects::isNull is used as predicate
+ Fix misleading subsequence failure messages in string
assertions
+ Do not ignore nested fields of types specified in
comparingOnlyFieldsOfTypes
+ containsExactly does not work properly with maps not using
equals to compare keys
+ Escape percentage in shouldContainExactly error message
+ Fix recursive comparison of ignored types in unordered
collection
+ Revert "Provide value when assertThatThrownBy/thenThrownBy
fail"
+ Revert "fix: containsExactly does not work properly with maps
not using equals to compare keys"
+ Fix unresolvable Javadoc stylesheet URLs, simplify
configuration
+ Fix missing configuration for MatcherAssert soft assertions
+ Make deprecation notice visible in AbstractAssert#asList
+ Recursive comparison uses equals on root object when
useOverriddenEquals is enabled
+ satisfiesExactlyInAnyOrder fails if actual overrides equals
+ Avoid calling actual.hashCode() and expected.hashCode() in
DualValue
+ Recursive comparison checks for existence of fields in types
that parameterize nested unordered iterables
+ Lock maven-clean-plugin version for all modules
+ Fix a performance regression in the recursive comparison
related to FieldLocation
+ Don't fail when the recursive comparison checks compared
fields in collection elements
* Improvements
+ Add Spotless
+ Use Bnd feature to write resolved bndrun files to output
folder
+ Add Throwable stack trace to ShouldHaveClause
+ Avoid copy of any Collection instance in
Iterables::assertContains
+ Add Throwable stack trace to ShouldHaveRootCauseInstance and
ShouldHaveRootCauseExactlyInstance
+ Add missing description to nested condition
+ Make nestable condition factory accept conditions on super
types
+ Add varargs overload to Assert::hasString and
Assert::doesNotHaveString
+ Improve recursive comparison performance by caching field and
field names result
+ Document performance cost of ignoring collection order
+ Track visited values and their comparison differences so that
they can be reused
+ Use hash code for compareUnorderedIterables to improve
performance in some common cases
+ Improve recursive comparison error message regarding equals
methods used for JDK types
+ Format large arrays as strings
+ Remove null check as isArray already performs it
+ Fix PrimitiveArralList/TransformlingList test file names
+ Add exception for usages of isEqualTo and isNotEqualTo on
assertions
+ Add check for missing fields in recursive comparison where
specific fields are requested for comparison
+ Improve efficiency of iterable string conversion
+ Add more tests for usingRecursiveComparison
+ Checks that compared fields exist before running the recursive
comparison
+ Remove maven-surefire-plugin duplicate version
+ Remove Maven default goal
+ Add dependency graph workflow
+ Normalize non-breaking spaces like regular white spaces
+ AbstractOffsetDateTimeAssert::isBetween parameter names should
use inclusive, not exclusive
+ Invoke isNotNull in returns and doesNotReturn
+ Cache node names in ComparingFields, ComparingProperties
+ Cache node names in ComparingNormalizedFields
+ Use simpler syntax in
DefaultRecursiveComparisonIntrospectionStrategy
.getChildrenNodeNamesOf
+ Update to Contributor Covenant Code of Conduct v2.1
+ Correct contains assertion Javadoc to reflect method behavior
in case actual is not empty and the group of values to look
for is
+ Fix Javadoc typos
+ Improving null-safety of isEqualToNormalizingNewlines
+ Speed up for BinaryDiff performance
+ Upgrade workflows to Java 21
+ Apply flatten-maven-plugin to assertj-core and assertj-guava
-------------------------------------------------------------------
Wed May 1 13:09:58 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Ensure neutrality of descriptions.
-------------------------------------------------------------------
Tue Apr 30 11:33:34 UTC 2019 - Fridrich Strba <fstrba@suse.com>
- Initial packaging of assertj-core 3.8.0