Index: state/apiserver/client/client_test.go |
=== modified file 'state/apiserver/client/client_test.go' |
--- state/apiserver/client/client_test.go 2013-08-26 17:38:19 +0000 |
+++ state/apiserver/client/client_test.go 2013-09-11 08:12:49 +0000 |
@@ -30,32 +30,83 @@ |
c.Assert(status, gc.DeepEquals, scenarioStatus) |
} |
+func (s *clientSuite) TestCompatibleSettingsParsing(c *gc.C) { |
+ // Test the exported settings parsing in a compatible way. |
+ _, err := s.State.AddService("dummy", s.AddTestingCharm(c, "dummy")) |
+ c.Assert(err, gc.IsNil) |
+ service, err := s.State.Service("dummy") |
+ c.Assert(err, gc.IsNil) |
+ ch, _, err := service.Charm() |
+ c.Assert(err, gc.IsNil) |
+ c.Assert(ch.URL().String(), gc.Equals, "local:series/dummy-1") |
+ |
+ // Empty string will be returned as nil. |
+ options := map[string]string{ |
+ "title": "foobar", |
+ "username": "", |
+ } |
+ settings, err := client.ParseSettingsCompatible(ch, options) |
+ c.Assert(err, gc.IsNil) |
+ c.Assert(settings, gc.DeepEquals, charm.Settings{ |
+ "title": "foobar", |
+ "username": nil, |
+ }) |
+ |
+ // Illegal settings lead to an error. |
+ options = map[string]string{ |
+ "yummy": "didgeridoo", |
+ } |
+ settings, err = client.ParseSettingsCompatible(ch, options) |
+ c.Assert(err, gc.ErrorMatches, `unknown option "yummy"`) |
+} |
+ |
func (s *clientSuite) TestClientServerSet(c *gc.C) { |
dummy, err := s.State.AddService("dummy", s.AddTestingCharm(c, "dummy")) |
c.Assert(err, gc.IsNil) |
+ |
err = s.APIState.Client().ServiceSet("dummy", map[string]string{ |
- "title": "xxx", |
- "username": "yyy", |
+ "title": "foobar", |
+ "username": "user name", |
}) |
c.Assert(err, gc.IsNil) |
settings, err := dummy.ConfigSettings() |
c.Assert(err, gc.IsNil) |
c.Assert(settings, gc.DeepEquals, charm.Settings{ |
- "title": "xxx", |
- "username": "yyy", |
+ "title": "foobar", |
+ "username": "user name", |
+ }) |
+ |
+ err = s.APIState.Client().ServiceSet("dummy", map[string]string{ |
+ "title": "barfoo", |
+ "username": "", |
+ }) |
+ c.Assert(err, gc.IsNil) |
+ settings, err = dummy.ConfigSettings() |
+ c.Assert(err, gc.IsNil) |
+ c.Assert(settings, gc.DeepEquals, charm.Settings{ |
+ "title": "barfoo", |
}) |
} |
func (s *clientSuite) TestClientServiceSetYAML(c *gc.C) { |
dummy, err := s.State.AddService("dummy", s.AddTestingCharm(c, "dummy")) |
c.Assert(err, gc.IsNil) |
- err = s.APIState.Client().ServiceSetYAML("dummy", "dummy:\n title: aaa\n username: bbb") |
+ |
+ err = s.APIState.Client().ServiceSetYAML("dummy", "dummy:\n title: foobar\n username: user name\n") |
c.Assert(err, gc.IsNil) |
settings, err := dummy.ConfigSettings() |
c.Assert(err, gc.IsNil) |
c.Assert(settings, gc.DeepEquals, charm.Settings{ |
- "title": "aaa", |
- "username": "bbb", |
+ "title": "foobar", |
+ "username": "user name", |
+ }) |
+ |
+ err = s.APIState.Client().ServiceSetYAML("dummy", "dummy:\n title: barfoo\n username: \n") |
+ c.Assert(err, gc.IsNil) |
+ settings, err = dummy.ConfigSettings() |
+ c.Assert(err, gc.IsNil) |
+ c.Assert(settings, gc.DeepEquals, charm.Settings{ |
+ "title": "barfoo", |
}) |
} |