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  }