Documentation ¶
Overview ¶
Package testutil contains helpers to test and validate custom Beam Schema coders.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type SchemaCoder ¶
type SchemaCoder struct { // CmpOptions to pass into the round trip comparison CmpOptions cmp.Options // contains filtered or unexported fields }
SchemaCoder helps validate custom schema coders.
func (*SchemaCoder) Register ¶
func (v *SchemaCoder) Register(rt reflect.Type, encF, decF interface{})
Register adds additional custom types not under test to both the under test and default schema coders.
func (*SchemaCoder) Validate ¶
func (v *SchemaCoder) Validate(t T, rt reflect.Type, encF, decF, schema interface{}, values interface{})
Validate is a test utility to validate custom schema coders generate beam schema encoded bytes.
Validate accepts the reflect.Type to register, factory functions for encoding and decoding, an anonymous struct type equivalent to the encoded format produced and consumed by the factory produced functions and test values. Test values must be either a struct, pointer to struct, or a slice where each element is a struct or pointer to struct.
TODO(lostluck): Improve documentation. TODO(lostluck): Abstract into a configurable struct, to handle
Validate will register the under test factories and generate an encoder and decoder function. These functions will be re-used for all test values. This emulates coders being re-used for all elements within a bundle.
Validate mutates the SchemaCoderValidator, so the SchemaCoderValidator may not be used more than once.