gopkg.in/juju/charm.v6-unstable@v6.0.0-20171026192109-50d0c219b496/resource/origin_test.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package resource_test
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  	"github.com/juju/testing"
     9  	jc "github.com/juju/testing/checkers"
    10  	gc "gopkg.in/check.v1"
    11  
    12  	"gopkg.in/juju/charm.v6-unstable/resource"
    13  )
    14  
    15  type OriginSuite struct {
    16  	testing.IsolationSuite
    17  }
    18  
    19  var _ = gc.Suite(&OriginSuite{})
    20  
    21  func (OriginSuite) TestParseOriginKnown(c *gc.C) {
    22  	recognized := map[string]resource.Origin{
    23  		"upload": resource.OriginUpload,
    24  		"store":  resource.OriginStore,
    25  	}
    26  	for value, expected := range recognized {
    27  		origin, err := resource.ParseOrigin(value)
    28  
    29  		c.Check(err, jc.ErrorIsNil)
    30  		c.Check(origin, gc.Equals, expected)
    31  	}
    32  }
    33  
    34  func (OriginSuite) TestParseOriginUnknown(c *gc.C) {
    35  	_, err := resource.ParseOrigin("<invalid>")
    36  
    37  	c.Check(err, gc.ErrorMatches, `.*unknown origin "<invalid>".*`)
    38  }
    39  
    40  func (OriginSuite) TestValidateKnown(c *gc.C) {
    41  	recognized := []resource.Origin{
    42  		resource.OriginUpload,
    43  		resource.OriginStore,
    44  	}
    45  	for _, origin := range recognized {
    46  		err := origin.Validate()
    47  
    48  		c.Check(err, jc.ErrorIsNil)
    49  	}
    50  }
    51  
    52  func (OriginSuite) TestValidateUnknown(c *gc.C) {
    53  	var origin resource.Origin
    54  	err := origin.Validate()
    55  
    56  	c.Check(errors.Cause(err), jc.Satisfies, errors.IsNotValid)
    57  	c.Check(err, gc.ErrorMatches, `.*unknown origin.*`)
    58  }