File: lazy_client_test.go

package info (click to toggle)
golang-github-smallstep-crypto 0.63.0-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 3,800 kB
  • sloc: sh: 66; makefile: 50
file content (71 lines) | stat: -rw-r--r-- 1,890 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//go:build !noazurekms
// +build !noazurekms

package azurekms

import (
	"reflect"
	"testing"

	"github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys"
)

func Test_lazyClient_Get(t *testing.T) {
	client := mockClient(t)
	type fields struct {
		clients   map[string]KeyVaultClient
		new       lazyClientFunc
		dnsSuffix string
	}
	type args struct {
		vault string
	}
	tests := []struct {
		name    string
		fields  fields
		args    args
		want    KeyVaultClient
		wantErr bool
	}{
		{"ok", fields{map[string]KeyVaultClient{
			"https://test.vault.azure.net/": client,
		}, func(vaultURL string) (KeyVaultClient, error) {
			t.Error("call to new should not happen")
			return client, nil
		}, "vault.azure.net"}, args{"test"}, client, false},
		{"ok new", fields{map[string]KeyVaultClient{}, func(vaultURL string) (KeyVaultClient, error) {
			return client, nil
		}, "vault.azure.net"}, args{"test"}, client, false},
		{"fail", fields{map[string]KeyVaultClient{}, func(vaultURL string) (KeyVaultClient, error) {
			return nil, errTest
		}, "vault.azure.net"}, args{"test"}, nil, true},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			l := &lazyClient{
				clients:   tt.fields.clients,
				new:       tt.fields.new,
				dnsSuffix: tt.fields.dnsSuffix,
			}
			got, err := l.Get(tt.args.vault)
			if (err != nil) != tt.wantErr {
				t.Errorf("lazyClient.Get() error = %v, wantErr %v", err, tt.wantErr)
				return
			}
			if !reflect.DeepEqual(got, tt.want) {
				t.Errorf("lazyClient.Get() = %v, want %v", got, tt.want)
			}
		})
	}
}

func Test_lazyClientCreator(t *testing.T) {
	fn := lazyClientCreator(fakeTokenCredential{})
	client, err := fn("https://test.vault.azure.net")
	if err != nil {
		t.Errorf("lazyClientCreator() error = %v", err)
	}
	if _, ok := client.(*azkeys.Client); !ok {
		t.Errorf("lazyClientCreator() = %T, want *azkeys.Client", client)
	}
}