Class ComparatorBasedComparisonStrategy

java.lang.Object
org.assertj.core.internal.AbstractComparisonStrategy
org.assertj.core.internal.ComparatorBasedComparisonStrategy
All Implemented Interfaces:
ComparisonStrategy

public class ComparatorBasedComparisonStrategy extends AbstractComparisonStrategy
Implements ComparisonStrategy contract with a comparison strategy based on a Comparator.
  • Field Details

    • NOT_EQUAL

      static final int NOT_EQUAL
      See Also:
    • comparator

      private final Comparator comparator
    • comparatorDescription

      private final String comparatorDescription
  • Constructor Details

    • ComparatorBasedComparisonStrategy

      public ComparatorBasedComparisonStrategy(Comparator comparator)
      Creates a new ComparatorBasedComparisonStrategy specifying the comparison strategy with given comparator.
      Parameters:
      comparator - the comparison strategy to use.
    • ComparatorBasedComparisonStrategy

      public ComparatorBasedComparisonStrategy(Comparator comparator, String comparatorDescription)
      Creates a new ComparatorBasedComparisonStrategy specifying the comparison strategy with given comparator and comparator description
      Parameters:
      comparator - the comparison strategy to use.
      comparatorDescription - the comparator description to use in assertion messages.
    • ComparatorBasedComparisonStrategy

      public ComparatorBasedComparisonStrategy(DescribableComparator<?> comparator)
      Creates a new ComparatorBasedComparisonStrategy specifying the comparison strategy with given DescribableComparator.
      Parameters:
      comparator - the comparator to use in the comparison strategy.
  • Method Details

    • iterableContains

      public boolean iterableContains(Iterable<?> iterable, Object value)
      Returns true if given Iterable contains given value according to comparator, false otherwise.
      If given Iterable is null or empty, return false.
      Parameters:
      iterable - the Iterable to search value in
      value - the object to look for in given Iterable
      Returns:
      true if given Iterable contains given value according to comparator, false otherwise.
    • iterableRemoves

      public void iterableRemoves(Iterable<?> iterable, Object value)
      Look for given value in given Iterable according to the Comparator, if value is found it is removed from it.
      Does nothing if given Iterable is null (meaning no exception thrown).
      Parameters:
      iterable - the Iterable we want remove value from
      value - object to remove from given Iterable
    • iterablesRemoveFirst

      public void iterablesRemoveFirst(Iterable<?> iterable, Object value)
      Description copied from interface: ComparisonStrategy
      Removes the first value in iterable that matches the value according to the implemented comparison strategy. If given Iterable is null, does nothing.
      Parameters:
      iterable - the Iterable we want remove value from
      value - object to remove from given Iterable
    • areEqual

      public boolean areEqual(Object actual, Object other)
      Returns true if actual and other are equal according to comparator, false otherwise.
      Handles the cases where one of the parameter is null so that internal comparator does not have too.
      Parameters:
      actual - the object to compare to other
      other - the object to compare to actual
      Returns:
      true if actual and other are equal according to comparator, false otherwise.
    • duplicatesFrom

      public Iterable<?> duplicatesFrom(Iterable<?> iterable)
      Returns any duplicate elements from the given Iterable according to comparator.
      Specified by:
      duplicatesFrom in interface ComparisonStrategy
      Overrides:
      duplicatesFrom in class AbstractComparisonStrategy
      Parameters:
      iterable - the given Iterable we want to extract duplicate elements.
      Returns:
      an Iterable containing the duplicate elements of the given one. If no duplicates are found, an empty Iterable is returned.
    • newSetUsingComparisonStrategy

      protected Set<Object> newSetUsingComparisonStrategy()
      Description copied from class: AbstractComparisonStrategy
      Returns a Set honoring the comparison strategy used.
      Specified by:
      newSetUsingComparisonStrategy in class AbstractComparisonStrategy
      Returns:
      a Set honoring the comparison strategy used.
    • asText

      public String asText()
      Description copied from interface: ComparisonStrategy
      Used in error messages when a custom comparison strategy was used to compare values.

      For example ComparatorBasedComparisonStrategy returns:

      "when comparing values using " + toString()
      Returns:
      the comparison strategy description used in error messages.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getComparator

      public Comparator<?> getComparator()
    • getComparatorDescription

      public String getComparatorDescription()
    • stringStartsWith

      public boolean stringStartsWith(String string, String prefix)
      Description copied from interface: ComparisonStrategy
      Returns true if string starts with prefix according to the implemented comparison strategy, false otherwise.
      Parameters:
      string - the String we want to look starting prefix
      prefix - the prefix String to look for at string's start
      Returns:
      true if string starts with prefix according to the implemented comparison strategy, false otherwise.
    • stringEndsWith

      public boolean stringEndsWith(String string, String suffix)
      Description copied from interface: ComparisonStrategy
      Returns true if string ends with suffix according to the implemented comparison strategy, false otherwise.
      Parameters:
      string - the String we want to look starting suffix
      suffix - the suffix String to look for at string's end
      Returns:
      true if string ends with suffix according to the implemented comparison strategy, false otherwise.
    • stringContains

      public boolean stringContains(String string, String sequence)
      Description copied from interface: ComparisonStrategy
      Returns true if given string contains given sequence according to the implemented comparison strategy, false otherwise.
      Parameters:
      string - the string to search sequence in (must not be null)
      sequence - the String to look for in given string
      Returns:
      true if given string contains given sequence according to the implemented comparison strategy, false otherwise.
    • isGreaterThan

      public boolean isGreaterThan(Object actual, Object other)
      Description copied from interface: ComparisonStrategy
      Returns true if actual is greater than other, false otherwise.
      Parameters:
      actual - the object to compare to other
      other - the object to compare to actual
      Returns:
      true if actual is greater than other, false otherwise.
    • isStandard

      public boolean isStandard()
      Description copied from interface: ComparisonStrategy
      Return true if comparison strategy is default/standard, false otherwise
      Specified by:
      isStandard in interface ComparisonStrategy
      Overrides:
      isStandard in class AbstractComparisonStrategy
      Returns:
      true if comparison strategy is default/standard, false otherwise