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 }