65 lines
1.5 KiB
Go
65 lines
1.5 KiB
Go
|
package table_test
|
||
|
|
||
|
import (
|
||
|
"strings"
|
||
|
|
||
|
. "github.com/onsi/ginkgo/extensions/table"
|
||
|
|
||
|
. "github.com/onsi/ginkgo"
|
||
|
. "github.com/onsi/gomega"
|
||
|
)
|
||
|
|
||
|
var _ = Describe("Table", func() {
|
||
|
DescribeTable("a simple table",
|
||
|
func(x int, y int, expected bool) {
|
||
|
Ω(x > y).Should(Equal(expected))
|
||
|
},
|
||
|
Entry("x > y", 1, 0, true),
|
||
|
Entry("x == y", 0, 0, false),
|
||
|
Entry("x < y", 0, 1, false),
|
||
|
)
|
||
|
|
||
|
type ComplicatedThings struct {
|
||
|
Superstructure string
|
||
|
Substructure string
|
||
|
Count int
|
||
|
}
|
||
|
|
||
|
DescribeTable("a more complicated table",
|
||
|
func(c ComplicatedThings) {
|
||
|
Ω(strings.Count(c.Superstructure, c.Substructure)).Should(BeNumerically("==", c.Count))
|
||
|
},
|
||
|
Entry("with no matching substructures", ComplicatedThings{
|
||
|
Superstructure: "the sixth sheikh's sixth sheep's sick",
|
||
|
Substructure: "emir",
|
||
|
Count: 0,
|
||
|
}),
|
||
|
Entry("with one matching substructure", ComplicatedThings{
|
||
|
Superstructure: "the sixth sheikh's sixth sheep's sick",
|
||
|
Substructure: "sheep",
|
||
|
Count: 1,
|
||
|
}),
|
||
|
Entry("with many matching substructures", ComplicatedThings{
|
||
|
Superstructure: "the sixth sheikh's sixth sheep's sick",
|
||
|
Substructure: "si",
|
||
|
Count: 3,
|
||
|
}),
|
||
|
)
|
||
|
|
||
|
PDescribeTable("a failure",
|
||
|
func(value bool) {
|
||
|
Ω(value).Should(BeFalse())
|
||
|
},
|
||
|
Entry("when true", true),
|
||
|
Entry("when false", false),
|
||
|
Entry("when malformed", 2),
|
||
|
)
|
||
|
|
||
|
DescribeTable("an untyped nil as an entry",
|
||
|
func(x interface{}) {
|
||
|
Expect(x).To(BeNil())
|
||
|
},
|
||
|
Entry("nil", nil),
|
||
|
)
|
||
|
})
|