1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
package config
import (
"testing"
. "gopkg.in/check.v1"
)
func Test(t *testing.T) { TestingT(t) }
type CommonSuite struct{}
var _ = Suite(&CommonSuite{})
func (s *CommonSuite) TestConfig_SetOption(c *C) {
obtained := New().SetOption("section", NoSubsection, "key1", "value1")
expected := &Config{
Sections: []*Section{
{
Name: "section",
Options: []*Option{
{Key: "key1", Value: "value1"},
},
},
},
}
c.Assert(obtained, DeepEquals, expected)
obtained = obtained.SetOption("section", NoSubsection, "key1", "value1")
c.Assert(obtained, DeepEquals, expected)
obtained = New().SetOption("section", "subsection", "key1", "value1")
expected = &Config{
Sections: []*Section{
{
Name: "section",
Subsections: []*Subsection{
{
Name: "subsection",
Options: []*Option{
{Key: "key1", Value: "value1"},
},
},
},
},
},
}
c.Assert(obtained, DeepEquals, expected)
obtained = obtained.SetOption("section", "subsection", "key1", "value1")
c.Assert(obtained, DeepEquals, expected)
}
func (s *CommonSuite) TestConfig_AddOption(c *C) {
obtained := New().AddOption("section", NoSubsection, "key1", "value1")
expected := &Config{
Sections: []*Section{
{
Name: "section",
Options: []*Option{
{Key: "key1", Value: "value1"},
},
},
},
}
c.Assert(obtained, DeepEquals, expected)
}
func (s *CommonSuite) TestConfig_HasSection(c *C) {
sect := New().
AddOption("section1", "sub1", "key1", "value1").
AddOption("section1", "sub2", "key1", "value1")
c.Assert(sect.HasSection("section1"), Equals, true)
c.Assert(sect.HasSection("section2"), Equals, false)
}
func (s *CommonSuite) TestConfig_RemoveSection(c *C) {
sect := New().
AddOption("section1", NoSubsection, "key1", "value1").
AddOption("section2", NoSubsection, "key1", "value1")
expected := New().
AddOption("section1", NoSubsection, "key1", "value1")
c.Assert(sect.RemoveSection("other"), DeepEquals, sect)
c.Assert(sect.RemoveSection("section2"), DeepEquals, expected)
}
func (s *CommonSuite) TestConfig_RemoveSubsection(c *C) {
sect := New().
AddOption("section1", "sub1", "key1", "value1").
AddOption("section1", "sub2", "key1", "value1")
expected := New().
AddOption("section1", "sub1", "key1", "value1")
c.Assert(sect.RemoveSubsection("section1", "other"), DeepEquals, sect)
c.Assert(sect.RemoveSubsection("other", "other"), DeepEquals, sect)
c.Assert(sect.RemoveSubsection("section1", "sub2"), DeepEquals, expected)
}
|