testing

package
v0.9.2 Latest Latest
Warning

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

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

Documentation

Overview

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

import rt "github.com/arsham/expipe/recorder/testing"
....
r, err := rt.New()
if err != nil {
    panic(err)
}
c := &Construct{r, getTestServer()}
rt.TestSuites(t, c, func() {/*clean up code*/})

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, setup func() (Constructor, func()))

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

Types

type Config added in v0.7.0

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

Config holds the necessary configuration for setting up an elasticsearch recorder endpoint.

func (*Config) Backoff added in v0.7.0

func (c *Config) Backoff() int

Backoff is the mocked version.

func (*Config) Endpoint added in v0.7.0

func (c *Config) Endpoint() string

Endpoint is the mocked version.

func (*Config) IndexName added in v0.7.0

func (c *Config) IndexName() string

IndexName is the mocked version.

func (*Config) Logger added in v0.7.0

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

Logger is the mocked version.

func (*Config) Name added in v0.7.0

func (c *Config) Name() string

Name is the mocked version.

func (*Config) NewInstance added in v0.7.0

func (c *Config) NewInstance() (recorder.DataRecorder, error)

NewInstance returns a mocked object.

func (*Config) Timeout added in v0.7.0

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

Timeout is the mocked version.

type Constructor added in v0.7.0

type Constructor interface {
	recorder.Constructor
	ValidEndpoints() []string
	InvalidEndpoints() []string
	TestServer() *httptest.Server
	Object() (recorder.DataRecorder, error)
}

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

type Recorder added in v0.7.0

type Recorder struct {
	ErrorFunc  func() error
	Smu        sync.RWMutex
	RecordFunc func(context.Context, *recorder.Job) error
	Pinged     bool
	// contains filtered or unexported fields
}

Recorder is designed to be used in tests.

func GetRecorder added in v0.7.0

func GetRecorder(url string) *Recorder

GetRecorder provides a SimpleRecorder for using in the example.

func New added in v0.7.0

func New(options ...func(recorder.Constructor) error) (*Recorder, error)

New is a recorder for using in tests.

func (*Recorder) Backoff added in v0.8.1

func (r *Recorder) Backoff() int

Backoff returns the backoff.

func (*Recorder) Endpoint added in v0.8.1

func (r *Recorder) Endpoint() string

Endpoint returns the endpoint.

func (*Recorder) IndexName added in v0.7.0

func (r *Recorder) IndexName() string

IndexName returns the index name.

func (*Recorder) Logger added in v0.8.1

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

Logger returns the log.

func (*Recorder) Name added in v0.7.0

func (r *Recorder) Name() string

Name returns the name.

func (*Recorder) Ping added in v0.7.0

func (r *Recorder) Ping() error

Ping pings the endpoint and return nil if was successful.

func (*Recorder) Record added in v0.7.0

func (r *Recorder) Record(ctx context.Context, job *recorder.Job) error

Record calls the RecordFunc if exists, otherwise continues as normal.

func (*Recorder) SetBackoff added in v0.8.1

func (r *Recorder) SetBackoff(backoff int)

SetBackoff sets the backoff of the recorder.

func (*Recorder) SetEndpoint added in v0.8.1

func (r *Recorder) SetEndpoint(endpoint string)

SetEndpoint sets the endpoint of the recorder.

func (*Recorder) SetIndexName added in v0.8.1

func (r *Recorder) SetIndexName(indexName string)

SetIndexName sets the index name of the recorder.

func (*Recorder) SetLogger added in v0.8.1

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

SetLogger sets the log of the recorder.

func (*Recorder) SetName added in v0.8.1

func (r *Recorder) SetName(name string)

SetName sets the name of the recorder.

func (*Recorder) SetTimeout added in v0.8.1

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

SetTimeout sets the timeout of the recorder.

func (*Recorder) Timeout added in v0.7.0

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

Timeout returns the timeout.

Jump to

Keyboard shortcuts

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