kubelatte-ce
Форк от sbertech/kubelatte-ce
68 строк · 2.4 Кб
1package util
2
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 err
14}
15assert.NoError(t, err, "certificate PKI reloader started successful")
16stopCH := r.stopCh
17r.Stop()
18
19select {
20case _ = <-stopCH:
21assert.False(t, r.IsRunning(), "certificate PKI reloader stopped successful")
22return nil
23}
24
25}
26
27func TestReloadCerts(t *testing.T) {
28var certPKIRelFullNill *CertificatePKIReloader
29fs := 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