woodpecker/pipeline/frontend/yaml/types/bool_test.go

55 lines
1.1 KiB
Go
Raw Normal View History

2019-04-06 13:44:04 +00:00
package types
import (
"testing"
"github.com/franela/goblin"
2019-11-14 19:16:03 +00:00
"gopkg.in/yaml.v3"
2019-04-06 13:44:04 +00:00
)
func TestBoolTrue(t *testing.T) {
g := goblin.Goblin(t)
g.Describe("Yaml bool type", func() {
g.Describe("given a yaml file", func() {
g.It("should unmarshal true", func() {
in := []byte("true")
out := BoolTrue{}
err := yaml.Unmarshal(in, &out)
if err != nil {
g.Fail(err)
}
g.Assert(out.Bool()).Equal(true)
})
g.It("should unmarshal false", func() {
in := []byte("false")
out := BoolTrue{}
err := yaml.Unmarshal(in, &out)
if err != nil {
g.Fail(err)
}
g.Assert(out.Bool()).Equal(false)
})
g.It("should unmarshal true when empty", func() {
in := []byte("")
out := BoolTrue{}
err := yaml.Unmarshal(in, &out)
if err != nil {
g.Fail(err)
}
g.Assert(out.Bool()).Equal(true)
})
g.It("should throw error when invalid", func() {
2019-11-14 19:16:03 +00:00
in := []byte("abc") // string value should fail parse
2019-04-06 13:44:04 +00:00
out := BoolTrue{}
err := yaml.Unmarshal(in, &out)
g.Assert(err).IsNotNil("expects error")
2019-04-06 13:44:04 +00:00
})
})
})
}