293dd2e848
* Add vendor dir so builds dont require dep * Pin specific version go-eth version
79 lines
2.9 KiB
Go
79 lines
2.9 KiB
Go
package matchers_test
|
|
|
|
import (
|
|
"errors"
|
|
"strings"
|
|
|
|
. "github.com/onsi/ginkgo"
|
|
. "github.com/onsi/gomega"
|
|
. "github.com/onsi/gomega/matchers"
|
|
)
|
|
|
|
var _ = Describe("Equal", func() {
|
|
Context("when asserting that nil equals nil", func() {
|
|
It("should error", func() {
|
|
success, err := (&EqualMatcher{Expected: nil}).Match(nil)
|
|
|
|
Ω(success).Should(BeFalse())
|
|
Ω(err).Should(HaveOccurred())
|
|
})
|
|
})
|
|
|
|
Context("When asserting equality between objects", func() {
|
|
It("should do the right thing", func() {
|
|
Ω(5).Should(Equal(5))
|
|
Ω(5.0).Should(Equal(5.0))
|
|
|
|
Ω(5).ShouldNot(Equal("5"))
|
|
Ω(5).ShouldNot(Equal(5.0))
|
|
Ω(5).ShouldNot(Equal(3))
|
|
|
|
Ω("5").Should(Equal("5"))
|
|
Ω([]int{1, 2}).Should(Equal([]int{1, 2}))
|
|
Ω([]int{1, 2}).ShouldNot(Equal([]int{2, 1}))
|
|
Ω(map[string]string{"a": "b", "c": "d"}).Should(Equal(map[string]string{"a": "b", "c": "d"}))
|
|
Ω(map[string]string{"a": "b", "c": "d"}).ShouldNot(Equal(map[string]string{"a": "b", "c": "e"}))
|
|
Ω(errors.New("foo")).Should(Equal(errors.New("foo")))
|
|
Ω(errors.New("foo")).ShouldNot(Equal(errors.New("bar")))
|
|
|
|
Ω(myCustomType{s: "foo", n: 3, f: 2.0, arr: []string{"a", "b"}}).Should(Equal(myCustomType{s: "foo", n: 3, f: 2.0, arr: []string{"a", "b"}}))
|
|
Ω(myCustomType{s: "foo", n: 3, f: 2.0, arr: []string{"a", "b"}}).ShouldNot(Equal(myCustomType{s: "bar", n: 3, f: 2.0, arr: []string{"a", "b"}}))
|
|
Ω(myCustomType{s: "foo", n: 3, f: 2.0, arr: []string{"a", "b"}}).ShouldNot(Equal(myCustomType{s: "foo", n: 2, f: 2.0, arr: []string{"a", "b"}}))
|
|
Ω(myCustomType{s: "foo", n: 3, f: 2.0, arr: []string{"a", "b"}}).ShouldNot(Equal(myCustomType{s: "foo", n: 3, f: 3.0, arr: []string{"a", "b"}}))
|
|
Ω(myCustomType{s: "foo", n: 3, f: 2.0, arr: []string{"a", "b"}}).ShouldNot(Equal(myCustomType{s: "foo", n: 3, f: 2.0, arr: []string{"a", "b", "c"}}))
|
|
})
|
|
})
|
|
|
|
Describe("failure messages", func() {
|
|
It("shows the two strings simply when they are short", func() {
|
|
subject := EqualMatcher{Expected: "eric"}
|
|
|
|
failureMessage := subject.FailureMessage("tim")
|
|
Ω(failureMessage).To(BeEquivalentTo(expectedShortStringFailureMessage))
|
|
})
|
|
|
|
It("shows the exact point where two long strings differ", func() {
|
|
stringWithB := "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
stringWithZ := "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
|
|
subject := EqualMatcher{Expected: stringWithZ}
|
|
|
|
failureMessage := subject.FailureMessage(stringWithB)
|
|
Ω(failureMessage).To(BeEquivalentTo(expectedLongStringFailureMessage))
|
|
})
|
|
})
|
|
})
|
|
|
|
var expectedShortStringFailureMessage = strings.TrimSpace(`
|
|
Expected
|
|
<string>: tim
|
|
to equal
|
|
<string>: eric
|
|
`)
|
|
var expectedLongStringFailureMessage = strings.TrimSpace(`
|
|
Expected
|
|
<string>: "...aaaaabaaaaa..."
|
|
to equal |
|
|
<string>: "...aaaaazaaaaa..."
|
|
`)
|