public class CoderProperties
extends java.lang.Object
Coder tests. These are implemented with junit assertions rather
 than as predicates for the sake of error messages.
 We serialize and deserialize the coder to make sure that any state information required by the coder is preserved. This causes tests written such that coders that lose information during serialization or change state during encoding/decoding will fail.
| Modifier and Type | Class and Description | 
|---|---|
| static class  | CoderProperties.TestElementByteSizeObserverAn  ElementByteSizeObserverthat records the observed element sizes for testing
 purposes. | 
| Modifier and Type | Field and Description | 
|---|---|
| static java.util.List<Coder.Context> | ALL_CONTEXTSAll the contexts, for use in test cases. | 
| Constructor and Description | 
|---|
| CoderProperties() | 
| Modifier and Type | Method and Description | 
|---|---|
| static <T> void | coderConsistentWithEquals(Coder<T> coder,
                         T value1,
                         T value2)Verifies that for the given  Coder<T>and values of typeT, the values are equal
 if and only if the encoded bytes are equal. | 
| static <T> void | coderConsistentWithEqualsInContext(Coder<T> coder,
                                  Coder.Context context,
                                  T value1,
                                  T value2)Verifies that for the given  Coder<T>,Coder.Context, and values of typeT, the values are equal if and only if the encoded bytes are equal, in anyCoder.Context. | 
| static <T,CollectionT extends java.util.Collection<T>> | coderDecodeEncodeContentsEqual(Coder<CollectionT> coder,
                              CollectionT value)Verifies that for the given  Coder<Collection<T>>, and value of typeCollection<T>, encoding followed by decoding yields an equal value of typeCollection<T>, in anyCoder.Context. | 
| static <T,CollectionT extends java.util.Collection<T>> | coderDecodeEncodeContentsEqualInContext(Coder<CollectionT> coder,
                                       Coder.Context context,
                                       CollectionT value)Verifies that for the given  Coder<Collection<T>>, and value of typeCollection<T>, encoding followed by decoding yields an equal value of typeCollection<T>, in the givenCoder.Context. | 
| static <T,IterableT extends java.lang.Iterable<T>> | coderDecodeEncodeContentsInSameOrder(Coder<IterableT> coder,
                                    IterableT value)Verifies that for the given  Coder<Collection<T>>, and value of typeCollection<T>, encoding followed by decoding yields an equal value of typeCollection<T>, in anyCoder.Context. | 
| static <T,IterableT extends java.lang.Iterable<T>> | coderDecodeEncodeContentsInSameOrderInContext(Coder<IterableT> coder,
                                             Coder.Context context,
                                             IterableT value)Verifies that for the given  Coder<Iterable<T>>, and value of typeIterable<T>,
 encoding followed by decoding yields an equal value of typeCollection<T>, in the givenCoder.Context. | 
| static <T> void | coderDecodeEncodeEqual(Coder<T> coder,
                      T value)Verifies that for the given  Coder<T>, and value of typeT, encoding followed by
 decoding yields an equal value of typeT, in anyCoder.Context. | 
| static <T> void | coderDecodeEncodeEqualInContext(Coder<T> coder,
                               Coder.Context context,
                               T value)Verifies that for the given  Coder<T>,Coder.Context, and value of typeT, encoding followed by decoding yields an equal value of typeT. | 
| static <T> void | coderDecodeEncodeInContext(Coder<T> coder,
                          Coder.Context context,
                          T value,
                          Matcher<T> matcher)Verifies that for the given  Coder<T>,Coder.Context, and value of typeT, encoding followed by decoding yields a value of typeTand tests that the matcher
 succeeds on the values. | 
| static <T> void | coderDecodesBase64(Coder<T> coder,
                  java.util.List<java.lang.String> base64Encodings,
                  java.util.List<T> values) | 
| static <T> void | coderDecodesBase64(Coder<T> coder,
                  java.lang.String base64Encoding,
                  T value) | 
| static <T,IterableT extends java.lang.Iterable<T>> | coderDecodesBase64ContentsEqual(Coder<IterableT> coder,
                               java.util.List<java.lang.String> base64Encodings,
                               java.util.List<IterableT> expected) | 
