aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/onsi/gomega/gstruct/fields_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/onsi/gomega/gstruct/fields_test.go')
-rw-r--r--vendor/github.com/onsi/gomega/gstruct/fields_test.go76
1 files changed, 76 insertions, 0 deletions
diff --git a/vendor/github.com/onsi/gomega/gstruct/fields_test.go b/vendor/github.com/onsi/gomega/gstruct/fields_test.go
new file mode 100644
index 0000000..61f4afc
--- /dev/null
+++ b/vendor/github.com/onsi/gomega/gstruct/fields_test.go
@@ -0,0 +1,76 @@
+package gstruct_test
+
+import (
+ . "github.com/onsi/ginkgo"
+ . "github.com/onsi/gomega"
+ . "github.com/onsi/gomega/gstruct"
+)
+
+var _ = Describe("Struct", func() {
+ allFields := struct{ A, B string }{"a", "b"}
+ missingFields := struct{ A string }{"a"}
+ extraFields := struct{ A, B, C string }{"a", "b", "c"}
+ emptyFields := struct{ A, B string }{}
+
+ It("should strictly match all fields", func() {
+ m := MatchAllFields(Fields{
+ "B": Equal("b"),
+ "A": Equal("a"),
+ })
+ Ω(allFields).Should(m, "should match all fields")
+ Ω(missingFields).ShouldNot(m, "should fail with missing fields")
+ Ω(extraFields).ShouldNot(m, "should fail with extra fields")
+ Ω(emptyFields).ShouldNot(m, "should fail with empty fields")
+
+ m = MatchAllFields(Fields{
+ "A": Equal("a"),
+ "B": Equal("fail"),
+ })
+ Ω(allFields).ShouldNot(m, "should run nested matchers")
+ })
+
+ It("should handle empty structs", func() {
+ m := MatchAllFields(Fields{})
+ Ω(struct{}{}).Should(m, "should handle empty structs")
+ Ω(allFields).ShouldNot(m, "should fail with extra fields")
+ })
+
+ It("should ignore missing fields", func() {
+ m := MatchFields(IgnoreMissing, Fields{
+ "B": Equal("b"),
+ "A": Equal("a"),
+ })
+ Ω(allFields).Should(m, "should match all fields")
+ Ω(missingFields).Should(m, "should ignore missing fields")
+ Ω(extraFields).ShouldNot(m, "should fail with extra fields")
+ Ω(emptyFields).ShouldNot(m, "should fail with empty fields")
+ })
+
+ It("should ignore extra fields", func() {
+ m := MatchFields(IgnoreExtras, Fields{
+ "B": Equal("b"),
+ "A": Equal("a"),
+ })
+ Ω(allFields).Should(m, "should match all fields")
+ Ω(missingFields).ShouldNot(m, "should fail with missing fields")
+ Ω(extraFields).Should(m, "should ignore extra fields")
+ Ω(emptyFields).ShouldNot(m, "should fail with empty fields")
+ })
+
+ It("should ignore missing and extra fields", func() {
+ m := MatchFields(IgnoreMissing|IgnoreExtras, Fields{
+ "B": Equal("b"),
+ "A": Equal("a"),
+ })
+ Ω(allFields).Should(m, "should match all fields")
+ Ω(missingFields).Should(m, "should ignore missing fields")
+ Ω(extraFields).Should(m, "should ignore extra fields")
+ Ω(emptyFields).ShouldNot(m, "should fail with empty fields")
+
+ m = MatchFields(IgnoreMissing|IgnoreExtras, Fields{
+ "A": Equal("a"),
+ "B": Equal("fail"),
+ })
+ Ω(allFields).ShouldNot(m, "should run nested matchers")
+ })
+})