Class StandardComparisonStrategy

    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean areEqual​(java.lang.Object actual, java.lang.Object other)
      Returns true if the arguments are deeply equal to each other, false otherwise.
      private void checkArgumentIsComparable​(java.lang.Object actual)  
      java.lang.Iterable<?> duplicatesFrom​(java.lang.Iterable<?> iterable)
      Returns any duplicate elements from the given collection according to Objects.deepEquals(Object, Object) comparison strategy.
      static StandardComparisonStrategy instance()
      Returns the singleton instance of this class.
      boolean isGreaterThan​(java.lang.Object actual, java.lang.Object other)
      Returns true if actual is greater than other, false otherwise.
      boolean isLessThan​(java.lang.Object actual, java.lang.Object other)
      Returns true if actual is less than other, false otherwise.
      boolean isStandard()
      Return true if comparison strategy is default/standard, false otherwise
      boolean iterableContains​(java.lang.Iterable<?> iterable, java.lang.Object value)
      Returns true if given Iterable contains given value based on Objects.deepEquals(Object, Object), false otherwise.
      If given Iterable is null, return false.
      void iterableRemoves​(java.lang.Iterable<?> iterable, java.lang.Object value)
      Look for given value in given Iterable according to the implemented comparison strategy, if value is found it is removed from it.
      If given Iterable is null, does nothing.
      void iterablesRemoveFirst​(java.lang.Iterable<?> iterable, java.lang.Object value)
      Removes the first value in iterable that matches the value according to the implemented comparison strategy.
      protected java.util.Set<java.lang.Object> newSetUsingComparisonStrategy()
      Returns a Set honoring the comparison strategy used.
      boolean stringContains​(java.lang.String string, java.lang.String sequence)
      Returns true if given string contains given sequence according to the implemented comparison strategy, false otherwise.
      boolean stringEndsWith​(java.lang.String string, java.lang.String suffix)
      Returns true if string ends with suffix according to the implemented comparison strategy, false otherwise.
      boolean stringStartsWith​(java.lang.String string, java.lang.String prefix)
      Returns true if string starts with prefix according to the implemented comparison strategy, false otherwise.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • StandardComparisonStrategy

        protected StandardComparisonStrategy()
        Creates a new StandardComparisonStrategy, comparison strategy being based on Objects.deepEquals(Object, Object).
    • Method Detail

      • instance

        public static StandardComparisonStrategy instance()
        Returns the singleton instance of this class.
        Returns:
        the singleton instance of this class.
      • areEqual

        public boolean areEqual​(java.lang.Object actual,
                                java.lang.Object other)
        Returns true if the arguments are deeply equal to each other, false otherwise.

        It mimics the behavior of Objects.deepEquals(Object, Object), but without performing a reference check between the two arguments. According to deepEquals javadoc, the reference check should be delegated to the equals method of the first argument, but this is not happening. Bug JDK-8196069 also mentions this gap.

        Parameters:
        actual - the object to compare to other
        other - the object to compare to actual
        Returns:
        true if the arguments are deeply equal to each other, false otherwise
        See Also:
        JDK-8196069
      • iterableContains

        public boolean iterableContains​(java.lang.Iterable<?> iterable,
                                        java.lang.Object value)
        Returns true if given Iterable contains given value based on Objects.deepEquals(Object, Object), false otherwise.
        If given Iterable is null, 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 based on Objects.deepEquals(Object, Object), false otherwise.
      • iterableRemoves

        public void iterableRemoves​(java.lang.Iterable<?> iterable,
                                    java.lang.Object value)
        Look for given value in given Iterable according to the implemented comparison strategy, if value is found it is removed from it.
        If given Iterable is null, does nothing.
        Parameters:
        iterable - the Iterable we want remove value from
        value - object to remove from given Iterable
      • iterablesRemoveFirst

        public void iterablesRemoveFirst​(java.lang.Iterable<?> iterable,
                                         java.lang.Object value)
        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
      • duplicatesFrom

        public java.lang.Iterable<?> duplicatesFrom​(java.lang.Iterable<?> iterable)
        Returns any duplicate elements from the given collection according to Objects.deepEquals(Object, Object) comparison strategy.
        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.
      • stringStartsWith

        public boolean stringStartsWith​(java.lang.String string,
                                        java.lang.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​(java.lang.String string,
                                      java.lang.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​(java.lang.String string,
                                      java.lang.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​(java.lang.Object actual,
                                     java.lang.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.
      • isLessThan

        public boolean isLessThan​(java.lang.Object actual,
                                  java.lang.Object other)
        Description copied from interface: ComparisonStrategy
        Returns true if actual is less than other, false otherwise.
        Specified by:
        isLessThan in interface ComparisonStrategy
        Overrides:
        isLessThan in class AbstractComparisonStrategy
        Parameters:
        actual - the object to compare to other
        other - the object to compare to actual
        Returns:
        true if actual is less than other, false otherwise.
      • checkArgumentIsComparable

        private void checkArgumentIsComparable​(java.lang.Object actual)