Skip to content

Commit

Permalink
add unit test for getcerts
Browse files Browse the repository at this point in the history
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
  • Loading branch information
aramase committed Apr 5, 2023
1 parent 7540a31 commit 265433f
Showing 1 changed file with 86 additions and 0 deletions.
86 changes: 86 additions & 0 deletions pkg/provider/provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (
"testing"
"time"

"github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates"
"github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys"
"github.com/Azure/azure-sdk-for-go/sdk/keyvault/azsecrets"
"github.com/Azure/go-autorest/autorest/azure"
Expand Down Expand Up @@ -1520,6 +1521,91 @@ func TestGetSecretError(t *testing.T) {
}
}

func TestGetCertificate(t *testing.T) {
id := azcertificates.ID("https://test.vault.azure.net/certificates/cert1/v1")

ctrl := gomock.NewController(t)
defer ctrl.Finish()

ctx := testContext(t)

p := &provider{}
kvClient := mock_keyvault.NewMockKeyVault(ctrl)
kvClient.EXPECT().GetCertificate(ctx, "cert1", "").Return(
&azcertificates.CertificateBundle{
CER: []byte("test"),
ID: &id,
}, nil,
)

objs, err := p.getCertificate(ctx, kvClient, types.KeyVaultObject{ObjectName: "cert1"})
if err != nil {
t.Fatalf("getCertificate() = %v, want nil", err)
}

expected := []keyvaultObject{
{
content: `-----BEGIN CERTIFICATE-----
dGVzdA==
-----END CERTIFICATE-----
`,
version: "v1",
},
}

if !reflect.DeepEqual(objs, expected) {
t.Fatalf("getCertificate() = \n%v, want \n%v", objs, expected)
}
}

func TestGetCertificateError(t *testing.T) {
id := azcertificates.ID("https://test.vault.azure.net/certificates/cert1/v1")

cases := []struct {
desc string
initKeyVaultCert *azcertificates.CertificateBundle
kvError error
expectedKeyVaultObject []keyvaultObject
}{
{
desc: "keyvault get certificate error",
initKeyVaultCert: &azcertificates.CertificateBundle{},
kvError: errors.New("keyvault error"),
},
{
desc: "certificate CER is nil",
initKeyVaultCert: &azcertificates.CertificateBundle{
ID: &id,
},
},
{
desc: "certificate id is nil",
initKeyVaultCert: &azcertificates.CertificateBundle{
CER: []byte("test"),
},
},
}

ctrl := gomock.NewController(t)
defer ctrl.Finish()

for _, tc := range cases {
t.Run(tc.desc, func(t *testing.T) {
ctx := testContext(t)

p := &provider{}
kvClient := mock_keyvault.NewMockKeyVault(ctrl)
kvClient.EXPECT().GetCertificate(ctx, "cert1", "").Return(
tc.initKeyVaultCert, nil,
)

if _, err := p.getCertificate(ctx, kvClient, types.KeyVaultObject{ObjectName: "cert1"}); err == nil {
t.Fatalf("getCertificate() = nil, want error")
}
})
}
}

func testContext(t *testing.T) context.Context {
ctx, cancel := context.WithCancel(context.Background())
t.Cleanup(cancel)
Expand Down

0 comments on commit 265433f

Please sign in to comment.