model

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Apr 11, 2023 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func EvalStringExprs added in v0.3.0

func EvalStringExprs(exprs []StringExpr) ([]string, func() []error, error, int)

func TypeNameOf added in v0.4.0

func TypeNameOf(x any) string

Types

type AssertionMessage

type AssertionMessage struct {
	Name    string `json:"name"`
	Message string `json:"message"`
}

type Env added in v0.4.0

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

func NewEnv added in v0.4.0

func NewEnv(prev *Env) *Env

func (*Env) Define added in v0.4.0

func (e *Env) Define(name string, value any) bool

func (*Env) GetCurrentScope added in v0.4.0

func (e *Env) GetCurrentScope() map[string]any

func (*Env) Lookup added in v0.4.0

func (e *Env) Lookup(name string) (any, bool)

type Map added in v0.4.0

type Map = map[string]any

type Matcher added in v0.4.0

type Matcher[T any] interface {
	Match(actual T) (bool, string, error)
}

type Seq added in v0.4.0

type Seq = []any

type SpecResult added in v0.2.0

type SpecResult struct {
	Name        string        `json:"name"`
	TestResults []*TestResult `json:"testResults"`
	Summary     SpecSummary   `json:"summary"`
}

func NewSpecResult added in v0.2.0

func NewSpecResult(name string, testResults []*TestResult) *SpecResult

func (*SpecResult) GetFailedTestResults added in v0.2.0

func (sr *SpecResult) GetFailedTestResults() []*TestResult

type SpecSummary added in v0.2.0

type SpecSummary struct {
	NumberOfTests     int `json:"numberOfTests"`
	NumberOfSucceeded int `json:"numberOfSucceeded"`
	NumberOfFailed    int `json:"numberOfFailed"`
}

type StatusMatcher added in v0.2.0

type StatusMatcher = Matcher[int]

type StreamMatcher added in v0.2.0

type StreamMatcher = Matcher[[]byte]

type StringExpr added in v0.2.0

type StringExpr interface {
	Eval() (string, func() error, error)
	String() string
	// contains filtered or unexported methods
}

func NewEnvStringExpr added in v0.2.0

func NewEnvStringExpr(name string) StringExpr

func NewFileStringExpr added in v0.3.0

func NewFileStringExpr(pattern string, contents string) StringExpr

func NewLiteralStringExpr added in v0.2.0

func NewLiteralStringExpr(v string) StringExpr

type Templatable added in v0.4.0

type Templatable[T any] struct {
	// contains filtered or unexported fields
}

func NewTemplatableFromTemplateValue added in v0.4.0

func NewTemplatableFromTemplateValue[T any](tv *TemplateValue) *Templatable[T]

func NewTemplatableFromText added in v0.4.0

func NewTemplatableFromText[T any](text string) *Templatable[T]

func NewTemplatableFromValue added in v0.4.0

func NewTemplatableFromValue[T any](value T) *Templatable[T]

func NewTemplatableFromVariable added in v0.4.0

func NewTemplatableFromVariable[T any](name string) *Templatable[T]

func (*Templatable[T]) Expand added in v0.4.0

func (t *Templatable[T]) Expand(env *Env, v *Validator) (T, error)

type TemplateFieldRef added in v0.4.0

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

func NewTemplateFieldRef added in v0.4.0

func NewTemplateFieldRef(field string, next TemplateRef) *TemplateFieldRef

func (*TemplateFieldRef) Expand added in v0.4.0

func (tf *TemplateFieldRef) Expand(env *Env, v *Validator, value any) (any, bool, error)

type TemplateIndexRef added in v0.4.0

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

func NewTemplateIndexRef added in v0.4.0

func NewTemplateIndexRef(index int, next TemplateRef) *TemplateIndexRef

func (*TemplateIndexRef) Expand added in v0.4.0

func (ti *TemplateIndexRef) Expand(env *Env, v *Validator, value any) (any, bool, error)

type TemplateRef added in v0.4.0

type TemplateRef interface {
	Expand(env *Env, v *Validator, value any) (any, bool, error)
}

type TemplateText added in v0.4.0

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

func NewTemplateText added in v0.4.0

func NewTemplateText(text string) *TemplateText

func (*TemplateText) Expand added in v0.4.0

func (tt *TemplateText) Expand(env *Env, v *Validator, value any) (any, bool, error)

type TemplateValue added in v0.4.0

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

func NewTemplateValue added in v0.4.0

func NewTemplateValue(value any, refs []TemplateRef) *TemplateValue

func (*TemplateValue) Expand added in v0.4.0

func (tv *TemplateValue) Expand(env *Env, v *Validator) (any, error)

type TemplateVar added in v0.4.0

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

func NewTemplateVar added in v0.4.0

func NewTemplateVar(name string) *TemplateVar

func (*TemplateVar) Expand added in v0.4.0

func (tv *TemplateVar) Expand(env *Env, v *Validator, value any) (any, bool, error)

type Test

type Test struct {
	Name          string
	SpecFilename  string
	Dir           string
	Command       []StringExpr
	Stdin         []byte
	StatusMatcher StatusMatcher
	StdoutMatcher StreamMatcher
	StderrMatcher StreamMatcher
	Env           []util.StringVar
	Timeout       time.Duration
	TeeStdout     bool
	TeeStderr     bool
}

func (*Test) GetName

func (t *Test) GetName() string

func (*Test) Run

func (t *Test) Run() (*TestResult, error)

type TestResult

type TestResult struct {
	Name      string              `json:"name"`
	Messages  []*AssertionMessage `json:"messages"`
	IsSuccess bool                `json:"isSuccess"`
}

