github.com/juju/charmrepo/v7@v7.0.1/csclient/params/params_test.go (about)

     1  // Copyright 2014 Canonical Ltd.
     2  // Licensed under the LGPLv3, see LICENCE file for details.
     3  
     4  package params_test // import "github.com/juju/charmrepo/v7/csclient/params"
     5  
     6  import (
     7  	"encoding/json"
     8  	"net/textproto"
     9  
    10  	"github.com/go-macaroon-bakery/macaroon-bakery/v3/httpbakery"
    11  	jc "github.com/juju/testing/checkers"
    12  	gc "gopkg.in/check.v1"
    13  
    14  	"github.com/juju/charmrepo/v7/csclient/params"
    15  )
    16  
    17  type suite struct{}
    18  
    19  var _ = gc.Suite(&suite{})
    20  
    21  func (*suite) TestContentHashHeaderCanonicalized(c *gc.C) {
    22  	// The header key should be canonicalized, because otherwise
    23  	// the actually produced header will be different from that
    24  	// specified.
    25  	canon := textproto.CanonicalMIMEHeaderKey(params.ContentHashHeader)
    26  	c.Assert(canon, gc.Equals, params.ContentHashHeader)
    27  }
    28  
    29  func (*suite) TestBakeryErrorCompatibility(c *gc.C) {
    30  	err1 := httpbakery.Error{
    31  		Code:    httpbakery.ErrBadRequest,
    32  		Message: "some request",
    33  	}
    34  	err2 := params.Error{
    35  		Code:    params.ErrBadRequest,
    36  		Message: "some request",
    37  	}
    38  	data1, err := json.Marshal(err1)
    39  	c.Assert(err, gc.IsNil)
    40  	c.Assert(string(data1), jc.JSONEquals, err2)
    41  }