github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/jujuclient/modelvalidation_test.go (about)

     1  // Copyright 2016 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package jujuclient_test
     5  
     6  import (
     7  	jc "github.com/juju/testing/checkers"
     8  	gc "gopkg.in/check.v1"
     9  
    10  	"github.com/juju/juju/jujuclient"
    11  	"github.com/juju/juju/testing"
    12  )
    13  
    14  type ModelValidationSuite struct {
    15  	testing.BaseSuite
    16  	model jujuclient.ModelDetails
    17  }
    18  
    19  func (s *ModelValidationSuite) SetUpTest(c *gc.C) {
    20  	s.BaseSuite.SetUpTest(c)
    21  	s.model = jujuclient.ModelDetails{
    22  		"test.uuid",
    23  	}
    24  }
    25  
    26  var _ = gc.Suite(&ModelValidationSuite{})
    27  
    28  func (s *ModelValidationSuite) TestValidateModelName(c *gc.C) {
    29  	c.Assert(jujuclient.ValidateModelName("foo@bar/baz"), jc.ErrorIsNil)
    30  	c.Assert(jujuclient.ValidateModelName("foo"), gc.ErrorMatches, `validating model name "foo": unqualified model name "foo" not valid`)
    31  	c.Assert(jujuclient.ValidateModelName(""), gc.ErrorMatches, `validating model name "": unqualified model name "" not valid`)
    32  	c.Assert(jujuclient.ValidateModelName("!"), gc.ErrorMatches, `validating model name "!": unqualified model name "!" not valid`)
    33  	c.Assert(jujuclient.ValidateModelName("!/foo"), gc.ErrorMatches, `validating model name "!/foo": user name "!" not valid`)
    34  }
    35  
    36  func (s *ModelValidationSuite) TestValidateModelDetailsNoModelUUID(c *gc.C) {
    37  	s.model.ModelUUID = ""
    38  	s.assertValidateModelDetailsFails(c, "missing uuid, model details not valid")
    39  }
    40  
    41  func (s *ModelValidationSuite) assertValidateModelDetailsFails(c *gc.C, failureMessage string) {
    42  	err := jujuclient.ValidateModelDetails(s.model)
    43  	c.Assert(err, gc.ErrorMatches, failureMessage)
    44  }