github.com/altoros/juju-vmware@v0.0.0-20150312064031-f19ae857ccca/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 jc "github.com/juju/testing/checkers" 8 gc "gopkg.in/check.v1" 9 10 "github.com/juju/juju/environs" 11 "github.com/juju/juju/environs/config" 12 "github.com/juju/juju/environs/configstore" 13 envtesting "github.com/juju/juju/environs/testing" 14 "github.com/juju/juju/provider/dummy" 15 "github.com/juju/juju/testing" 16 ) 17 18 var _ = gc.Suite(&ConfigSuite{}) 19 20 type ConfigSuite struct { 21 testing.BaseSuite 22 } 23 24 func (s *ConfigSuite) TearDownTest(c *gc.C) { 25 s.BaseSuite.TearDownTest(c) 26 dummy.Reset() 27 } 28 29 func (*ConfigSuite) TestSecretAttrs(c *gc.C) { 30 attrs := dummy.SampleConfig().Delete("secret") 31 cfg, err := config.New(config.NoDefaults, attrs) 32 c.Assert(err, jc.ErrorIsNil) 33 ctx := envtesting.BootstrapContext(c) 34 env, err := environs.Prepare(cfg, ctx, configstore.NewMem()) 35 c.Assert(err, jc.ErrorIsNil) 36 defer env.Destroy() 37 expected := map[string]string{ 38 "secret": "pork", 39 } 40 actual, err := env.Provider().SecretAttrs(cfg) 41 c.Assert(err, jc.ErrorIsNil) 42 c.Assert(actual, gc.DeepEquals, expected) 43 } 44 45 var firewallModeTests = []struct { 46 configFirewallMode string 47 firewallMode string 48 errorMsg string 49 }{ 50 { 51 // Empty value leads to default value. 52 firewallMode: config.FwInstance, 53 }, { 54 // Explicit default value. 55 configFirewallMode: "", 56 firewallMode: config.FwInstance, 57 }, { 58 // Instance mode. 59 configFirewallMode: "instance", 60 firewallMode: config.FwInstance, 61 }, { 62 // Global mode. 63 configFirewallMode: "global", 64 firewallMode: config.FwGlobal, 65 }, { 66 // Invalid mode. 67 configFirewallMode: "invalid", 68 errorMsg: `invalid firewall mode in environment configuration: "invalid"`, 69 }, 70 } 71 72 func (s *ConfigSuite) TestFirewallMode(c *gc.C) { 73 for i, test := range firewallModeTests { 74 c.Logf("test %d: %s", i, test.configFirewallMode) 75 attrs := dummy.SampleConfig() 76 if test.configFirewallMode != "" { 77 attrs = attrs.Merge(testing.Attrs{ 78 "firewall-mode": test.configFirewallMode, 79 }) 80 } 81 cfg, err := config.New(config.NoDefaults, attrs) 82 if err != nil { 83 c.Assert(err, gc.ErrorMatches, test.errorMsg) 84 continue 85 } 86 ctx := envtesting.BootstrapContext(c) 87 env, err := environs.Prepare(cfg, ctx, configstore.NewMem()) 88 if test.errorMsg != "" { 89 c.Assert(err, gc.ErrorMatches, test.errorMsg) 90 continue 91 } 92 c.Assert(err, jc.ErrorIsNil) 93 defer env.Destroy() 94 95 firewallMode := env.Config().FirewallMode() 96 c.Assert(firewallMode, gc.Equals, test.firewallMode) 97 98 s.TearDownTest(c) 99 } 100 }