Class MapSubject
- Direct Known Subclasses:
MapWithProtoValuesSubject
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classA partially specified check in which the actual values (i.e. the values of theMapunder test) are compared to expected values using aCorrespondence.Nested classes/interfaces inherited from class com.google.common.truth.Subject
Subject.Factory<SubjectT extends Subject, ActualT> -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedMapSubject(FailureMetadata metadata, @Nullable Map<?, ?> actual) The constructor is for use by subclasses only. -
Method Summary
Modifier and TypeMethodDescriptionfinal <A extends @Nullable Object, E extends @Nullable Object>
MapSubject.UsingCorrespondence<A, E> comparingValuesUsing(Correspondence<? super A, ? super E> correspondence) Starts a method chain for a check in which the actual values (i.e. the values of theMapunder test) are compared to expected values using the givenCorrespondence.final Orderedfinal OrderedcontainsAtLeastEntriesIn(@Nullable Map<?, ?> expected) Checks that the actual map contains at least the given set of entries in the given map.final voidcontainsEntry(@Nullable Object key, @Nullable Object value) Checks that the actual map contains the given entry.final OrderedChecks that the actual map is empty.final OrderedChecks that the actual map contains exactly the given set of key/value pairs.final OrderedcontainsExactlyEntriesIn(@Nullable Map<?, ?> expected) Checks that the actual map contains exactly the given set of entries in the given map.final voidcontainsKey(@Nullable Object key) Checks that the actual map contains the given key.final voiddoesNotContainEntry(@Nullable Object key, @Nullable Object value) Checks that the actual map does not contain the given entry.final voidChecks that the actual map does not contain the given key.final <V extends @Nullable Object>
MapSubject.UsingCorrespondence<V, V> formattingDiffsUsing(Correspondence.DiffFormatter<? super V, ? super V> formatter) Starts a method chain for a check in which failure messages may use the givenCorrespondence.DiffFormatterto describe the difference between an actual map (i.e. a value in theMapunder test) and the value it is expected to be equal to, but isn't.final voidhasSize(int size) Checks that the actual map has the given size.final voidisEmpty()Checks that the actual map is empty.final voidChecks that the value under test is equal to the given object.final voidChecks that the actual map is not empty.Methods inherited from class com.google.common.truth.Subject
actualCustomStringRepresentation, check, equals, failWithActual, failWithActual, failWithoutActual, hashCode, ignoreCheck, isAnyOf, isIn, isInstanceOf, isNoneOf, isNotEqualTo, isNotIn, isNotInstanceOf, isNotNull, isNotSameInstanceAs, isNull, isSameInstanceAs, toString
-
Constructor Details
-
MapSubject
The constructor is for use by subclasses only. If you want to create an instance of this class itself, callcheck(...).that(actual).
-
-
Method Details
-
isEqualTo
Description copied from class:SubjectChecks that the value under test is equal to the given object. For the purposes of this comparison, two objects are equal if any of the following is true:- they are equal according to
Objects.equals(java.lang.Object, java.lang.Object) - they are arrays and are considered equal by the appropriate
Arrays.equals(long[], long[])overload - they are boxed integer types (
Byte,Short,Character,Integer, orLong) and they are numerically equal when converted toLong. - the actual value is a boxed floating-point type (
DoubleorFloat), the expected value is anInteger, and the two are numerically equal when converted toDouble. (This allowsassertThat(someDouble).isEqualTo(0)to pass.)
Note: This method does not test the
Object.equals(java.lang.Object)implementation itself; it assumes that method is functioning correctly according to its contract. Testing anequalsimplementation requires a utility such as guava-testlib's EqualsTester.In some cases, this method might not even call
equals. It may instead perform other tests that will return the same result as long asequalsis implemented according to the contract for its type. - they are equal according to
-
isEmpty
public final void isEmpty()Checks that the actual map is empty. -
isNotEmpty
public final void isNotEmpty()Checks that the actual map is not empty. -
hasSize
public final void hasSize(int size) Checks that the actual map has the given size. -
containsKey
-
doesNotContainKey
-
containsEntry
-
doesNotContainEntry
-
containsExactly
Checks that the actual map is empty. -
containsExactly
@CanIgnoreReturnValue public final Ordered containsExactly(@Nullable Object k0, @Nullable Object v0, @Nullable Object... rest) Checks that the actual map contains exactly the given set of key/value pairs.Warning: the use of varargs means that we cannot guarantee an equal number of key/value pairs at compile time. Please make sure you provide varargs in key/value pairs!
The arguments must not contain duplicate keys.
-
containsAtLeast
-
containsExactlyEntriesIn
Checks that the actual map contains exactly the given set of entries in the given map. -
containsAtLeastEntriesIn
Checks that the actual map contains at least the given set of entries in the given map. -
comparingValuesUsing
public final <A extends @Nullable Object, E extends @Nullable Object> MapSubject.UsingCorrespondence<A,E> comparingValuesUsing(Correspondence<? super A, ? super E> correspondence) Starts a method chain for a check in which the actual values (i.e. the values of theMapunder test) are compared to expected values using the givenCorrespondence. The actual values must be of typeA, the expected values must be of typeE. The check is actually executed by continuing the method chain. For example:
whereassertThat(actualMap) .comparingValuesUsing(correspondence) .containsEntry(expectedKey, expectedValue);actualMapis aMap<?, A>(or, more generally, aMap<?, ? extends A>),correspondenceis aCorrespondence<A, E>, andexpectedValueis anE.Note that keys will always be compared with regular object equality (
Object.equals(java.lang.Object)).Any of the methods on the returned object may throw
ClassCastExceptionif they encounter an actual map that is not of typeAor an expected value that is not of typeE. -
formattingDiffsUsing
public final <V extends @Nullable Object> MapSubject.UsingCorrespondence<V,V> formattingDiffsUsing(Correspondence.DiffFormatter<? super V, ? super V> formatter) Starts a method chain for a check in which failure messages may use the givenCorrespondence.DiffFormatterto describe the difference between an actual map (i.e. a value in theMapunder test) and the value it is expected to be equal to, but isn't. The actual and expected values must be of typeV. The check is actually executed by continuing the method chain. For example:
whereassertThat(actualMap) .formattingDiffsUsing(FooTestHelper::formatDiff) .containsExactly(key1, foo1, key2, foo2, key3, foo3);actualMapis aMap<?, Foo>(or, more generally, aMap<?, ? extends Foo>),FooTestHelper.formatDiffis a static method taking twoFooarguments and returning aString, andfoo1,foo2, andfoo3areFooinstances.Unlike when using
comparingValuesUsing(com.google.common.truth.Correspondence<? super A, ? super E>), the values are still compared using object equality, so this method does not affect whether a test passes or fails.Any of the methods on the returned object may throw
ClassCastExceptionif they encounter a value that is not of typeV.- Since:
- 1.1
-