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  }