mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
34 lines
1.1 KiB
Go
34 lines
1.1 KiB
Go
|
package testutil
|
||
|
|
||
|
import (
|
||
|
"strings"
|
||
|
"unicode"
|
||
|
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
// ErrorContains checks that the error is not nil, and contains the expected
|
||
|
// substring.
|
||
|
func ErrorContains(t require.TestingT, err error, expectedError string) {
|
||
|
require.Error(t, err)
|
||
|
assert.Contains(t, err.Error(), expectedError)
|
||
|
}
|
||
|
|
||
|
// EqualNormalizedString compare the actual value to the expected value after applying the specified
|
||
|
// transform function. It fails the test if these two transformed string are not equal.
|
||
|
// For example `EqualNormalizedString(t, RemoveSpace, "foo\n", "foo")` wouldn't fail the test as
|
||
|
// spaces (and thus '\n') are removed before comparing the string.
|
||
|
func EqualNormalizedString(t require.TestingT, transformFun func(rune) rune, actual, expected string) {
|
||
|
require.Equal(t, strings.Map(transformFun, expected), strings.Map(transformFun, actual))
|
||
|
}
|
||
|
|
||
|
// RemoveSpace returns -1 if the specified runes is considered as a space (unicode)
|
||
|
// and the rune itself otherwise.
|
||
|
func RemoveSpace(r rune) rune {
|
||
|
if unicode.IsSpace(r) {
|
||
|
return -1
|
||
|
}
|
||
|
return r
|
||
|
}
|