github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/core/secrets/secretvalue_test.go (about) 1 // Copyright 2021 Canonical Ltd. 2 // Licensed under the LGPLv3, see LICENCE file for details. 3 4 package secrets_test 5 6 import ( 7 "encoding/base64" 8 9 jc "github.com/juju/testing/checkers" 10 gc "gopkg.in/check.v1" 11 12 "github.com/juju/juju/core/secrets" 13 ) 14 15 type SecretValueSuite struct{} 16 17 var _ = gc.Suite(&SecretValueSuite{}) 18 19 func (s *SecretValueSuite) TestEncodedValues(c *gc.C) { 20 in := map[string]string{ 21 "a": base64.StdEncoding.EncodeToString([]byte("foo")), 22 "b": base64.StdEncoding.EncodeToString([]byte("1")), 23 } 24 val := secrets.NewSecretValue(in) 25 26 c.Assert(val.EncodedValues(), jc.DeepEquals, map[string]string{ 27 "a": base64.StdEncoding.EncodeToString([]byte("foo")), 28 "b": base64.StdEncoding.EncodeToString([]byte("1")), 29 }) 30 } 31 32 func (s *SecretValueSuite) TestValues(c *gc.C) { 33 in := map[string]string{ 34 "a": base64.StdEncoding.EncodeToString([]byte("foo")), 35 "b": base64.StdEncoding.EncodeToString([]byte("1")), 36 } 37 val := secrets.NewSecretValue(in) 38 39 strValues, err := val.Values() 40 c.Assert(err, jc.ErrorIsNil) 41 c.Assert(strValues, jc.DeepEquals, map[string]string{ 42 "a": "foo", 43 "b": "1", 44 }) 45 } 46 47 func (s *SecretValueSuite) TestEmpty(c *gc.C) { 48 in := map[string]string{} 49 val := secrets.NewSecretValue(in) 50 c.Assert(val.IsEmpty(), jc.IsTrue) 51 } 52 53 func (s *SecretValueSuite) TestKeyValue(c *gc.C) { 54 in := map[string]string{ 55 "a": base64.StdEncoding.EncodeToString([]byte("foo")), 56 "b": base64.StdEncoding.EncodeToString([]byte("1")), 57 } 58 val := secrets.NewSecretValue(in) 59 60 v, err := val.KeyValue("a") 61 c.Assert(err, jc.ErrorIsNil) 62 c.Assert(v, gc.Equals, "foo") 63 v, err = val.KeyValue("a#base64") 64 c.Assert(err, jc.ErrorIsNil) 65 c.Assert(v, gc.Equals, base64.StdEncoding.EncodeToString([]byte("foo"))) 66 }