github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/state/macaroon_helpers_test.go (about)

     1  // Copyright 2020 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package state_test
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  	jc "github.com/juju/testing/checkers"
     9  	gc "gopkg.in/check.v1"
    10  	"gopkg.in/macaroon.v2"
    11  )
    12  
    13  func newMacaroon(id string) (*macaroon.Macaroon, error) {
    14  	return macaroon.New(nil, []byte(id), "", macaroon.LatestVersion)
    15  }
    16  
    17  func assertMacaroonsEqual(c *gc.C, ms1, ms2 []macaroon.Slice) error {
    18  	if len(ms1) != len(ms2) {
    19  		return errors.Errorf("length mismatch, %d vs %d", len(ms1), len(ms2))
    20  	}
    21  
    22  	for i := 0; i < len(ms1); i++ {
    23  		m1 := ms1[i]
    24  		m2 := ms2[i]
    25  		if len(m1) != len(m2) {
    26  			return errors.Errorf("length mismatch, %d vs %d", len(m1), len(m2))
    27  		}
    28  		for i := 0; i < len(m1); i++ {
    29  			assertMacaroonEquals(c, m1[i], m2[i])
    30  		}
    31  	}
    32  	return nil
    33  }
    34  
    35  func assertMacaroonEquals(c *gc.C, m1, m2 *macaroon.Macaroon) {
    36  	c.Assert(m1.Id(), jc.DeepEquals, m2.Id())
    37  	c.Assert(m1.Signature(), jc.DeepEquals, m2.Signature())
    38  	c.Assert(m1.Location(), jc.DeepEquals, m2.Location())
    39  }