github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/payload/api/private/helpers_test.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package private_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 "gopkg.in/juju/charm.v6" 12 "gopkg.in/juju/names.v2" 13 14 "github.com/juju/juju/apiserver/common" 15 "github.com/juju/juju/apiserver/params" 16 "github.com/juju/juju/payload" 17 "github.com/juju/juju/payload/api/private" 18 ) 19 20 type internalHelpersSuite struct { 21 testing.IsolationSuite 22 } 23 24 var _ = gc.Suite(&internalHelpersSuite{}) 25 26 func (internalHelpersSuite) TestAPI2ResultOkay(c *gc.C) { 27 id := "ce5bc2a7-65d8-4800-8199-a7c3356ab309" 28 result, err := private.API2Result(params.PayloadResult{ 29 Entity: params.Entity{ 30 Tag: names.NewPayloadTag(id).String(), 31 }, 32 Payload: nil, 33 NotFound: false, 34 Error: nil, 35 }) 36 c.Assert(err, jc.ErrorIsNil) 37 38 c.Check(result, jc.DeepEquals, payload.Result{ 39 ID: id, 40 Payload: nil, 41 NotFound: false, 42 Error: nil, 43 }) 44 } 45 46 func (internalHelpersSuite) TestAPI2ResultInfo(c *gc.C) { 47 id := "ce5bc2a7-65d8-4800-8199-a7c3356ab309" 48 result, err := private.API2Result(params.PayloadResult{ 49 Entity: params.Entity{ 50 Tag: names.NewPayloadTag(id).String(), 51 }, 52 NotFound: false, 53 Error: nil, 54 Payload: ¶ms.Payload{ 55 Class: "foobar", 56 Type: "type", 57 ID: "idfoo", 58 Status: payload.StateRunning, 59 Unit: "unit-a-application-0", 60 Machine: "machine-1", 61 }, 62 }) 63 c.Assert(err, jc.ErrorIsNil) 64 65 c.Check(result, jc.DeepEquals, payload.Result{ 66 ID: id, 67 NotFound: false, 68 Error: nil, 69 Payload: &payload.FullPayloadInfo{ 70 Payload: payload.Payload{ 71 PayloadClass: charm.PayloadClass{ 72 Name: "foobar", 73 Type: "type", 74 }, 75 ID: "idfoo", 76 Status: payload.StateRunning, 77 Unit: "a-application/0", 78 }, 79 Machine: "1", 80 }, 81 }) 82 } 83 84 func (internalHelpersSuite) TestAPI2ResultError(c *gc.C) { 85 id := "ce5bc2a7-65d8-4800-8199-a7c3356ab309" 86 failure := errors.New("<failure>") 87 result, err := private.API2Result(params.PayloadResult{ 88 Entity: params.Entity{ 89 Tag: names.NewPayloadTag(id).String(), 90 }, 91 Payload: nil, 92 NotFound: false, 93 Error: common.ServerError(failure), 94 }) 95 c.Assert(err, jc.ErrorIsNil) 96 97 c.Check(result.Error.Error(), gc.Equals, failure.Error()) 98 c.Check(result, jc.DeepEquals, payload.Result{ 99 ID: id, 100 Payload: nil, 101 NotFound: false, 102 Error: result.Error, // The actual error is checked above. 103 }) 104 } 105 106 func (internalHelpersSuite) TestAPI2ResultNotFound(c *gc.C) { 107 id := "ce5bc2a7-65d8-4800-8199-a7c3356ab309" 108 notFound := errors.NotFoundf("payload %q", id) 109 result, err := private.API2Result(params.PayloadResult{ 110 Entity: params.Entity{ 111 Tag: names.NewPayloadTag(id).String(), 112 }, 113 Payload: nil, 114 NotFound: false, 115 Error: common.ServerError(notFound), 116 }) 117 c.Assert(err, jc.ErrorIsNil) 118 119 c.Check(result.Error.Error(), gc.Equals, notFound.Error()) 120 c.Check(result.Error, jc.Satisfies, errors.IsNotFound) 121 c.Check(result, jc.DeepEquals, payload.Result{ 122 ID: id, 123 Payload: nil, 124 NotFound: false, 125 Error: result.Error, // The actual error is checked above. 126 }) 127 }