| static <T,IterableT extends java.lang.Iterable<T>> | coderDecodesBase64ContentsEqual(Coder<IterableT> coder,
                               java.lang.String base64Encoding,
                               IterableT expected) | 
| static <T> void | coderDeterministic(Coder<T> coder,
                  T value1,
                  T value2)Verifies that for the given  Coder<T>, and values of typeT, if the values are
 equal then the encoded bytes are equal, in anyCoder.Context. | 
| static <T> void | coderDeterministicInContext(Coder<T> coder,
                           Coder.Context context,
                           T value1,
                           T value2)Verifies that for the given  Coder<T>,Coder.Context, and values of typeT, if the values are equal then the encoded bytes are equal. | 
| static <T> void | coderEncodesBase64(Coder<T> coder,
                  java.util.List<T> values,
                  java.util.List<java.lang.String> base64Encodings) | 
| static <T> void | coderEncodesBase64(Coder<T> coder,
                  T value,
                  java.lang.String base64Encoding) | 
| static <T> void | coderSerializable(Coder<T> coder)Verifies that the given  Coder<T>can be correctly serialized and deserialized. | 
| static <T> void | structuralValueConsistentWithEquals(Coder<T> coder,
                                   T value1,
                                   T value2)Verifies that for the given  Coder<T>and values of typeT, the structural
 values are equal if and only if the encoded bytes are equal. | 
| static <T> void | structuralValueConsistentWithEqualsInContext(Coder<T> coder,
                                            Coder.Context context,
                                            T value1,
                                            T value2)Verifies that for the given  Coder<T>,Coder.Context, and values of typeT, the structural values are equal if and only if the encoded bytes are equal, in anyCoder.Context. | 
| static <T> void | structuralValueDecodeEncodeEqual(Coder<T> coder,
                                T value)Verifies that for the given  Coder<T>and value of typeT, the structural value
 is equal to the structural value yield by encoding and decoding the original value. | 
| static <T> void | structuralValueDecodeEncodeEqualInContext(Coder<T> coder,
                                         Coder.Context context,
                                         T value)Verifies that for the given  Coder<T>,Coder.Context, and value of typeT, the structural value is equal to the structural value yield by encoding and decoding the
 original value, in anyCoder.Context. | 
| static <T> void | testByteCount(Coder<T> coder,
             Coder.Context context,
             T[] elements)A utility method that passes the given (unencoded) elements through coder's
 registerByteSizeObserver() and encode() methods, and confirms they are mutually consistent. | 
public static final java.util.List<Coder.Context> ALL_CONTEXTS
public static <T> void coderDeterministic(Coder<T> coder, T value1, T value2) throws java.lang.Exception
Coder<T>, and values of type T, if the values are
 equal then the encoded bytes are equal, in any Coder.Context.java.lang.Exceptionpublic static <T> void coderDeterministicInContext(Coder<T> coder, Coder.Context context, T value1, T value2) throws java.lang.Exception
Coder<T>, Coder.Context, and values of type T, if the values are equal then the encoded bytes are equal.java.lang.Exceptionpublic static <T> void coderDecodeEncodeEqual(Coder<T> coder, T value) throws java.lang.Exception
Coder<T>, and value of type T, encoding followed by
 decoding yields an equal value of type T, in any Coder.Context.java.lang.Exceptionpublic static <T> void coderDecodeEncodeEqualInContext(Coder<T> coder, Coder.Context context, T value) throws java.lang.Exception
Coder<T>, Coder.Context, and value of type T, encoding followed by decoding yields an equal value of type T.java.lang.Exceptionpublic static <T> void coderDecodeEncodeInContext(Coder<T> coder, Coder.Context context, T value, Matcher<T> matcher) throws java.lang.Exception
Coder<T>, Coder.Context, and value of type T, encoding followed by decoding yields a value of type T and tests that the matcher
 succeeds on the values.java.lang.Exceptionpublic static <T,CollectionT extends java.util.Collection<T>> void coderDecodeEncodeContentsEqual(Coder<CollectionT> coder, CollectionT value) throws java.lang.Exception
