add ut from create routerule 01/59101/1
authorLvbo163 <lv.bo163@zte.com.cn>
Mon, 6 Aug 2018 07:54:07 +0000 (15:54 +0800)
committerLvbo163 <lv.bo163@zte.com.cn>
Mon, 6 Aug 2018 07:54:07 +0000 (15:54 +0800)
Issue-ID: MSB-266

Change-Id: Ifbf4782282c56ee53abbcfe53f1dc8811bcd6fae
Signed-off-by: Lvbo163 <lv.bo163@zte.com.cn>
msb2pilot/src/msb2pilot/pilot/msb_test.go [new file with mode: 0644]

diff --git a/msb2pilot/src/msb2pilot/pilot/msb_test.go b/msb2pilot/src/msb2pilot/pilot/msb_test.go
new file mode 100644 (file)
index 0000000..e3cf7ad
--- /dev/null
@@ -0,0 +1,108 @@
+/**
+ * Copyright (c) 2018 ZTE Corporation.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and the Apache License 2.0 which both accompany this distribution,
+ * and are available at http://www.eclipse.org/legal/epl-v10.html
+ * and http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Contributors:
+ *     ZTE - initial Project
+ */
+package pilot
+
+import (
+       "testing"
+)
+
+func TestCreateRouteRule(t *testing.T) {
+       cases := []struct {
+               sService, sPath, tService, tPath, want string
+       }{
+               { // success demo
+                       sService: "sservice",
+                       sPath:    "/",
+                       tService: "tservice",
+                       tPath:    "/",
+                       want: `{
+"apiVersion": "config.istio.io/v1alpha2",
+"kind": "RouteRule",
+"metadata": {
+  "name": "msbcustom.tservice"
+},
+"spec": {
+  "destination":{
+    "name":"sservice"
+  },
+  "match":{
+    "request":{
+      "headers": {
+        "uri": {
+          "prefix": "/"
+        }
+      }
+    }
+  },
+  "rewrite": {
+    "uri": "/"
+  },
+  "route":[
+    {
+      "destination":{
+        "name":"tservice"
+      }
+    }
+  ]
+}
+}
+
+`,
+               },
+               { // rule name must consist of lower case alphanuberic charactoers, '-' or '.'. and must start and end with an alphanumberic charactore
+                       sService: "sservice",
+                       sPath:    "/",
+                       tService: "123ABCrule-name.test~!@#$%^&*()_+321",
+                       tPath:    "/",
+                       want: `{
+"apiVersion": "config.istio.io/v1alpha2",
+"kind": "RouteRule",
+"metadata": {
+  "name": "msbcustom.123rule-name.test321"
+},
+"spec": {
+  "destination":{
+    "name":"sservice"
+  },
+  "match":{
+    "request":{
+      "headers": {
+        "uri": {
+          "prefix": "/"
+        }
+      }
+    }
+  },
+  "rewrite": {
+    "uri": "/"
+  },
+  "route":[
+    {
+      "destination":{
+        "name":"123ABCrule-name.test~!@#$%^&*()_+321"
+      }
+    }
+  ]
+}
+}
+
+`,
+               },
+       }
+
+       for _, cas := range cases {
+               got := createRouteRule(cas.sService, cas.sPath, cas.tService, cas.tPath)
+               if got != cas.want {
+                       t.Errorf("createRouteRule(%s, %s, %s, %s) => got %s, want %s", cas.sService, cas.sPath, cas.tService, cas.tPath, got, cas.want)
+               }
+       }
+}