test

package
v3.62.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 21, 2022 License: MIT Imports: 29 Imported by: 1

Documentation

Overview

Package test implements the Benthos service unit testing command.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CliCommand added in v3.15.0

func CliCommand(testSuffix string) *cli.Command

CliCommand is a cli.Command definition for unit testing.

func Generate

func Generate(path, testSuffix string) error

Generate executes the generate-tests command for a specified path. The path can either be a config file, a directory, or the special pattern './...'.

func GenerateAll added in v3.12.0

func GenerateAll(paths []string, testSuffix string) error

GenerateAll executes the generate-tests command for a specified paths.

func GetPathPair added in v3.43.0

func GetPathPair(fullPath, testSuffix string) (configPath, definitionPath string)

GetPathPair returns the config path and expected accompanying test definition path for a given syntax and a path for either file.

func GetTestTargets added in v3.43.0

func GetTestTargets(targetPath, testSuffix string, recurse bool) (map[string]Definition, error)

GetTestTargets searches for test definition targets in a path with a given test suffix.

func OptAddResourcesPaths added in v3.22.0

func OptAddResourcesPaths(paths []string) func(*ProcessorsProvider)

OptAddResourcesPaths adds paths to files where resources should be parsed.

func OptProcessorsProviderSetLogger added in v3.15.0

func OptProcessorsProviderSetLogger(logger log.Modular) func(*ProcessorsProvider)

OptProcessorsProviderSetLogger sets the logger used by tested components.

func Run

func Run(path, testSuffix string, lint bool) bool

Run executes the test command for a specified path. The path can either be a config file, a config files test definition file, a directory, or the wildcard pattern './...'.

func RunAll added in v3.12.0

func RunAll(paths []string, testSuffix string, lint bool) bool

RunAll executes the test command for a slice of paths. The path can either be a config file, a config files test definition file, a directory, or the wildcard pattern './...'.

func RunAllWithLogger added in v3.15.0

func RunAllWithLogger(paths []string, testSuffix string, lint bool, logger log.Modular) bool

RunAllWithLogger executes the test command for a slice of paths. The path can either be a config file, a config files test definition file, a directory, or the wildcard pattern './...'.

Types

type Case

type Case struct {
	Name             string               `yaml:"name"`
	Environment      map[string]string    `yaml:"environment"`
	TargetProcessors string               `yaml:"target_processors"`
	TargetMapping    string               `yaml:"target_mapping"`
	Mocks            map[string]yaml.Node `yaml:"mocks"`
	InputBatch       []InputPart          `yaml:"input_batch"`
	OutputBatches    [][]ConditionsMap    `yaml:"output_batches"`
	// contains filtered or unexported fields
}

Case contains a definition of a single Benthos config test case.

func NewCase

func NewCase() Case

NewCase returns a default test case.

func (Case) AtLine added in v3.43.0

func (c Case) AtLine(l int) Case

AtLine returns a test case at a given line.

func (*Case) Execute

func (c *Case) Execute(provider ProcProvider) (failures []CaseFailure, err error)

Execute attempts to execute a test case against a Benthos configuration.

func (*Case) UnmarshalYAML

func (c *Case) UnmarshalYAML(value *yaml.Node) error

UnmarshalYAML extracts a Case from a YAML node.

type CaseFailure

type CaseFailure struct {
	Name     string
	TestLine int
	Reason   string
}

CaseFailure encapsulates information about a failed test case.

func (CaseFailure) String

func (c CaseFailure) String() string

String returns a string representation of the case failure.

type Condition

type Condition interface {
	Check(part types.Part) error
}

Condition is a test case against a message part.

type ConditionsMap

type ConditionsMap map[string]Condition

ConditionsMap contains a map of conditions to condition string types.

func (ConditionsMap) CheckAll

func (c ConditionsMap) CheckAll(part types.Part) (errs []error)

CheckAll checks all conditions against a message part. Conditions are executed in alphabetical order.

func (*ConditionsMap) UnmarshalYAML

func (c *ConditionsMap) UnmarshalYAML(value *yaml.Node) error

UnmarshalYAML extracts a ConditionsMap from a YAML node.

type ContentEqualsCondition

type ContentEqualsCondition string

ContentEqualsCondition is a string condition that tests the string against the contents of a message.

func (ContentEqualsCondition) Check

Check this condition against a message part.

type ContentJSONContainsCondition added in v3.38.0

