1package config
2
3import (
4	. "gopkg.in/check.v1"
5)
6
7type OptionSuite struct{}
8
9var _ = Suite(&OptionSuite{})
10
11func (s *OptionSuite) TestOptions_Has(c *C) {
12	o := Options{
13		&Option{"k", "v"},
14		&Option{"ok", "v1"},
15		&Option{"K", "v2"},
16	}
17	c.Assert(o.Has("k"), Equals, true)
18	c.Assert(o.Has("K"), Equals, true)
19	c.Assert(o.Has("ok"), Equals, true)
20	c.Assert(o.Has("unexistant"), Equals, false)
21
22	o = Options{}
23	c.Assert(o.Has("k"), Equals, false)
24}
25
26func (s *OptionSuite) TestOptions_GetAll(c *C) {
27	o := Options{
28		&Option{"k", "v"},
29		&Option{"ok", "v1"},
30		&Option{"K", "v2"},
31	}
32	c.Assert(o.GetAll("k"), DeepEquals, []string{"v", "v2"})
33	c.Assert(o.GetAll("K"), DeepEquals, []string{"v", "v2"})
34	c.Assert(o.GetAll("ok"), DeepEquals, []string{"v1"})
35	c.Assert(o.GetAll("unexistant"), DeepEquals, []string{})
36
37	o = Options{}
38	c.Assert(o.GetAll("k"), DeepEquals, []string{})
39}
40
41func (s *OptionSuite) TestOption_IsKey(c *C) {
42	c.Assert((&Option{Key: "key"}).IsKey("key"), Equals, true)
43	c.Assert((&Option{Key: "key"}).IsKey("KEY"), Equals, true)
44	c.Assert((&Option{Key: "KEY"}).IsKey("key"), Equals, true)
45	c.Assert((&Option{Key: "key"}).IsKey("other"), Equals, false)
46	c.Assert((&Option{Key: "key"}).IsKey(""), Equals, false)
47	c.Assert((&Option{Key: ""}).IsKey("key"), Equals, false)
48}
49