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  }