Merge pull request #505 from chentao1596/annotations_unittest
add unit test cases for core/pkg/ingress/controller/annotations
This commit is contained in:
commit
e2c7a536e9
2 changed files with 80 additions and 3 deletions
|
@ -109,7 +109,6 @@ const (
|
|||
healthCheck = "HealthCheck"
|
||||
sslPassthrough = "SSLPassthrough"
|
||||
sessionAffinity = "SessionAffinity"
|
||||
certificateAuth = "CertificateAuth"
|
||||
)
|
||||
|
||||
func (e *annotationExtractor) SecureUpstream(ing *extensions.Ingress) bool {
|
||||
|
|
|
@ -35,17 +35,19 @@ const (
|
|||
annotationAffinityType = "ingress.kubernetes.io/affinity"
|
||||
annotationAffinityCookieName = "ingress.kubernetes.io/session-cookie-name"
|
||||
annotationAffinityCookieHash = "ingress.kubernetes.io/session-cookie-hash"
|
||||
annotationAuthTlsSecret = "ingress.kubernetes.io/auth-tls-secret"
|
||||
)
|
||||
|
||||
type mockCfg struct {
|
||||
MockSecrets map[string]*api.Secret
|
||||
}
|
||||
|
||||
func (m mockCfg) GetDefaultBackend() defaults.Backend {
|
||||
return defaults.Backend{}
|
||||
}
|
||||
|
||||
func (m mockCfg) GetSecret(string) (*api.Secret, error) {
|
||||
return nil, nil
|
||||
func (m mockCfg) GetSecret(name string) (*api.Secret, error) {
|
||||
return m.MockSecrets[name], nil
|
||||
}
|
||||
|
||||
func (m mockCfg) GetAuthCertificate(string) (*resolver.AuthSSLCert, error) {
|
||||
|
@ -218,3 +220,79 @@ func TestAffinitySession(t *testing.T) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestContainsCertificateAuth(t *testing.T) {
|
||||
ec := newAnnotationExtractor(mockCfg{})
|
||||
|
||||
foos := []struct {
|
||||
name string
|
||||
annotations map[string]string
|
||||
result bool
|
||||
}{
|
||||
{"nil_annotations", nil, false},
|
||||
{"empty_annotations", map[string]string{}, false},
|
||||
{"not_exist_annotations", map[string]string{annotationAffinityType: "cookie"}, false},
|
||||
{"exist_annotations", map[string]string{annotationAuthTlsSecret: "default/foo_secret"}, true},
|
||||
}
|
||||
|
||||
for _, foo := range foos {
|
||||
t.Run(foo.name, func(t *testing.T) {
|
||||
ing := buildIngress()
|
||||
ing.SetAnnotations(foo.annotations)
|
||||
r := ec.ContainsCertificateAuth(ing)
|
||||
if r != foo.result {
|
||||
t.Errorf("Returned %t but expected %t for %s", r, foo.result, foo.name)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestCertificateAuthSecret(t *testing.T) {
|
||||
resolver := mockCfg{}
|
||||
resolver.MockSecrets = map[string]*api.Secret{
|
||||
"default/foo_secret": {
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Name: "foo_secret_name",
|
||||
},
|
||||
},
|
||||
}
|
||||
ec := newAnnotationExtractor(resolver)
|
||||
|
||||
foos := []struct {
|
||||
name string
|
||||
annotations map[string]string
|
||||
eerr bool
|
||||
ename string
|
||||
}{
|
||||
{"nil_annotations", nil, true, ""},
|
||||
{"empty_annotations", map[string]string{}, true, ""},
|
||||
{"not_exist_annotations", map[string]string{annotationAffinityType: "cookie"}, true, ""},
|
||||
{"exist_annotations", map[string]string{annotationAuthTlsSecret: "default/foo_secret"}, false, "foo_secret_name"},
|
||||
}
|
||||
|
||||
for _, foo := range foos {
|
||||
t.Run(foo.name, func(t *testing.T) {
|
||||
ing := buildIngress()
|
||||
ing.SetAnnotations(foo.annotations)
|
||||
r, err := ec.CertificateAuthSecret(ing)
|
||||
|
||||
if foo.eerr {
|
||||
if err == nil {
|
||||
t.Fatalf("Exepected error for %s", foo.name)
|
||||
}
|
||||
} else {
|
||||
if err != nil {
|
||||
t.Fatalf("Unexpected error %v for %s", err, foo.name)
|
||||
}
|
||||
|
||||
rname := ""
|
||||
if r != nil {
|
||||
rname = r.GetName()
|
||||
}
|
||||
if rname != foo.ename {
|
||||
t.Errorf("Returned %s but expected %s for %s", rname, foo.ename, foo.name)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue