summaryrefslogtreecommitdiff
path: root/test/utils/matchers.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2021-11-30 21:03:32 +0100
committerGitHub <noreply@github.com>2021-11-30 21:03:32 +0100
commit295a6f7dd086731448a1168a349f62d3035258ca (patch)
tree30edd7597fe321c138d59f106de356f860ff14cc /test/utils/matchers.go
parent85101f69d8ac18dcd66e19a8a368fbcc4c5e21aa (diff)
parent8eb0be0a29a647308b3ed9eab2126e1004b6ba85 (diff)
downloadpodman-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.go30
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")
+}