github.com/mattyw/juju@v0.0.0-20140610034352-732aecd63861/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 "github.com/juju/juju/environs" 10 "github.com/juju/juju/environs/config" 11 "github.com/juju/juju/environs/configstore" 12 "github.com/juju/juju/provider/dummy" 13 "github.com/juju/juju/testing" 14 ) 15 16 var _ = gc.Suite(&ConfigSuite{}) 17 18 type ConfigSuite struct { 19 testing.BaseSuite 20 } 21 22 func (s *ConfigSuite) TearDownTest(c *gc.C) { 23 s.BaseSuite.TearDownTest(c) 24 dummy.Reset() 25 } 26 27 func (*ConfigSuite) TestSecretAttrs(c *gc.C) { 28 attrs := dummy.SampleConfig().Delete("secret") 29 cfg, err := config.New(config.NoDefaults, attrs) 30 c.Assert(err, gc.IsNil) 31 ctx := testing.Context(c) 32 env, err := environs.Prepare(cfg, ctx, 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 ctx := testing.Context(c) 85 env, err := environs.Prepare(cfg, ctx, configstore.NewMem()) 86 if test.errorMsg != "" { 87 c.Assert(err, gc.ErrorMatches, test.errorMsg) 88 continue 89 } 90 c.Assert(err, gc.IsNil) 91 defer env.Destroy() 92 93 firewallMode := env.Config().FirewallMode() 94 c.Assert(firewallMode, gc.Equals, test.firewallMode) 95 96 s.TearDownTest(c) 97 } 98 }