go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers-sdk/v1/vault/multivault/multivault_test.go (about)

     1  // Copyright (c) Mondoo, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package multivault
     5  
     6  import (
     7  	"context"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/assert"
    11  	"github.com/stretchr/testify/require"
    12  	"go.mondoo.com/cnquery/providers-sdk/v1/vault"
    13  	"go.mondoo.com/cnquery/providers-sdk/v1/vault/inmemory"
    14  )
    15  
    16  func TestMultiVault(t *testing.T) {
    17  	secret1 := &vault.Secret{
    18  		Key:  "secret1",
    19  		Data: []byte("password"),
    20  	}
    21  	secret2 := &vault.Secret{
    22  		Key:  "secret2",
    23  		Data: []byte("password2"),
    24  	}
    25  	secret3 := &vault.Secret{
    26  		Key:  "secret3",
    27  		Data: []byte("password3"),
    28  	}
    29  
    30  	ctx := context.Background()
    31  	var err error
    32  
    33  	v1 := inmemory.New()
    34  	_, err = v1.Set(ctx, secret1)
    35  	require.NoError(t, err)
    36  
    37  	v2 := inmemory.New()
    38  	_, err = v2.Set(ctx, secret2)
    39  	require.NoError(t, err)
    40  
    41  	m := New(v1, v2)
    42  
    43  	var sec *vault.Secret
    44  	sec, err = m.Get(ctx, &vault.SecretID{
    45  		Key: secret1.Key,
    46  	})
    47  	require.NoError(t, err)
    48  	assert.Equal(t, secret1, sec)
    49  
    50  	sec, err = m.Get(ctx, &vault.SecretID{
    51  		Key: secret2.Key,
    52  	})
    53  	require.NoError(t, err)
    54  	assert.Equal(t, secret2, sec)
    55  
    56  	sec, err = m.Get(ctx, &vault.SecretID{
    57  		Key: secret3.Key,
    58  	})
    59  	require.Error(t, err)
    60  }