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.TestElementByteSizeObserver
An
ElementByteSizeObserver that records the observed element sizes for testing
purposes. |
Modifier and Type | Field and Description |
---|---|
static java.util.List<Coder.Context> |
ALL_CONTEXTS
All 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
type T , 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 type T , the values are equal if and only if the
encoded bytes are equal, in any Coder.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 type Collection<T> , encoding followed by decoding yields an
equal value of type Collection<T> , in any Coder.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 type Collection<T> , encoding followed by decoding yields an
equal value of type Collection<T> , in the given Coder.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 type Collection<T> , encoding followed by decoding yields an
equal value of type Collection<T> , in any Coder.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 type Iterable<T> , encoding followed by decoding yields an
equal value of type Collection<T> , in the given Coder.Context . |
static <T> void |
coderDecodeEncodeEqual(Coder<T> coder,
T value)
Verifies that for the given
Coder<T> ,
and value of type T , encoding followed by decoding yields an
equal value of type T , in any Coder.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 type T , encoding followed by decoding yields an
equal value of type T . |
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
type T , if the values are equal then the encoded bytes are equal, in any
Coder.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
type T , 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
type T , 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 type T , the structural values are equal if and only if the
encoded bytes are equal, in any Coder.Context . |
static <T> void |
structuralValueDecodeEncodeEqual(Coder<T> coder,
T value)
Verifies that for the given
Coder<T> and value of type T ,
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 type T , the structural value is equal to the
structural value yield by encoding and decoding the original value,
in any Coder.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.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public static <T> void coderDecodesBase64(Coder<T> coder, java.lang.String base64Encoding, T value) throws java.lang.Exception
java.lang.Exception
public 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.Exception
public static <T> void coderEncodesBase64(Coder<T> coder, T value, java.lang.String base64Encoding) throws java.lang.Exception
java.lang.Exception
public 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.Exception
public 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.Exception
public 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.Exception
public static <T> void testByteCount(Coder<T> coder, Coder.Context context, T[] elements) throws java.lang.Exception
java.lang.Exception