type Type added in v0.4.0

type Type int
const (
	TypeNil Type = iota
	TypeInt
	TypeBool
	TypeString
	TypeSeq
	TypeMap
	TypeUnkown
)

func TypeOf added in v0.4.0

func TypeOf(x any) Type

type Validator added in v0.4.0

type Validator struct {
	Filename string
	// contains filtered or unexported fields
}

func NewValidator added in v0.4.0

func NewValidator(filename string, isStrict bool) (*Validator, error)

func (*Validator) AddViolation added in v0.4.0

func (v *Validator) AddViolation(format string, args ...any)

func (*Validator) Error added in v0.4.0

func (v *Validator) Error() error

func (*Validator) ForInSeq added in v0.4.0

func (v *Validator) ForInSeq(s Seq, f func(i int, x any) bool) bool

func (*Validator) GetDir added in v0.4.0

func (v *Validator) GetDir() string

func (*Validator) InField added in v0.4.0

func (v *Validator) InField(field string, f func())

func (*Validator) InIndex added in v0.4.0

func (v *Validator) InIndex(index int, f func())

func (*Validator) InPath added in v0.4.0

func (v *Validator) InPath(path string, f func())

func (*Validator) LastViolation added in v0.4.0

func (v *Validator) LastViolation() string

func (*Validator) MayBeMap added in v0.4.0

func (v *Validator) MayBeMap(x any) (Map, bool)

func (*Validator) MayBeQualified added in v0.4.0

func (v *Validator) MayBeQualified(x any) (string, any, bool)

func (*Validator) MayBeSeq added in v0.4.0

func (v *Validator) MayBeSeq(x any) (Seq, bool)

func (*Validator) MayBeString added in v0.4.0

func (v *Validator) MayBeString(x any) (string, bool)

func (*Validator) MayBeTemplateText added in v0.4.0

func (v *Validator) MayBeTemplateText(x any) (string, bool)

func (*Validator) MayBeVariable added in v0.4.0

func (v *Validator) MayBeVariable(x any) (string, bool)

func (*Validator) MayHave added in v0.4.0

func (v *Validator) MayHave(m Map, key string, f func(any)) (any, bool)

func (*Validator) MayHaveBool added in v0.4.0

func (v *Validator) MayHaveBool(m Map, key string) (bool, bool, bool)

func (*Validator) MayHaveCommand added in v0.4.0

func (v *Validator) MayHaveCommand(m Map, key string) ([]StringExpr, bool, bool)

func (*Validator) MayHaveDuration added in v0.4.0

func (v *Validator) MayHaveDuration(m Map, key string) (time.Duration, bool, bool)

func (*Validator) MayHaveEnvSeq added in v0.4.0

func (v *Validator) MayHaveEnvSeq(m Map, key string) ([]util.StringVar, bool, bool)

func (*Validator) MayHaveInt added in v0.4.0

func (v *Validator) MayHaveInt(m Map, key string) (int, bool, bool)

func (*Validator) MayHaveMap added in v0.4.0

func (v *Validator) MayHaveMap(m Map, key string, f func(Map)) (Map, bool, bool)

func (*Validator) MayHaveSeq added in v0.4.0

func (v *Validator) MayHaveSeq(m Map, key string, f func(Seq)) (Seq, bool, bool)

func (*Validator) MayHaveString added in v0.4.0

func (v *Validator) MayHaveString(m Map, key string) (string, bool, bool)

func (*Validator) MayHaveTemplatableString added in v0.4.0

func (v *Validator) MayHaveTemplatableString(m Map, key string) (*Templatable[string], bool, bool)

func (*Validator) MustBeBool added in v0.4.0

func (v *Validator) MustBeBool(x any) (bool, bool)

func (*Validator) MustBeDuration added in v0.4.0

func (v *Validator) MustBeDuration(x any) (time.Duration, bool)

func (*Validator) MustBeInt added in v0.4.0

func (v *Validator) MustBeInt(x any) (int, bool)

func (*Validator) MustBeMap added in v0.4.0

func (v *Validator) MustBeMap(x any) (Map, bool)

func (*Validator) MustBeSeq added in v0.4.0

func (v *Validator) MustBeSeq(x any) (Seq, bool)

func (*Validator) MustBeString added in v0.4.0

func (v *Validator) MustBeString(x any) (string, bool)

func (*Validator) MustBeStringExpr added in v0.4.0

func (v *Validator) MustBeStringExpr(x any) (StringExpr, bool)

func (*Validator) MustBeTemplatable added in v0.4.0

func (v *Validator) MustBeTemplatable(x any) (*Templatable[any], bool)

func (*Validator) MustContainOnly added in v0.4.0

func (v *Validator) MustContainOnly(m Map, keys ...string) bool

func (*Validator) MustHave added in v0.4.0

func (v *Validator) MustHave(m Map, key string) (any, bool)

func (*Validator) MustHaveCommand added in v0.4.0

func (v *Validator) MustHaveCommand(m Map, key string) ([]StringExpr, bool)

func (*Validator) MustHaveSeq added in v0.4.0

func (v *Validator) MustHaveSeq(m Map, key string, f func(Seq)) (Seq, bool)

func (*Validator) MustHaveString added in v0.4.0

func (v *Validator) MustHaveString(m Map, key string) (string, bool)

func (*Validator) MustHaveTemplatableString added in v0.4.0

func (v *Validator) MustHaveTemplatableString(m Map, key string) (*Templatable[string], bool)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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