Class DefaultRecursiveComparisonIntrospectionStrategy

java.lang.Object
org.assertj.core.api.recursive.comparison.DefaultRecursiveComparisonIntrospectionStrategy
All Implemented Interfaces:
RecursiveComparisonIntrospectionStrategy

public class DefaultRecursiveComparisonIntrospectionStrategy extends Object implements RecursiveComparisonIntrospectionStrategy
Introspects all fields (including inherited ones) and get their value according to PropertyOrFieldSupport.getSimpleValue(String, Object).

There is a bit of discrepancy in this strategy as it looks for fields to compare but gets the value in this order: property first, then field and finally tries as map value if the instance is a map.

  • Constructor Details

    • DefaultRecursiveComparisonIntrospectionStrategy

      public DefaultRecursiveComparisonIntrospectionStrategy()
  • Method Details

    • getChildrenNodeNamesOf

      public Set<String> getChildrenNodeNamesOf(Object node)
      Description copied from interface: RecursiveComparisonIntrospectionStrategy
      Returns the names of the children nodes of the given object that will be used in the recursive comparison.

      A typical implementation could look at the object fields or properties.

      Specified by:
      getChildrenNodeNamesOf in interface RecursiveComparisonIntrospectionStrategy
      Parameters:
      node - the object to get the child nodes from
      Returns:
      the names of the children nodes of the given object
    • getChildNodeValue

      public Object getChildNodeValue(String childNodeName, Object instance)
      Description copied from interface: RecursiveComparisonIntrospectionStrategy
      Returns the value of the given object child node, the child node being identified by the childNodeName parameter.

      It's the implementor choice how to resolve the child node value, a typical implementation consists of considering childNodeName to be a field name and then use introspection to read the field value, but if the object is a Map the implementation could consider the child node name to be a key of the map.

      Specified by:
      getChildNodeValue in interface RecursiveComparisonIntrospectionStrategy
      Parameters:
      childNodeName - the child node identifier
      instance - the object to read the child node from
      Returns:
      the object child node value