github.com/cloudbase/juju-core@v0.0.0-20140504232958-a7271ac7912f/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 ctx := testing.Context(c) 33 env, err := environs.Prepare(cfg, ctx, configstore.NewMem()) 34 c.Assert(err, gc.IsNil) 35 defer env.Destroy() 36 expected := map[string]string{ 37 "secret": "pork", 38 } 39 actual, err := env.Provider().SecretAttrs(cfg) 40 c.Assert(err, gc.IsNil) 41 c.Assert(actual, gc.DeepEquals, expected) 42 } 43 44 var firewallModeTests = []struct { 45 configFirewallMode string 46 firewallMode string 47 errorMsg string 48 }{ 49 { 50 // Empty value leads to default value. 51 firewallMode: config.FwInstance, 52 }, { 53 // Explicit default value. 54 configFirewallMode: "", 55 firewallMode: config.FwInstance, 56 }, { 57 // Instance mode. 58 configFirewallMode: "instance", 59 firewallMode: config.FwInstance, 60 }, { 61 // Global mode. 62 configFirewallMode: "global", 63 firewallMode: config.FwGlobal, 64 }, { 65 // Invalid mode. 66 configFirewallMode: "invalid", 67 errorMsg: `invalid firewall mode in environment configuration: "invalid"`, 68 }, 69 } 70 71 func (s *ConfigSuite) TestFirewallMode(c *gc.C) { 72 for i, test := range firewallModeTests { 73 c.Logf("test %d: %s", i, test.configFirewallMode) 74 attrs := dummy.SampleConfig() 75 if test.configFirewallMode != "" { 76 attrs = attrs.Merge(testing.Attrs{ 77 "firewall-mode": test.configFirewallMode, 78 }) 79 } 80 cfg, err := config.New(config.NoDefaults, attrs) 81 if err != nil { 82 c.Assert(err, gc.ErrorMatches, test.errorMsg) 83 continue 84 } 85 ctx := testing.Context(c) 86 env, err := environs.Prepare(cfg, ctx, configstore.NewMem()) 87 if test.errorMsg != "" { 88 c.Assert(err, gc.ErrorMatches, test.errorMsg) 89 continue 90 } 91 c.Assert(err, gc.IsNil) 92 defer env.Destroy() 93 94 firewallMode := env.Config().FirewallMode() 95 c.Assert(firewallMode, gc.Equals, test.firewallMode) 96 97 s.TearDownTest(c) 98 } 99 }