github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/apiserver/imagemetadata/functions_test.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package imagemetadata_test 5 6 import ( 7 "fmt" 8 9 jc "github.com/juju/testing/checkers" 10 gc "gopkg.in/check.v1" 11 12 "github.com/juju/juju/apiserver/imagemetadata" 13 "github.com/juju/juju/apiserver/params" 14 "github.com/juju/juju/testing" 15 ) 16 17 type funcMetadataSuite struct { 18 testing.BaseSuite 19 } 20 21 var _ = gc.Suite(&funcMetadataSuite{}) 22 23 func (s *funcMetadataSuite) TestProcessErrorsNil(c *gc.C) { 24 s.assertProcessErrorsNone(c, nil) 25 } 26 27 func (s *funcMetadataSuite) TestProcessErrorsEmpty(c *gc.C) { 28 s.assertProcessErrorsNone(c, []params.ErrorResult{}) 29 } 30 31 func (s *funcMetadataSuite) TestProcessErrorsNilError(c *gc.C) { 32 s.assertProcessErrorsNone(c, []params.ErrorResult{{Error: nil}}) 33 } 34 35 func (s *funcMetadataSuite) TestProcessErrorsEmptyMessageError(c *gc.C) { 36 s.assertProcessErrorsNone(c, []params.ErrorResult{{Error: ¶ms.Error{Message: ""}}}) 37 } 38 39 func (s *funcMetadataSuite) TestProcessErrorsFullError(c *gc.C) { 40 msg := "my bad" 41 42 errs := []params.ErrorResult{{Error: ¶ms.Error{Message: msg}}} 43 44 expected := fmt.Sprintf(` 45 saving some image metadata: 46 %v`[1:], msg) 47 48 s.assertProcessErrors(c, errs, expected) 49 } 50 51 func (s *funcMetadataSuite) TestProcessErrorsMany(c *gc.C) { 52 msg1 := "my bad" 53 msg2 := "my good" 54 55 errs := []params.ErrorResult{ 56 {Error: ¶ms.Error{Message: msg1}}, 57 {Error: ¶ms.Error{Message: ""}}, 58 {Error: nil}, 59 {Error: ¶ms.Error{Message: msg2}}, 60 } 61 62 expected := fmt.Sprintf(` 63 saving some image metadata: 64 %v 65 %v`[1:], msg1, msg2) 66 67 s.assertProcessErrors(c, errs, expected) 68 } 69 70 var process = imagemetadata.ProcessErrors 71 72 func (s *funcMetadataSuite) assertProcessErrorsNone(c *gc.C, errs []params.ErrorResult) { 73 c.Assert(process(errs), jc.ErrorIsNil) 74 } 75 76 func (s *funcMetadataSuite) assertProcessErrors(c *gc.C, errs []params.ErrorResult, expected string) { 77 c.Assert(process(errs), gc.ErrorMatches, expected) 78 }