diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-11-30 21:03:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-30 21:03:32 +0100 |
commit | 295a6f7dd086731448a1168a349f62d3035258ca (patch) | |
tree | 30edd7597fe321c138d59f106de356f860ff14cc /test/utils/matchers.go | |
parent | 85101f69d8ac18dcd66e19a8a368fbcc4c5e21aa (diff) | |
parent | 8eb0be0a29a647308b3ed9eab2126e1004b6ba85 (diff) | |
download | podman-295a6f7dd086731448a1168a349f62d3035258ca.tar.gz podman-295a6f7dd086731448a1168a349f62d3035258ca.tar.bz2 podman-295a6f7dd086731448a1168a349f62d3035258ca.zip |
Merge pull request #12454 from edsantiago/remove_betrue
More BeTrue cleanup
Diffstat (limited to 'test/utils/matchers.go')
-rw-r--r-- | test/utils/matchers.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/utils/matchers.go b/test/utils/matchers.go index 69fb0cdfe..288779b63 100644 --- a/test/utils/matchers.go +++ b/test/utils/matchers.go @@ -1,6 +1,7 @@ package utils import ( + "encoding/json" "fmt" "net/url" @@ -166,3 +167,32 @@ func (matcher *ExitMatcher) MatchMayChangeInTheFuture(actual interface{}) bool { } return true } + +type ValidJSONMatcher struct { + types.GomegaMatcher +} + +func BeValidJSON() *ValidJSONMatcher { + return &ValidJSONMatcher{} +} + +func (matcher *ValidJSONMatcher) Match(actual interface{}) (success bool, err error) { + s, ok := actual.(string) + if !ok { + return false, fmt.Errorf("ValidJSONMatcher expects a string, not %q", actual) + } + + var i interface{} + if err := json.Unmarshal([]byte(s), &i); err != nil { + return false, nil + } + return true, nil +} + +func (matcher *ValidJSONMatcher) FailureMessage(actual interface{}) (message string) { + return format.Message(actual, "to be valid JSON") +} + +func (matcher *ValidJSONMatcher) NegatedFailureMessage(actual interface{}) (message string) { + return format.Message(actual, "to _not_ be valid JSON") +} |