kubelatte-ce
Форк от sbertech/kubelatte-ce
68 строк · 2.4 Кб
1package util2
3import (4"github.com/spf13/afero"5"github.com/stretchr/testify/assert"6"testing"7"time"8)
9
10func startStopCertificatePKIReloader(t *testing.T, r *CertificatePKIReloader) error {11err := r.Start()12if err != nil {13return err14}15assert.NoError(t, err, "certificate PKI reloader started successful")16stopCH := r.stopCh17r.Stop()18
19select {20case _ = <-stopCH:21assert.False(t, r.IsRunning(), "certificate PKI reloader stopped successful")22return nil23}24
25}
26
27func TestReloadCerts(t *testing.T) {28var certPKIRelFullNill *CertificatePKIReloader29fs := afero.NewOsFs()30
31certs, err := GenerateTestCertificates()32assert.NoError(t, err, "create certificates")33
34certPKIRelFull := NewCertificatePKIReloaderFull(fs, certs.certFileName, certs.keyFileName, time.Duration(100))35
36assert.NoError(t, startStopCertificatePKIReloader(t, certPKIRelFull), "certificate PKI reloader full start/stop successfully")37
38certPKIRel := NewCertificatePKIReloader(certs.certFileName, certs.keyFileName, time.Duration(100))39
40assert.NoError(t, startStopCertificatePKIReloader(t, certPKIRel), "certificate PKI reloader start/stop successfully")41
42certPKIRelWithErrHandler := NewCertificatePKIReloaderWithErrHandler(certs.certFileName, certs.keyFileName, time.Duration(100), func(err error) {43assert.NoError(t, err, "certificate PKI reloader error handler function")44})45
46assert.NoError(t, startStopCertificatePKIReloader(t, certPKIRelWithErrHandler), "certificate PKI reloader with error handler function start/stop successfully")47
48certPKIRelFullWithErrHandler := NewCertificatePKIReloaderFullWithErrHandler(fs, certs.certFileName, certs.keyFileName, time.Duration(100), func(err error) {49assert.NoError(t, err, "certificate PKI reloader full error handler function")50})51
52assert.NoError(t, startStopCertificatePKIReloader(t, certPKIRelFullWithErrHandler), "certificate PKI reloader full with error handler function start/stop successfully")53
54assert.Panics(t, func() {55_, _ = certPKIRelFullNill.GetCertificate()56}, "uninit certificate PKI get certificate with panic")57
58_, errC := readCert(fs, "/bad_cert_filepath", "/bad_key_filepath")59assert.Error(t, errC, "uninit certificate PKI read certificate failed")60
61tm, _ := readModTime(afero.OsFs{}, "/bad_file_path")62assert.Zero(t, tm, "uninit certificate PKI read mod time failed")63
64assert.Panics(t, func() {65startStopCertificatePKIReloader(t, certPKIRelFullNill)66}, "uninit certificate PKI reloader start/stop with panic")67
68}
69