1
16
17 package v1beta1
18
19 import (
20 "testing"
21
22 "github.com/stretchr/testify/assert"
23 "github.com/stretchr/testify/require"
24 "k8s.io/api/networking/v1beta1"
25 "k8s.io/apimachinery/pkg/runtime"
26 "k8s.io/apimachinery/pkg/util/intstr"
27 "k8s.io/kubernetes/pkg/apis/networking"
28 )
29
30 func TestIngressBackendConversion(t *testing.T) {
31 scheme := runtime.NewScheme()
32 assert.NoError(t, RegisterConversions(scheme))
33
34 tests := map[string]struct {
35 external v1beta1.IngressSpec
36 internal networking.IngressSpec
37 }{
38 "service-port-number": {
39 external: v1beta1.IngressSpec{
40 Backend: &v1beta1.IngressBackend{
41 ServiceName: "test-backend",
42 ServicePort: intstr.FromInt32(8080),
43 },
44 },
45 internal: networking.IngressSpec{
46 DefaultBackend: &networking.IngressBackend{
47 Service: &networking.IngressServiceBackend{
48 Name: "test-backend",
49 Port: networking.ServiceBackendPort{
50 Name: "",
51 Number: 8080,
52 },
53 },
54 },
55 },
56 },
57 "service-named-port": {
58 external: v1beta1.IngressSpec{
59 Backend: &v1beta1.IngressBackend{
60 ServiceName: "test-backend",
61 ServicePort: intstr.FromString("https"),
62 },
63 },
64 internal: networking.IngressSpec{
65 DefaultBackend: &networking.IngressBackend{
66 Service: &networking.IngressServiceBackend{
67 Name: "test-backend",
68 Port: networking.ServiceBackendPort{
69 Name: "https",
70 },
71 },
72 },
73 },
74 },
75 "empty-service-name": {
76 external: v1beta1.IngressSpec{
77 Backend: &v1beta1.IngressBackend{
78 ServiceName: "",
79 ServicePort: intstr.FromString("https"),
80 },
81 },
82 internal: networking.IngressSpec{
83 DefaultBackend: &networking.IngressBackend{
84 Service: &networking.IngressServiceBackend{
85 Name: "",
86 Port: networking.ServiceBackendPort{
87 Name: "https",
88 },
89 },
90 },
91 },
92 },
93 }
94
95 for name, test := range tests {
96 t.Run(name, func(t *testing.T) {
97 convertedInternal := networking.IngressSpec{}
98 require.NoError(t,
99 Convert_v1beta1_IngressSpec_To_networking_IngressSpec(&test.external, &convertedInternal, nil))
100 assert.Equal(t, test.internal, convertedInternal, "v1beta1.IngressSpec -> networking.IngressSpec")
101
102 convertedV1beta1 := v1beta1.IngressSpec{}
103 require.NoError(t,
104 Convert_networking_IngressSpec_To_v1beta1_IngressSpec(&test.internal, &convertedV1beta1, nil))
105 assert.Equal(t, test.external, convertedV1beta1, "networking.IngressSpec -> v1beta1.IngressSpec")
106 })
107 }
108 }
109
View as plain text