testing

package
v0.9.1 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2018 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Package testing is a test suit for readers. They should provide an object that implements the Constructor interface then run:

import reader_test "github.com/arsham/expipe/reader/testing"
....
r, err := reader_test.New(reader.SetName("test"))
if err != nil {
    panic(err)
}
c := &Construct{r}
reader_test.TestSuites(t, c)

The test suit will pick it up and does all the tests.

Important Note

You need to write the edge cases if they are not covered in this section.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func TestSuites added in v0.8.1

func TestSuites(t *testing.T, cons Constructor)

TestSuites returns a map of test name to the runner function.

Types

type Conf added in v0.9.1

type Conf func(*Config) error

Conf func is used for initializing a Config object.

func WithBackoff added in v0.9.1

func WithBackoff(backoff int) Conf

WithBackoff doesn't produce any errors.

func WithEndpoint added in v0.9.1

func WithEndpoint(endpoint string) Conf

WithEndpoint doesn't produce any errors.

func WithInterval added in v0.9.1

func WithInterval(internal time.Duration) Conf

WithInterval doesn't produce any errors.

func WithLogger added in v0.9.1

func WithLogger(log internal.FieldLogger) Conf

WithLogger doesn't produce any errors.

func WithName added in v0.9.1

func WithName(name string) Conf

WithName doesn't produce any errors.

func WithTimeout added in v0.9.1

func WithTimeout(timeout time.Duration) Conf

WithTimeout doesn't produce any errors.

func WithTypeName added in v0.9.1

func WithTypeName(typeName string) Conf

WithTypeName doesn't produce any errors.

type Config added in v0.7.0

type Config struct {
	MockName     string
	MockTypeName string
	MockEndpoint string
	MockTimeout  time.Duration
	MockInterval time.Duration
	MockBackoff  int
	MockLogger   internal.FieldLogger
}

Config is used for instantiating a mock reader

func NewConfig added in v0.7.0

func NewConfig(conf ...Conf) (*Config, error)

NewConfig returns a mocked object

func (*Config) Backoff added in v0.7.0

func (c *Config) Backoff() int

Backoff returns the backoff

func (*Config) Endpoint added in v0.7.0

func (c *Config) Endpoint() string

Endpoint returns the endpoint

func (*Config) Interval added in v0.7.0

func (c *Config) Interval() time.Duration

Interval returns the interval

func (*Config) Logger added in v0.7.0

func (c *Config) Logger() internal.FieldLogger

Logger returns the logger

func (*Config) Name added in v0.7.0

func (c *Config) Name() string

Name returns the name

func (*Config) NewInstance added in v0.7.0

func (c *Config) NewInstance() (reader.DataReader, error)

NewInstance returns a mocked version of the config

func (*Config) Timeout added in v0.7.0

func (c *Config) Timeout() time.Duration

Timeout returns the timeout

func (*Config) TypeName added in v0.7.0

func (c *Config) TypeName() string

TypeName returns the typeName

type Constructor added in v0.7.0

type Constructor interface {
	reader.Constructor
	TestServer() *httptest.Server
	Object() (reader.DataReader, error)
}

Constructor is an interface for setting up an object for testing. TestServer() should return a ready to use test server Object() should return the instantiated object

type Reader added in v0.7.0

type Reader struct {
	ReadFunc func(*token.Context) (*reader.Result, error)
	Pinged   bool
	// contains filtered or unexported fields
}

Reader is useful for testing purposes.

func GetReader added in v0.7.0

func GetReader(url string) *Reader

GetReader provides a SimpleReader for using in the example.

func New added in v0.7.0

func New(options ...func(reader.Constructor) error) (*Reader, error)

New is a reader for using in tests

func (*Reader) Backoff added in v0.8.1

func (r *Reader) Backoff() int

Backoff returns the backoff

func (*Reader) Endpoint added in v0.8.1

func (r *Reader) Endpoint() string

Endpoint returns the endpoint

func (*Reader) Interval added in v0.7.0

func (r *Reader) Interval() time.Duration

Interval returns the interval

func (*Reader) Logger added in v0.8.1

func (r *Reader) Logger() internal.FieldLogger

Logger returns the log

func (*Reader) Mapper added in v0.7.0

func (r *Reader) Mapper() datatype.Mapper

Mapper returns the mapper

func (*Reader) Name added in v0.7.0

func (r *Reader) Name() string

Name returns the name

func (*Reader) Ping added in v0.7.0

func (r *Reader) Ping() error

Ping pings the endpoint and return nil if was successful.

func (*Reader) Read added in v0.7.0

func (r *Reader) Read(job *token.Context) (*reader.Result, error)

Read executes the ReadFunc if defined, otherwise continues normally

func (*Reader) SetBackoff added in v0.8.1

func (r *Reader) SetBackoff(backoff int)

SetBackoff sets the backoff of the reader

func (*Reader) SetEndpoint added in v0.8.1

func (r *Reader) SetEndpoint(endpoint string)

SetEndpoint sets the endpoint of the reader

func (*Reader) SetInterval added in v0.8.1

func (r *Reader) SetInterval(interval time.Duration)

SetInterval sets the interval of the reader

func (*Reader) SetLogger added in v0.8.1

func (r *Reader) SetLogger(log internal.FieldLogger)

SetLogger sets the log of the reader

func (*Reader) SetMapper added in v0.8.1

func (r *Reader) SetMapper(mapper datatype.Mapper)

SetMapper sets the mapper of the reader

func (*Reader) SetName added in v0.8.1

func (r *Reader) SetName(name string)

SetName sets the name of the reader

func (*Reader) SetTimeout added in v0.8.1

func (r *Reader) SetTimeout(timeout time.Duration)

SetTimeout sets the timeout of the reader

func (*Reader) SetTypeName added in v0.8.1

func (r *Reader) SetTypeName(typeName string)

SetTypeName sets the type name of the reader

func (*Reader) Timeout added in v0.7.0

func (r *Reader) Timeout() time.Duration

Timeout returns the timeout

func (*Reader) TypeName added in v0.7.0

func (r *Reader) TypeName() string

TypeName returns the type name

Jump to

Keyboard shortcuts

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