Class DualValue
- java.lang.Object
-
- org.assertj.core.api.recursive.comparison.DualValue
-
public final class DualValue extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.lang.Object
actual
(package private) static java.lang.Class<?>[]
DEFAULT_ORDERED_COLLECTION_TYPES
(package private) java.lang.Object
expected
(package private) FieldLocation
fieldLocation
private int
hashCode
-
Constructor Summary
Constructors Constructor Description DualValue(java.util.List<java.lang.String> path, java.lang.Object actual, java.lang.Object expected)
DualValue(FieldLocation fieldLocation, java.lang.Object actualFieldValue, java.lang.Object expectedFieldValue)
-
Method Summary
-
-
-
Field Detail
-
DEFAULT_ORDERED_COLLECTION_TYPES
static final java.lang.Class<?>[] DEFAULT_ORDERED_COLLECTION_TYPES
-
fieldLocation
final FieldLocation fieldLocation
-
actual
final java.lang.Object actual
-
expected
final java.lang.Object expected
-
hashCode
private final int hashCode
-
-
Constructor Detail
-
DualValue
public DualValue(java.util.List<java.lang.String> path, java.lang.Object actual, java.lang.Object expected)
-
DualValue
public DualValue(FieldLocation fieldLocation, java.lang.Object actualFieldValue, java.lang.Object expectedFieldValue)
-
-
Method Detail
-
rootDualValue
static DualValue rootDualValue(java.lang.Object actual, java.lang.Object expected)
-
computeHashCode
private int computeHashCode()
-
equals
public boolean equals(java.lang.Object other)
- Overrides:
equals
in classjava.lang.Object
-
sameValues
public boolean sameValues(DualValue dualValue)
If we want to detect potential cycles in the recursive comparison, we need to check if an object has already been visited.We must ignore the
FieldLocation
otherwise we would not find cycles. Let's take for example aPerson
class with a neighbor field. We have a cycle between the person instance and its neighbor instance, ex: Jack has Tim as neighbor and vice versa, when we navigate to Tim we find that its neighbor is Jack, we have already visited it but the location is different, Jack is both the root object and root.neighbor.neighbor (Jack=root, Tim=root.neighbor and Tim.neighbor=Jack)- Parameters:
dualValue
- theDualValue
to compare- Returns:
- true if dual values references the same values (ignoring the field location)
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getDecomposedPath
public java.util.List<java.lang.String> getDecomposedPath()
-
getConcatenatedPath
public java.lang.String getConcatenatedPath()
-
getFieldName
public java.lang.String getFieldName()
-
isActualJavaType
public boolean isActualJavaType()
-
isExpectedJavaType
public boolean isExpectedJavaType()
-
hasSomeJavaTypeValue
public boolean hasSomeJavaTypeValue()
-
isJavaType
private static boolean isJavaType(java.lang.Object o)
-
isExpectedFieldAnArray
public boolean isExpectedFieldAnArray()
-
isActualFieldAnArray
public boolean isActualFieldAnArray()
-
isActualFieldAnOptional
public boolean isActualFieldAnOptional()
-
isActualFieldAnOptionalInt
public boolean isActualFieldAnOptionalInt()
-
isActualFieldAnOptionalLong
public boolean isActualFieldAnOptionalLong()
-
isActualFieldAnOptionalDouble
public boolean isActualFieldAnOptionalDouble()
-
isActualFieldAnEmptyOptionalOfAnyType
public boolean isActualFieldAnEmptyOptionalOfAnyType()
-
isActualFieldAnEmptyOptional
private boolean isActualFieldAnEmptyOptional()
-
isActualFieldAnEmptyOptionalInt
private boolean isActualFieldAnEmptyOptionalInt()
-
isActualFieldAnEmptyOptionalLong
private boolean isActualFieldAnEmptyOptionalLong()
-
isActualFieldAnEmptyOptionalDouble
private boolean isActualFieldAnEmptyOptionalDouble()
-
isExpectedFieldAnOptional
public boolean isExpectedFieldAnOptional()
-
isExpectedFieldAnAtomicReference
public boolean isExpectedFieldAnAtomicReference()
-
isActualFieldAnAtomicReference
public boolean isActualFieldAnAtomicReference()
-
isExpectedFieldAnAtomicReferenceArray
public boolean isExpectedFieldAnAtomicReferenceArray()
-
isActualFieldAnAtomicReferenceArray
public boolean isActualFieldAnAtomicReferenceArray()
-
isExpectedFieldAnAtomicInteger
public boolean isExpectedFieldAnAtomicInteger()
-
isActualFieldAnAtomicInteger
public boolean isActualFieldAnAtomicInteger()
-
isExpectedFieldAnAtomicIntegerArray
public boolean isExpectedFieldAnAtomicIntegerArray()
-
isActualFieldAnAtomicIntegerArray
public boolean isActualFieldAnAtomicIntegerArray()
-
isExpectedFieldAnAtomicLong
public boolean isExpectedFieldAnAtomicLong()
-
isActualFieldAnAtomicLong
public boolean isActualFieldAnAtomicLong()
-
isExpectedFieldAnAtomicLongArray
public boolean isExpectedFieldAnAtomicLongArray()
-
isActualFieldAnAtomicLongArray
public boolean isActualFieldAnAtomicLongArray()
-
isExpectedFieldAnAtomicBoolean
public boolean isExpectedFieldAnAtomicBoolean()
-
isActualFieldAnAtomicBoolean
public boolean isActualFieldAnAtomicBoolean()
-
isActualFieldAMap
public boolean isActualFieldAMap()
-
isExpectedFieldAMap
public boolean isExpectedFieldAMap()
-
isActualFieldASortedMap
public boolean isActualFieldASortedMap()
-
isExpectedFieldASortedMap
public boolean isExpectedFieldASortedMap()
-
isActualFieldAnOrderedCollection
public boolean isActualFieldAnOrderedCollection()
-
isExpectedFieldAnOrderedCollection
public boolean isExpectedFieldAnOrderedCollection()
-
isActualFieldAnIterable
public boolean isActualFieldAnIterable()
-
isExpectedFieldAnIterable
public boolean isExpectedFieldAnIterable()
-
isAnIterable
private static boolean isAnIterable(java.lang.Object value)
-
isAJsonValueNode
private static boolean isAJsonValueNode(java.lang.Object value)
-
isAnObjectNode
private static boolean isAnObjectNode(java.lang.Object value)
-
isAnOrderedCollection
private static boolean isAnOrderedCollection(java.lang.Object value)
-
isExpectedAnEnum
public boolean isExpectedAnEnum()
-
isActualAnEnum
public boolean isActualAnEnum()
-
hasNoContainerValues
public boolean hasNoContainerValues()
-
isExpectedAContainer
public boolean isExpectedAContainer()
-
hasNoNullValues
public boolean hasNoNullValues()
-
hasPotentialCyclingValues
public boolean hasPotentialCyclingValues()
-
isPotentialCyclingValue
private static boolean isPotentialCyclingValue(java.lang.Object object)
-
-