gopkg.in/essentialkaos/ek.v3@v3.5.1/errutil/errutil_test.go (about) 1 package errutil 2 3 // ////////////////////////////////////////////////////////////////////////////////// // 4 // // 5 // Copyright (c) 2009-2016 Essential Kaos // 6 // Essential Kaos Open Source License <http://essentialkaos.com/ekol?en> // 7 // // 8 // ////////////////////////////////////////////////////////////////////////////////// // 9 10 import ( 11 "errors" 12 "testing" 13 14 . "pkg.re/check.v1" 15 ) 16 17 // ////////////////////////////////////////////////////////////////////////////////// // 18 19 func Test(t *testing.T) { TestingT(t) } 20 21 type ErrSuite struct{} 22 23 // ////////////////////////////////////////////////////////////////////////////////// // 24 25 var _ = Suite(&ErrSuite{}) 26 27 // ////////////////////////////////////////////////////////////////////////////////// // 28 29 func (s *ErrSuite) TestPositive(c *C) { 30 errs := NewErrors() 31 32 errs.Add() 33 errs.Add(nil) 34 errs.Add(errors.New("1")) 35 errs.Add(errors.New("2")) 36 errs.Add(errors.New("3")) 37 errs.Add(errors.New("4")) 38 errs.Add(errors.New("5")) 39 40 c.Assert(errs.Num(), Equals, 5) 41 c.Assert(errs.All(), HasLen, 5) 42 c.Assert(errs.HasErrors(), Equals, true) 43 c.Assert(errs.Last(), DeepEquals, errors.New("5")) 44 c.Assert(errs.All(), DeepEquals, 45 []error{ 46 errors.New("1"), 47 errors.New("2"), 48 errors.New("3"), 49 errors.New("4"), 50 errors.New("5"), 51 }, 52 ) 53 c.Assert(errs.Add(nil), NotNil) 54 } 55 56 func (s *ErrSuite) TestNegative(c *C) { 57 errs := NewErrors() 58 59 c.Assert(errs.All(), HasLen, 0) 60 c.Assert(errs.HasErrors(), Equals, false) 61 c.Assert(errs.Last(), IsNil) 62 } 63 64 func (s *ErrSuite) TestChain(c *C) { 65 f1 := func() error { 66 return nil 67 } 68 69 f2 := func() error { 70 return errors.New("Error #2") 71 } 72 73 f3 := func() error { 74 return nil 75 } 76 77 c.Assert(Chain(f1, f2, f3), NotNil) 78 c.Assert(Chain(f1, f3), IsNil) 79 }