github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/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: &params.Error{Message: ""}}})
    37  }
    38  
    39  func (s *funcMetadataSuite) TestProcessErrorsFullError(c *gc.C) {
    40  	msg := "my bad"
    41  
    42  	errs := []params.ErrorResult{{Error: &params.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: &params.Error{Message: msg1}},
    57  		{Error: &params.Error{Message: ""}},
    58  		{Error: nil},
    59  		{Error: &params.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  }