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 }