@@ -36,6 +36,110 @@ func TestRouter(t *testing.T) {
3636 args fakeRouter
3737 want map [string ][]objref.KMetadata
3838 }{
39+ {
40+ name : "self" ,
41+ args : fakeRouter {
42+ Services : []* corev1.Service {
43+ {
44+ ObjectMeta : metav1.ObjectMeta {
45+ Name : "svc1" ,
46+ Namespace : "test" ,
47+ },
48+ Spec : corev1.ServiceSpec {
49+ Ports : []corev1.ServicePort {
50+ {
51+ Name : "http" ,
52+ Port : 80 ,
53+ Protocol : corev1 .ProtocolTCP ,
54+ },
55+ },
56+ },
57+ },
58+ },
59+ Hubs : []* v1alpha2.Hub {
60+ {
61+ ObjectMeta : metav1.ObjectMeta {
62+ Name : "self" ,
63+ },
64+ Spec : v1alpha2.HubSpec {
65+ Gateway : v1alpha2.HubSpecGateway {
66+ Reachable : true ,
67+ Address : "10.0.0.1:8080" ,
68+ },
69+ },
70+ },
71+ },
72+ Routes : []* v1alpha2.Route {
73+ {
74+ ObjectMeta : metav1.ObjectMeta {
75+ Name : "svc1" ,
76+ Namespace : "test" ,
77+ },
78+ Spec : v1alpha2.RouteSpec {
79+ Import : v1alpha2.RouteSpecRule {
80+ HubName : "self" ,
81+ Service : v1alpha2.RouteSpecRuleService {
82+ Name : "svc1-new" ,
83+ Namespace : "test" ,
84+ },
85+ },
86+ Export : v1alpha2.RouteSpecRule {
87+ HubName : "self" ,
88+ Service : v1alpha2.RouteSpecRuleService {
89+ Name : "svc1" ,
90+ Namespace : "test" ,
91+ },
92+ },
93+ },
94+ },
95+ },
96+ },
97+
98+ want : map [string ][]objref.KMetadata {
99+ "self" : {
100+ & corev1.ConfigMap {
101+ ObjectMeta : metav1.ObjectMeta {
102+ Name : "svc1-service" ,
103+ Namespace : "ferry-tunnel-system" ,
104+ Labels : map [string ]string {
105+ "tunnel.ferryproxy.io/config" : "service" ,
106+ },
107+ },
108+ Data : map [string ]string {
109+ "export_hub_name" : "self" ,
110+ "export_service_name" : "svc1" ,
111+ "export_service_namespace" : "test" ,
112+ "import_service_name" : "svc1-new" ,
113+ "import_service_namespace" : "test" ,
114+ "ports" : `[{"name":"http","protocol":"TCP","port":80,"targetPort":10001}]` ,
115+ },
116+ },
117+ & corev1.ConfigMap {
118+ ObjectMeta : metav1.ObjectMeta {
119+ Name : "svc1-tunnel-80-10001" ,
120+ Namespace : "ferry-tunnel-system" ,
121+ Labels : map [string ]string {
122+ "tunnel.ferryproxy.io/config" : "rules" ,
123+ },
124+ },
125+ Data : map [string ]string {
126+ consts .TunnelRulesKey : toJson (
127+ []Chain {
128+ {
129+ Bind : []string {
130+ ":10001" ,
131+ },
132+ Proxy : []string {
133+ "svc1.test.svc:80" ,
134+ },
135+ },
136+ },
137+ ),
138+ },
139+ },
140+ },
141+ },
142+ },
39143 {
40144 name : "export reachable" ,
41145 args : fakeRouter {
0 commit comments