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

     1  // Copyright (c) Mondoo, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package vault
     5  
     6  import (
     7  	"encoding/json"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/require"
    11  
    12  	"github.com/stretchr/testify/assert"
    13  	"sigs.k8s.io/yaml"
    14  )
    15  
    16  func TestCredentialParser(t *testing.T) {
    17  	content := `
    18  - type: password
    19    user: username
    20    password: pass
    21  - type: private_key
    22    user: username
    23    identity_file: /path/to/key
    24    password: password
    25  - type: credentials_query
    26  - type: bearer
    27  `
    28  
    29  	v := []*Credential{}
    30  	yaml.Unmarshal([]byte(content), &v)
    31  
    32  	assert.Equal(t, 4, len(v))
    33  	assert.Equal(t, CredentialType_password, v[0].Type)
    34  	assert.Equal(t, CredentialType_private_key, v[1].Type)
    35  	assert.Equal(t, CredentialType_credentials_query, v[2].Type)
    36  	assert.Equal(t, CredentialType_bearer, v[3].Type)
    37  }
    38  
    39  func TestCredentialMarshal(t *testing.T) {
    40  	data, err := json.Marshal(CredentialType_undefined)
    41  	require.NoError(t, err)
    42  	assert.Equal(t, "\"undefined\"", string(data))
    43  }
    44  
    45  func TestSecretEncoding(t *testing.T) {
    46  	content := `
    47  - type: password
    48    user: username
    49    password: pass
    50  - type: private_key
    51    user: username
    52    identity_file: /path/to/key
    53    password: password
    54  `
    55  
    56  	v := []*Credential{}
    57  	yaml.Unmarshal([]byte(content), &v)
    58  	assert.Equal(t, 2, len(v))
    59  }