9f0b3f5609
full diff: https://github.com/gotestyourself/gotest.tools/compare/v2.3.0...v3.0.1 Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
84 lines
1.9 KiB
Go
84 lines
1.9 KiB
Go
// Package checker provides helpers for gotest.tools/assert.
|
|
// Please remove this package whenever possible.
|
|
package checker // import "github.com/docker/docker/integration-cli/checker"
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"gotest.tools/v3/assert"
|
|
"gotest.tools/v3/assert/cmp"
|
|
)
|
|
|
|
// Compare defines the interface to compare values
|
|
type Compare func(x interface{}) assert.BoolOrComparison
|
|
|
|
// False checks if the value is false
|
|
func False() Compare {
|
|
return func(x interface{}) assert.BoolOrComparison {
|
|
return !x.(bool)
|
|
}
|
|
}
|
|
|
|
// True checks if the value is true
|
|
func True() Compare {
|
|
return func(x interface{}) assert.BoolOrComparison {
|
|
return x
|
|
}
|
|
}
|
|
|
|
// Equals checks if the value is equal to the given value
|
|
func Equals(y interface{}) Compare {
|
|
return func(x interface{}) assert.BoolOrComparison {
|
|
return cmp.Equal(x, y)
|
|
}
|
|
}
|
|
|
|
// Contains checks if the value contains the given value
|
|
func Contains(y interface{}) Compare {
|
|
return func(x interface{}) assert.BoolOrComparison {
|
|
return cmp.Contains(x, y)
|
|
}
|
|
}
|
|
|
|
// Not checks if two values are not
|
|
func Not(c Compare) Compare {
|
|
return func(x interface{}) assert.BoolOrComparison {
|
|
r := c(x)
|
|
switch r := r.(type) {
|
|
case bool:
|
|
return !r
|
|
case cmp.Comparison:
|
|
return !r().Success()
|
|
default:
|
|
panic(fmt.Sprintf("unexpected type %T", r))
|
|
}
|
|
}
|
|
}
|
|
|
|
// DeepEquals checks if two values are equal
|
|
func DeepEquals(y interface{}) Compare {
|
|
return func(x interface{}) assert.BoolOrComparison {
|
|
return cmp.DeepEqual(x, y)
|
|
}
|
|
}
|
|
|
|
// HasLen checks if the value has the expected number of elements
|
|
func HasLen(y int) Compare {
|
|
return func(x interface{}) assert.BoolOrComparison {
|
|
return cmp.Len(x, y)
|
|
}
|
|
}
|
|
|
|
// IsNil checks if the value is nil
|
|
func IsNil() Compare {
|
|
return func(x interface{}) assert.BoolOrComparison {
|
|
return cmp.Nil(x)
|
|
}
|
|
}
|
|
|
|
// GreaterThan checks if the value is greater than the given value
|
|
func GreaterThan(y int) Compare {
|
|
return func(x interface{}) assert.BoolOrComparison {
|
|
return x.(int) > y
|
|
}
|
|
}
|