Class AbstractLocalTimeAssert<SELF extends AbstractLocalTimeAssert<SELF>>

java.lang.Object
org.assertj.core.api.AbstractAssert<SELF,TEMPORAL>
org.assertj.core.api.AbstractTemporalAssert<SELF,LocalTime>
org.assertj.core.api.AbstractLocalTimeAssert<SELF>
All Implemented Interfaces:
Assert<SELF,LocalTime>, Descriptable<SELF>, ExtensionPoints<SELF,LocalTime>
Direct Known Subclasses:
LocalTimeAssert

public abstract class AbstractLocalTimeAssert<SELF extends AbstractLocalTimeAssert<SELF>> extends AbstractTemporalAssert<SELF,LocalTime>
Assertions for LocalTime type from new Date & Time API introduced in Java 8.
  • Field Details

  • Constructor Details

    • AbstractLocalTimeAssert

      protected AbstractLocalTimeAssert(LocalTime actual, Class<?> selfType)
      Parameters:
      selfType - the "self type"
      actual - the actual value to verify
  • Method Details

    • isBefore

      public SELF isBefore(LocalTime other)
      Verifies that the actual LocalTime is strictly before the given one.

      Example :

       assertThat(parse("12:00:00")).isBefore(parse("13:00:00"));
      Parameters:
      other - the given LocalTime.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      IllegalArgumentException - if other LocalTime is null.
      AssertionError - if the actual LocalTime is not strictly before the given one.
    • isBefore

      public SELF isBefore(String localTimeAsString)
      Same assertion as isBefore(LocalTime) but the LocalTime is built from given String, which must follow ISO LocalTime format to allow calling LocalTime.parse(CharSequence) method.

      Example :

       // you can express expected LocalTime as String (AssertJ taking care of the conversion)
       assertThat(parse("12:59")).isBefore("13:00");
      Parameters:
      localTimeAsString - String representing a LocalTime.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      IllegalArgumentException - if given String is null or can't be converted to a LocalTime.
      AssertionError - if the actual LocalTime is not strictly before the LocalTime built from given String.
    • isBeforeOrEqualTo

      public SELF isBeforeOrEqualTo(LocalTime other)
      Verifies that the actual LocalTime is before or equals to the given one.

      Example :

       assertThat(parse("12:00:00")).isBeforeOrEqualTo(parse("12:00:00"))
                                              .isBeforeOrEqualTo(parse("12:00:01"));
      Parameters:
      other - the given LocalTime.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      IllegalArgumentException - if other LocalTime is null.
      AssertionError - if the actual LocalTime is not before or equals to the given one.
    • isBeforeOrEqualTo

      public SELF isBeforeOrEqualTo(String localTimeAsString)
      Same assertion as isBeforeOrEqualTo(LocalTime) but the LocalTime is built from given String, which must follow ISO LocalTime format to allow calling LocalTime.parse(CharSequence) method.

      Example :

       // you can express expected LocalTime as String (AssertJ taking care of the conversion)
       assertThat(parse("12:00:00")).isBeforeOrEqualTo("12:00:00")
                                    .isBeforeOrEqualTo("13:00:00");
      Parameters:
      localTimeAsString - String representing a LocalTime.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      IllegalArgumentException - if given String is null or can't be converted to a LocalTime.
      AssertionError - if the actual LocalTime is not before or equals to the LocalTime built from given String.
    • isAfterOrEqualTo

      public SELF isAfterOrEqualTo(LocalTime other)
      Verifies that the actual LocalTime is after or equals to the given one.

      Example :

       assertThat(parse("13:00:00")).isAfterOrEqualTo(parse("13:00:00"))
                                    .isAfterOrEqualTo(parse("12:00:00"));
      Parameters:
      other - the given LocalTime.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      IllegalArgumentException - if other LocalTime is null.
      AssertionError - if the actual LocalTime is not after or equals to the given one.
    • isAfterOrEqualTo

      public SELF isAfterOrEqualTo(String localTimeAsString)
      Same assertion as isAfterOrEqualTo(LocalTime) but the LocalTime is built from given String, which must follow ISO LocalTime format to allow calling LocalTime.parse(CharSequence) method.

      Example :

       // you can express expected LocalTime as String (AssertJ taking care of the conversion)
       assertThat(parse("13:00:00")).isAfterOrEqualTo("13:00:00")
                                    .isAfterOrEqualTo("12:00:00");
      Parameters:
      localTimeAsString - String representing a LocalTime.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      IllegalArgumentException - if given String is null or can't be converted to a LocalTime.
      AssertionError - if the actual LocalTime is not after or equals to the LocalTime built from given String.
    • isAfter

      public SELF isAfter(LocalTime other)
      Verifies that the actual LocalTime is strictly after the given one.

      Example :

       assertThat(parse("13:00:00")).isAfter(parse("12:00:00"));
      Parameters:
      other - the given LocalTime.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      IllegalArgumentException - if other LocalTime is null.
      AssertionError - if the actual LocalTime is not strictly after the given one.
    • isAfter

      public SELF isAfter(String localTimeAsString)
      Same assertion as isAfter(LocalTime) but the LocalTime is built from given a String that must follow ISO LocalTime format to allow calling LocalTime.parse(CharSequence) method.

      Example :

       // you can express expected LocalTime as String (AssertJ taking care of the conversion)
       assertThat(parse("13:00:00")).isAfter("12:00:00");
      Parameters:
      localTimeAsString - String representing a LocalTime.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      IllegalArgumentException - if given String is null or can't be converted to a LocalTime.
      AssertionError - if the actual LocalTime is not strictly after the LocalTime built from given String.
    • isEqualTo

      public SELF isEqualTo(String localTimeAsString)
      Same assertion as AbstractAssert.isEqualTo(Object) (where Object is expected to be LocalTime) but here you pass LocalTime String representation that must follow ISO LocalTime format to allow calling LocalTime.parse(CharSequence) method.

      Example :

       // you can express expected LocalTime as String (AssertJ taking care of the conversion)
       assertThat(parse("13:00:00")).isEqualTo("13:00:00");
      Parameters:
      localTimeAsString - String representing a LocalTime.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      IllegalArgumentException - if given String is null or can't be converted to a LocalTime.
      AssertionError - if the actual LocalTime is not equal to the LocalTime built from given String.
    • isNotEqualTo

      public SELF isNotEqualTo(String localTimeAsString)
      Same assertion as AbstractAssert.isNotEqualTo(Object) (where Object is expected to be LocalTime) but here you pass LocalTime String representation that must follow ISO LocalTime format to allow calling LocalTime.parse(CharSequence) method.

      Example :

       // you can express expected LocalTime as String (AssertJ taking care of the conversion)
       assertThat(parse("13:00:00")).isNotEqualTo("12:00:00");
      Parameters:
      localTimeAsString - String representing a LocalTime.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      IllegalArgumentException - if given String is null or can't be converted to a LocalTime.
      AssertionError - if the actual LocalTime is equal to the LocalTime built from given String.
    • isIn

      public SELF isIn(String... localTimesAsString)
      Same assertion as AbstractAssert.isIn(Object...) (where Objects are expected to be LocalTime) but here you pass LocalTime String representations that must follow ISO LocalTime format to allow calling LocalTime.parse(CharSequence) method.

      Example :

       // you can express expected LocalTimes as String (AssertJ taking care of the conversion)
       assertThat(parse("13:00:00")).isIn("12:00:00", "13:00:00");
      Parameters:
      localTimesAsString - String array representing LocalTimes.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      IllegalArgumentException - if given String is null or can't be converted to a LocalTime.
      AssertionError - if the actual LocalTime is not in the LocalTimes built from given Strings.
    • isNotIn

      public SELF isNotIn(String... localTimesAsString)
      Same assertion as AbstractAssert.isNotIn(Object...) (where Objects are expected to be LocalTime) but here you pass LocalTime String representations that must follow ISO LocalTime format to allow calling LocalTime.parse(CharSequence) method.

      Example :

       // you can express expected LocalTimes as String (AssertJ taking care of the conversion)
       assertThat(parse("13:00:00")).isNotIn("12:00:00", "14:00:00");
      Parameters:
      localTimesAsString - Array of String representing a LocalTime.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      IllegalArgumentException - if given String is null or can't be converted to a LocalTime.
      AssertionError - if the actual LocalTime is in the LocalTimes built from given Strings.
    • isEqualToIgnoringNanos

      public SELF isEqualToIgnoringNanos(LocalTime other)
      Verifies that actual and given LocalTime have same hour, minute and second fields (nanosecond fields are ignored in comparison).

      Assertion can fail with localTimes in same chronological nanosecond time window, e.g :

      23:00:01.000000000 and 23:00:00.999999999.

      Assertion fails as second fields differ even if time difference is only 1ns.

      Code example :

       // successful assertions
       LocalTime localTime1 = LocalTime.of(12, 0, 1, 0);
       LocalTime localTime2 = LocalTime.of(12, 0, 1, 456);
       assertThat(localTime1).isEqualToIgnoringNanos(localTime2);
      
       // failing assertions (even if time difference is only 1ns)
       LocalTime localTimeA = LocalTime.of(12, 0, 1, 0);
       LocalTime localTimeB = LocalTime.of(12, 0, 0, 999999999);
       assertThat(localTimeA).isEqualToIgnoringNanos(localTimeB);
      Parameters:
      other - the given LocalTime.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      IllegalArgumentException - if other LocalTime is null.
      AssertionError - if the actual LocalTime is are not equal with nanoseconds ignored.
    • isEqualToIgnoringSeconds

      public SELF isEqualToIgnoringSeconds(LocalTime other)
      Verifies that actual and given LocalTime have same hour and minute fields (second and nanosecond fields are ignored in comparison).

      Assertion can fail with LocalTimes in same chronological second time window, e.g :

      23:01:00.000 and 23:00:59.000.

      Assertion fails as minute fields differ even if time difference is only 1s.

      Code example :

       // successful assertions
       LocalTime localTime1 = LocalTime.of(23, 50, 0, 0);
       LocalTime localTime2 = LocalTime.of(23, 50, 10, 456);
       assertThat(localTime1).isEqualToIgnoringSeconds(localTime2);
      
       // failing assertions (even if time difference is only 1ms)
       LocalTime localTimeA = LocalTime.of(23, 50, 00, 000);
       LocalTime localTimeB = LocalTime.of(23, 49, 59, 999);
       assertThat(localTimeA).isEqualToIgnoringSeconds(localTimeB);
      Parameters:
      other - the given LocalTime.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      IllegalArgumentException - if other LocalTime is null.
      AssertionError - if the actual LocalTime is are not equal with second and nanosecond fields ignored.
    • hasSameHourAs

      public SELF hasSameHourAs(LocalTime other)
      Verifies that actual and given LocalTime have same hour fields (minute, second and nanosecond fields are ignored in comparison).

      Assertion can fail with localTimes in same chronological second time window, e.g :

      01:00:00.000 and 00:59:59.000.

      Time difference is only 1s but hour fields differ.

      Code example :

       // successful assertions
       LocalTime localTime1 = LocalTime.of(23, 50, 0, 0);
       LocalTime localTime2 = LocalTime.of(23, 00, 2, 7);
       assertThat(localTime1).hasSameHourAs(localTime2);
      
       // failing assertions (even if time difference is only 1ms)
       LocalTime localTimeA = LocalTime.of(01, 00, 00, 000);
       LocalTime localTimeB = LocalTime.of(00, 59, 59, 999);
       assertThat(localTimeA).hasSameHourAs(localTimeB);
      Parameters:
      other - the given LocalTime.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      IllegalArgumentException - if other LocalTime is null.
      AssertionError - if the actual LocalTime is are not equal ignoring minute, second and nanosecond fields.
    • isBetween

      public SELF isBetween(LocalTime startInclusive, LocalTime endInclusive)
      Verifies that the actual LocalTime is in the [start, end] period (start and end included).

      Example:

       LocalTime localTime = LocalTime.now();
      
       // assertions succeed:
       assertThat(localTime).isBetween(localTime.minusSeconds(1), localTime.plusSeconds(1))
                            .isBetween(localTime, localTime.plusSeconds(1))
                            .isBetween(localTime.minusSeconds(1), localTime)
                            .isBetween(localTime, localTime);
      
       // assertions fail:
       assertThat(localTime).isBetween(localTime.minusSeconds(10), localTime.minusSeconds(1));
       assertThat(localTime).isBetween(localTime.plusSeconds(1), localTime.plusSeconds(10));
      Parameters:
      startInclusive - the start value (inclusive), expected not to be null.
      endInclusive - the end value (inclusive), expected not to be null.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual value is null.
      NullPointerException - if start value is null.
      NullPointerException - if end value is null.
      AssertionError - if the actual value is not in [start, end] period.
      Since:
      3.7.1
    • isBetween

      public SELF isBetween(String startInclusive, String endInclusive)
      Same assertion as isBetween(LocalTime, LocalTime) but here you pass LocalTime String representations which must follow ISO LocalTime format to allow calling LocalTime.parse(CharSequence) method.

      Example:

       LocalTime oneAm = LocalTime.parse("01:00:00");
      
       // assertions succeed:
       assertThat(oneAm).isBetween("00:59:59", "01:00:01")
                        .isBetween("01:00:00", "01:00:01")
                        .isBetween("00:59:59", "01:00:00")
                        .isBetween("01:00:00", "01:00:00");
      
       // assertion fails:
       assertThat(oneAm).isBetween("00:59:00", "00:59:59");
      Parameters:
      startInclusive - the start value (inclusive), expected not to be null.
      endInclusive - the end value (inclusive), expected not to be null.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual value is null.
      NullPointerException - if start value is null.
      NullPointerException - if end value is null.
      DateTimeParseException - if any of the given String can't be converted to a LocalTime.
      AssertionError - if the actual value is not in [start, end] period.
      Since:
      3.7.1
    • isStrictlyBetween

      public SELF isStrictlyBetween(LocalTime startExclusive, LocalTime endExclusive)
      Verifies that the actual LocalTime is in the ]start, end[ period (start and end excluded).

      Example:

       LocalTime localTime = LocalTime.now();
      
       // assertion succeeds:
       assertThat(localTime).isStrictlyBetween(localTime.minusSeconds(1), localTime.plusSeconds(1));
      
       // assertions fail:
       assertThat(localTime).isStrictlyBetween(localTime.minusSeconds(10), localTime.minusSeconds(1));
       assertThat(localTime).isStrictlyBetween(localTime.plusSeconds(1), localTime.plusSeconds(10));
       assertThat(localTime).isStrictlyBetween(localTime, localTime.plusSeconds(1));
       assertThat(localTime).isStrictlyBetween(localTime.minusSeconds(1), localTime);
      Parameters:
      startExclusive - the start value (exclusive), expected not to be null.
      endExclusive - the end value (exclusive), expected not to be null.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual value is null.
      NullPointerException - if start value is null.
      NullPointerException - if end value is null.
      AssertionError - if the actual value is not in ]start, end[ period.
      Since:
      3.7.1
    • isStrictlyBetween

      public SELF isStrictlyBetween(String startExclusive, String endExclusive)
      Same assertion as isStrictlyBetween(LocalTime, LocalTime) but here you pass LocalTime String representations which must follow ISO LocalTime format to allow calling LocalTime.parse(CharSequence) method.

      Example:

       LocalTime oneAm = LocalTime.parse("01:00:00");
      
       // assertion succeeds:
       assertThat(oneAm).isStrictlyBetween("00:59:59", "01:00:01");
      
       // assertion fails:
       assertThat(oneAm).isStrictlyBetween("00:59:00", "00:59:59");
       assertThat(oneAm).isStrictlyBetween("01:00:00", "01:00:01");
       assertThat(oneAm).isStrictlyBetween("00:59:59", "01:00:00");
      Parameters:
      startExclusive - the start value (exclusive), expected not to be null.
      endExclusive - the end value (exclusive), expected not to be null.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual value is null.
      NullPointerException - if start value is null.
      NullPointerException - if end value is null.
      DateTimeParseException - if any of the given String can't be converted to a LocalTime.
      AssertionError - if the actual value is not in ]start, end[ period.
      Since:
      3.7.1
    • hasHour

      public SELF hasHour(int hour)
      Verifies that actual LocalTime is in the given hour.

      Example:

       // Assertion succeeds:
       assertThat(LocalTime.of(23, 59, 59)).hasHour(23);
      
       // Assertion fails:
       assertThat(LocalTime.of(23, 59, 59)).hasHour(22);
      Parameters:
      hour - the given hour.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      AssertionError - if the actual LocalTime is not in the given hour.
      Since:
      3.23.0
    • hasMinute

      public SELF hasMinute(int minute)
      Verifies that actual LocalTime is in the given minute.

      Example:

       // Assertion succeeds:
       assertThat(LocalTime.of(23, 59, 0)).hasMinute(59);
      
       // Assertion fails:
       assertThat(LocalTime.of(23, 59, 0)).hasMinute(58);
      Parameters:
      minute - the given minute.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      AssertionError - if the actual LocalTime is not in the given minute.
      Since:
      3.23.0
    • hasSecond

      public SELF hasSecond(int second)
      Verifies that actual LocalTime is in the given second.

      Example:

       // Assertion succeeds:
       assertThat(LocalTime.of(23, 00, 59)).hasSecond(59);
      
       // Assertion fails:
       assertThat(LocalTime.of(23, 00, 59)).hasSecond(58);
      Parameters:
      second - the given second.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      AssertionError - if the actual LocalTime is not in the given second.
      Since:
      3.23.0
    • hasNano

      public SELF hasNano(int nano)
      Verifies that actual LocalTime is in the given nano.

      Example:

       // Assertion succeeds:
       assertThat(LocalTime.of(23, 59, 59, 59)).hasNano(59);
      
       // Assertion fails:
       assertThat(LocalTime.of(23, 59, 59, 59)).hasNano(58);
      Parameters:
      nano - the given nano.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual LocalTime is null.
      AssertionError - if the actual LocalTime is not in the given second.
      Since:
      3.23.0
    • parse

      protected LocalTime parse(String localTimeAsString)
      Obtains an instance of TEMPORAL from a string representation in ISO date format.
      Specified by:
      parse in class AbstractTemporalAssert<SELF extends AbstractLocalTimeAssert<SELF>,LocalTime>
      Parameters:
      localTimeAsString - the string to parse, not null
      Returns:
      the parsed TEMPORAL, not null