launchpad.net/~rogpeppe/juju-core/500-errgo-fix@v0.0.0-20140213181702-000000002356/provider/dummy/config_test.go (about) 1 // Copyright 2012, 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package dummy_test 5 6 import ( 7 gc "launchpad.net/gocheck" 8 9 "launchpad.net/juju-core/environs" 10 "launchpad.net/juju-core/environs/config" 11 "launchpad.net/juju-core/environs/configstore" 12 "launchpad.net/juju-core/provider/dummy" 13 "launchpad.net/juju-core/testing" 14 "launchpad.net/juju-core/testing/testbase" 15 ) 16 17 var _ = gc.Suite(&ConfigSuite{}) 18 19 type ConfigSuite struct { 20 testbase.LoggingSuite 21 } 22 23 func (s *ConfigSuite) TearDownTest(c *gc.C) { 24 s.LoggingSuite.TearDownTest(c) 25 dummy.Reset() 26 } 27 28 func (*ConfigSuite) TestSecretAttrs(c *gc.C) { 29 attrs := dummy.SampleConfig().Delete("secret") 30 cfg, err := config.New(config.NoDefaults, attrs) 31 c.Assert(err, gc.IsNil) 32 env, err := environs.Prepare(cfg, configstore.NewMem()) 33 c.Assert(err, gc.IsNil) 34 defer env.Destroy() 35 expected := map[string]string{ 36 "secret": "pork", 37 } 38 actual, err := env.Provider().SecretAttrs(cfg) 39 c.Assert(err, gc.IsNil) 40 c.Assert(actual, gc.DeepEquals, expected) 41 } 42 43 var firewallModeTests = []struct { 44 configFirewallMode string 45 firewallMode string 46 errorMsg string 47 }{ 48 { 49 // Empty value leads to default value. 50 firewallMode: config.FwInstance, 51 }, { 52 // Explicit default value. 53 configFirewallMode: "", 54 firewallMode: config.FwInstance, 55 }, { 56 // Instance mode. 57 configFirewallMode: "instance", 58 firewallMode: config.FwInstance, 59 }, { 60 // Global mode. 61 configFirewallMode: "global", 62 firewallMode: config.FwGlobal, 63 }, { 64 // Invalid mode. 65 configFirewallMode: "invalid", 66 errorMsg: `invalid firewall mode in environment configuration: "invalid"`, 67 }, 68 } 69 70 func (s *ConfigSuite) TestFirewallMode(c *gc.C) { 71 for i, test := range firewallModeTests { 72 c.Logf("test %d: %s", i, test.configFirewallMode) 73 attrs := dummy.SampleConfig() 74 if test.configFirewallMode != "" { 75 attrs = attrs.Merge(testing.Attrs{ 76 "firewall-mode": test.configFirewallMode, 77 }) 78 } 79 cfg, err := config.New(config.NoDefaults, attrs) 80 if err != nil { 81 c.Assert(err, gc.ErrorMatches, test.errorMsg) 82 continue 83 } 84 env, err := environs.Prepare(cfg, configstore.NewMem()) 85 if test.errorMsg != "" { 86 c.Assert(err, gc.ErrorMatches, test.errorMsg) 87 continue 88 } 89 c.Assert(err, gc.IsNil) 90 defer env.Destroy() 91 92 firewallMode := env.Config().FirewallMode() 93 c.Assert(firewallMode, gc.Equals, test.firewallMode) 94 95 s.TearDownTest(c) 96 } 97 }