type ContentJSONContainsCondition string

ContentJSONContainsCondition is a string condition that tests the string against the contents of a message using JSON comparison and is true if the expected and actual documents are both valid JSON, and the actual is a superset of the expected

func (ContentJSONContainsCondition) Check added in v3.38.0

Check this condition against a message part.

type ContentJSONEqualsCondition added in v3.38.0

type ContentJSONEqualsCondition string

ContentJSONEqualsCondition is a string condition that tests the string against the contents of a message using JSON comparison and is true if the expected and actual documents are both valid JSON and deeply equal.

func (ContentJSONEqualsCondition) Check added in v3.38.0

Check this condition against a message part.

type ContentMatchesCondition added in v3.2.0

type ContentMatchesCondition string

ContentMatchesCondition is a string condition that tests parses the string as a regular expression and tests that regular expression against the contents of a message.

func (ContentMatchesCondition) Check added in v3.2.0

Check this condition against a message part.

type Definition

type Definition struct {
	Parallel bool   `yaml:"parallel"`
	Cases    []Case `yaml:"tests"`
}

Definition of a group of tests for a Benthos config file.

func ExampleDefinition

func ExampleDefinition() Definition

ExampleDefinition returns a Definition containing an example case.

func (Definition) Execute

func (d Definition) Execute(filepath string) ([]CaseFailure, error)

Execute attempts to run a test definition on a target config file. Returns an array of test failures or an error.

func (Definition) ExecuteWithLogger added in v3.15.0

func (d Definition) ExecuteWithLogger(filepath string, logger log.Modular) ([]CaseFailure, error)

ExecuteWithLogger attempts to run a test definition on a target config file, with a logger. Returns an array of test failures or an error.

type FileEqualsCondition added in v3.51.0

type FileEqualsCondition string

FileEqualsCondition is a string condition that reads a file at the string path and compares it against the contents of a message.

func (FileEqualsCondition) Check added in v3.51.0

func (c FileEqualsCondition) Check(p types.Part) error

Check this condition against a message part.

type InputPart

type InputPart struct {
	Content  string            `yaml:"content"`
	Metadata map[string]string `yaml:"metadata"`
	// contains filtered or unexported fields
}

InputPart defines an input part for a test case.

func (*InputPart) UnmarshalYAML added in v3.38.0

func (i *InputPart) UnmarshalYAML(value *yaml.Node) error

UnmarshalYAML extracts an InputPart from a YAML node.

type MetadataEqualsCondition

type MetadataEqualsCondition map[string]string

MetadataEqualsCondition checks whether a metadata keys contents matches a value.

func (MetadataEqualsCondition) Check

Check this condition against a message part.

type ProcProvider

type ProcProvider interface {
	Provide(jsonPtr string, environment map[string]string) ([]types.Processor, error)
	ProvideBloblang(path string) ([]types.Processor, error)
}

ProcProvider returns compiled processors extracted from a Benthos config using a JSON Pointer.

type ProcessorsProvider

type ProcessorsProvider struct {
	// contains filtered or unexported fields
}

ProcessorsProvider consumes a Benthos config and, given a JSON Pointer, extracts and constructs the target processors from the config file.

func NewProcessorsProvider

func NewProcessorsProvider(targetPath string, opts ...func(*ProcessorsProvider)) *ProcessorsProvider

NewProcessorsProvider returns a new processors provider aimed at a filepath.

func (*ProcessorsProvider) Provide

func (p *ProcessorsProvider) Provide(jsonPtr string, environment map[string]string) ([]types.Processor, error)

Provide attempts to extract an array of processors from a Benthos config. If the JSON Pointer targets a single processor config it will be constructed and returned as an array of one element.

func (*ProcessorsProvider) ProvideBloblang added in v3.43.0

func (p *ProcessorsProvider) ProvideBloblang(pathStr string) ([]types.Processor, error)

ProvideBloblang attempts to parse a Bloblang mapping and returns a processor slice that executes it.

func (*ProcessorsProvider) ProvideMocked added in v3.50.0

func (p *ProcessorsProvider) ProvideMocked(jsonPtr string, environment map[string]string, mocks map[string]yaml.Node) ([]types.Processor, error)

ProvideMocked attempts to extract an array of processors from a Benthos config. Supports injected mocked components in the parsed config. If the JSON Pointer targets a single processor config it will be constructed and returned as an array of one element.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL