12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- // Copyright 2021 Tencent Inc. All rights reserved.
- package downloader_test
- import (
- "context"
- "testing"
- "time"
- "git.nanodreamtech.com/sg/wechatpay-go/core"
- "git.nanodreamtech.com/sg/wechatpay-go/core/downloader"
- "git.nanodreamtech.com/sg/wechatpay-go/core/option"
- "git.nanodreamtech.com/sg/wechatpay-go/utils"
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
- )
- func TestAutoCertificateDownloader(t *testing.T) {
- patches := mockDownloadServer(t)
- defer patches.Reset()
- ctx := context.Background()
- mgr := downloader.NewCertificateDownloaderMgrWithInterval(ctx, 5*time.Second)
- require.NotNil(t, mgr)
- defer mgr.Stop()
- privateKey, err := utils.LoadPrivateKey(testingKey(mockMchPrivateKey))
- require.NoError(t, err)
- opts := []core.ClientOption{
- option.WithMerchantCredential(mockMchID, mockMchCertificateSerial, privateKey),
- option.WithoutValidator(),
- }
- client, err := core.NewClient(ctx, opts...)
- require.NoError(t, err)
- err = mgr.RegisterDownloaderWithClient(ctx, client, mockMchID, mockAPIv3Key)
- require.NoError(t, err)
- err = mgr.RegisterDownloaderWithPrivateKey(ctx, privateKey, mockMchCertificateSerial, mockMchID, mockAPIv3Key)
- require.NoError(t, err)
- provider := mgr.GetCertificateVisitor(mockMchID)
- assert.NotEmpty(t, provider.GetAll(ctx))
- for serialNo, cert := range provider.GetAll(ctx) {
- assert.Equal(t, serialNo, utils.GetCertificateSerialNumber(*cert))
- }
- time.Sleep(11 * time.Second)
- mgr.RemoveDownloader(ctx, mockMchID)
- assert.Empty(t, provider.GetAll(ctx))
- }
|