Coder<Collection<T>>, and value of type Collection<T>, encoding followed by decoding yields an equal value of type Collection<T>, in any Coder.Context.java.lang.Exceptionpublic static <T,CollectionT extends java.util.Collection<T>> void coderDecodeEncodeContentsEqualInContext(Coder<CollectionT> coder, Coder.Context context, CollectionT value) throws java.lang.Exception
Coder<Collection<T>>, and value of type Collection<T>, encoding followed by decoding yields an equal value of type Collection<T>, in the given Coder.Context.java.lang.Exceptionpublic static <T,IterableT extends java.lang.Iterable<T>> void coderDecodeEncodeContentsInSameOrder(Coder<IterableT> coder, IterableT value) throws java.lang.Exception
Coder<Collection<T>>, and value of type Collection<T>, encoding followed by decoding yields an equal value of type Collection<T>, in any Coder.Context.java.lang.Exceptionpublic static <T,IterableT extends java.lang.Iterable<T>> void coderDecodeEncodeContentsInSameOrderInContext(Coder<IterableT> coder, Coder.Context context, IterableT value) throws java.lang.Exception
Coder<Iterable<T>>, and value of type Iterable<T>,
 encoding followed by decoding yields an equal value of type Collection<T>, in the given
 Coder.Context.java.lang.Exceptionpublic static <T> void coderSerializable(Coder<T> coder)
Coder<T> can be correctly serialized and deserialized.public static <T> void coderConsistentWithEquals(Coder<T> coder, T value1, T value2) throws java.lang.Exception
Coder<T> and values of type T, the values are equal
 if and only if the encoded bytes are equal.java.lang.Exceptionpublic static <T> void coderConsistentWithEqualsInContext(Coder<T> coder, Coder.Context context, T value1, T value2) throws java.lang.Exception
Coder<T>, Coder.Context, and values of type T, the values are equal if and only if the encoded bytes are equal, in any Coder.Context.java.lang.Exceptionpublic static <T> void structuralValueConsistentWithEquals(Coder<T> coder, T value1, T value2) throws java.lang.Exception
Coder<T> and values of type T, the structural
 values are equal if and only if the encoded bytes are equal.java.lang.Exceptionpublic static <T> void structuralValueConsistentWithEqualsInContext(Coder<T> coder, Coder.Context context, T value1, T value2) throws java.lang.Exception
Coder<T>, Coder.Context, and values of type T, the structural values are equal if and only if the encoded bytes are equal, in any Coder.Context.java.lang.Exceptionpublic static <T> void structuralValueDecodeEncodeEqual(Coder<T> coder, T value) throws java.lang.Exception
Coder<T> and value of type T, the structural value
 is equal to the structural value yield by encoding and decoding the original value.
 This is useful to test the correct implementation of a Coder structural equality with values that don't implement the equals contract.
java.lang.Exceptionpublic static <T> void structuralValueDecodeEncodeEqualInContext(Coder<T> coder, Coder.Context context, T value) throws java.lang.Exception
Coder<T>, Coder.Context, and value of type T, the structural value is equal to the structural value yield by encoding and decoding the
 original value, in any Coder.Context.java.lang.Exceptionpublic static <T> void coderDecodesBase64(Coder<T> coder, java.lang.String base64Encoding, T value) throws java.lang.Exception
java.lang.Exceptionpublic static <T> void coderDecodesBase64(Coder<T> coder, java.util.List<java.lang.String> base64Encodings, java.util.List<T> values) throws java.lang.Exception
java.lang.Exceptionpublic static <T> void coderEncodesBase64(Coder<T> coder, T value, java.lang.String base64Encoding) throws java.lang.Exception
java.lang.Exceptionpublic static <T> void coderEncodesBase64(Coder<T> coder, java.util.List<T> values, java.util.List<java.lang.String> base64Encodings) throws java.lang.Exception
java.lang.Exceptionpublic static <T,IterableT extends java.lang.Iterable<T>> void coderDecodesBase64ContentsEqual(Coder<IterableT> coder, java.lang.String base64Encoding, IterableT expected) throws java.lang.Exception
java.lang.Exceptionpublic static <T,IterableT extends java.lang.Iterable<T>> void coderDecodesBase64ContentsEqual(Coder<IterableT> coder, java.util.List<java.lang.String> base64Encodings, java.util.List<IterableT> expected) throws java.lang.Exception
java.lang.Exceptionpublic static <T> void testByteCount(Coder<T> coder, Coder.Context context, T[] elements) throws java.lang.Exception
java.lang.Exception