9 func makeSimpleConfig() *Config {
11 testConfig.Add("key_a", NewStringOption("default 1"))
12 testConfig.Add("key_b", NewIntOption(2))
13 testConfig.Add("user_test", NewUserOption(""))
14 testConfig.Add("user test 2", NewUserOption(""))
18 func TestConfig(t *testing.T) {
19 testConfig := makeSimpleConfig()
21 tv := testConfig.Get("key_a")
23 t.Errorf("Couldn't find key_a in testConfig")
26 t.Errorf("key_a reported non-default without changes")
28 sopt, ok := tv.(*StringOption)
30 t.Errorf("Failed return assertion for key_a back to StringOption")
32 if sopt.Value != "default 1" {
33 t.Errorf("key_a Value doesn't match initial configured value.")
37 tv = testConfig.Get("key_b")
39 t.Errorf("Couldn't find key_b in testConfig")
42 t.Errorf("key_b reported non-default without changes")
44 iopt, ok := tv.(*IntOption)
46 t.Errorf("Failed return assertion for key_b back to IntOption")
49 t.Errorf("key_b Value doesn't match initial configured value.")
53 tv = testConfig.Get("user_test")
55 t.Errorf("Couldn't find user_test in testConfig")
58 t.Errorf("user_test reported non-default without changes")
60 uopt, ok := tv.(*UserOption)
62 t.Errorf("Failed return assertion for user_test back to UserOption")
65 if err != EmptyUserSet {
66 t.Errorf("user_test didn't claim it set empty.")
70 tv = testConfig.Get("user test 2")
72 t.Errorf("Couldn't find \"user test 2\" in testConfig")
75 t.Errorf("user test 2 reported non-default without changes")
77 uopt, ok := tv.(*UserOption)
79 t.Errorf("Failed return assertion for user test 2 back to UserOption")
82 if err != EmptyUserSet {
83 t.Errorf("user test 2 didn't claim it set empty.")
87 tv = testConfig.Get("key_c")
89 t.Errorf("Found non-existant key_c in testConfig")
93 func TestFileRead(t *testing.T) {
94 testConfig := makeSimpleConfig()
95 fh, err := os.Open("sample.conf")
97 t.Fatalf("Failed to open sample.conf: %s", err)
99 err = testConfig.Read(fh, 1)
101 t.Fatalf("Got error reading config: %s", err)
105 tv := testConfig.Get("key_a")
107 t.Errorf("Couldn't find key_a in testConfig")
110 t.Errorf("key_a reported default despite config file")
112 sopt, ok := tv.(*StringOption)
114 t.Errorf("Failed return assertion for key_a back to StringOption")
116 if sopt.Value != "Alternate Value" {
117 t.Errorf("key_a Value doesn't match expected value.")
121 tv = testConfig.Get("key_b")
123 t.Errorf("Couldn't find key_b in testConfig")
126 t.Errorf("key_b reported default despite config file")
128 iopt, ok := tv.(*IntOption)
130 t.Errorf("Failed return assertion for key_b back to IntOption")
132 if iopt.Value != 27 {
133 t.Errorf("key_b Value doesn't match expected value.")
137 tv = testConfig.Get("user_test")
139 t.Errorf("Couldn't find user_test in testConfig")
142 t.Errorf("user_test reported default despite changes")
144 uopt, ok := tv.(*UserOption)
146 t.Errorf("Failed return assertion for user_test back to UserOption")
148 uinfo, err := uopt.User()
150 t.Errorf("Error whilst looking up UID: %s", err)
153 t.Errorf("user_test Value doesn't match expected value.")
157 tv = testConfig.Get("user test 2")
159 t.Errorf("Couldn't find \"user test 2\" in testConfig")
162 t.Errorf("user test 2 reported default despite changes")
164 uopt, ok := tv.(*UserOption)
166 t.Errorf("Failed return assertion for user test 2 back to UserOption")
168 uinfo, err := uopt.User()
170 t.Errorf("Error whilst looking up UID: %s", err)
173 t.Errorf("user test 2 Value doesn't match expected value.")
175 if uinfo.Username != "daemon" {
176 t.Errorf("user test 2 name lookup didn't match expected value (ignore if not debian/ubuntu/linux?).")