// 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 } }