github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/cmd/jujud/agent/model/errors_test.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package model_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 "github.com/juju/juju/cmd/jujud/agent/model" 13 "github.com/juju/juju/worker/dependency" 14 "github.com/juju/juju/worker/lifeflag" 15 ) 16 17 type ErrorsSuite struct { 18 testing.IsolationSuite 19 } 20 21 var _ = gc.Suite(&ErrorsSuite{}) 22 23 func (*ErrorsSuite) TestIsFatal_Nil(c *gc.C) { 24 result := model.IsFatal(nil) 25 c.Check(result, jc.IsFalse) 26 } 27 28 func (*ErrorsSuite) TestIsFatal_Random(c *gc.C) { 29 err := errors.New("whatever") 30 result := model.IsFatal(err) 31 c.Check(result, jc.IsFalse) 32 } 33 34 func (*ErrorsSuite) TestIsFatal_Exact(c *gc.C) { 35 err := model.ErrRemoved 36 result := model.IsFatal(err) 37 c.Check(result, jc.IsTrue) 38 } 39 40 func (*ErrorsSuite) TestIsFatal_Traced(c *gc.C) { 41 err := errors.Trace(model.ErrRemoved) 42 result := model.IsFatal(err) 43 c.Check(result, jc.IsTrue) 44 } 45 46 func (*ErrorsSuite) TestIgnoreErrRemoved_Nil(c *gc.C) { 47 result := model.IgnoreErrRemoved(nil) 48 c.Check(result, jc.ErrorIsNil) 49 } 50 51 func (*ErrorsSuite) TestIgnoreErrRemoved_Random(c *gc.C) { 52 err := errors.New("whatever") 53 result := model.IgnoreErrRemoved(err) 54 c.Check(result, gc.Equals, err) 55 } 56 57 func (*ErrorsSuite) TestIgnoreErrRemoved_Exact(c *gc.C) { 58 err := model.ErrRemoved 59 result := model.IgnoreErrRemoved(err) 60 c.Check(result, jc.ErrorIsNil) 61 } 62 63 func (*ErrorsSuite) TestIgnoreErrRemoved_Traced(c *gc.C) { 64 err := errors.Trace(model.ErrRemoved) 65 result := model.IgnoreErrRemoved(err) 66 c.Check(result, jc.ErrorIsNil) 67 } 68 69 func (*ErrorsSuite) TestLifeFilter_Nil(c *gc.C) { 70 result := model.LifeFilter(nil) 71 c.Check(result, jc.ErrorIsNil) 72 } 73 74 func (*ErrorsSuite) TestLifeFilter_Random(c *gc.C) { 75 err := errors.New("whatever") 76 result := model.LifeFilter(err) 77 c.Check(result, gc.Equals, err) 78 } 79 80 func (*ErrorsSuite) TestLifeFilter_ValueChanged_Exact(c *gc.C) { 81 err := lifeflag.ErrValueChanged 82 result := model.LifeFilter(err) 83 c.Check(result, gc.Equals, dependency.ErrBounce) 84 } 85 86 func (*ErrorsSuite) TestLifeFilter_ValueChanged_Traced(c *gc.C) { 87 err := errors.Trace(lifeflag.ErrValueChanged) 88 result := model.LifeFilter(err) 89 c.Check(result, gc.Equals, dependency.ErrBounce) 90 } 91 92 func (*ErrorsSuite) TestLifeFilter_NotFound_Exact(c *gc.C) { 93 err := lifeflag.ErrNotFound 94 result := model.LifeFilter(err) 95 c.Check(result, gc.Equals, model.ErrRemoved) 96 } 97 98 func (*ErrorsSuite) TestLifeFilter_NotFound_Traced(c *gc.C) { 99 err := errors.Trace(lifeflag.ErrNotFound) 100 result := model.LifeFilter(err) 101 c.Check(result, gc.Equals, model.ErrRemoved) 102 }