add ut for addService method of kubework 99/33999/1
authorLvbo163 <lv.bo163@zte.com.cn>
Mon, 5 Mar 2018 08:15:04 +0000 (16:15 +0800)
committerLvbo163 <lv.bo163@zte.com.cn>
Mon, 5 Mar 2018 08:15:52 +0000 (16:15 +0800)
Issue-ID: MSB-157

Change-Id: I61502f15df28f90b3dc6f115fe94b8a93fd3a92b
Signed-off-by: Lvbo163 <lv.bo163@zte.com.cn>
src/kube2msb/kube_work_test.go [new file with mode: 0644]

diff --git a/src/kube2msb/kube_work_test.go b/src/kube2msb/kube_work_test.go
new file mode 100644 (file)
index 0000000..b3495ce
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+Copyright 2018 ZTE, Inc. and others.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+package main
+
+import (
+       "testing"
+
+       kapi "k8s.io/kubernetes/pkg/api"
+)
+
+func TestAddServiceKube(t *testing.T) {
+       client := newClientBookKeeper()
+       msbWorkQueue := make(chan MSBWork, 10)
+       client.msbQueue = msbWorkQueue
+
+       // add ServiceTypeClusterIP
+       serviceTypeClusterIP := createMockService("serviceTypeClusterIP", "192.168.10.10", kapi.ServiceTypeClusterIP)
+       client.AddService(serviceTypeClusterIP)
+       msbWorkValidate(t, msbWorkQueue, serviceTypeClusterIP, MSBWorkAddService, "192.168.10.10")
+
+       // add ServiceTypeNodePort
+       serviceTypeNodePort := createMockService("ServiceTypeNodePort", "192.168.10.11", kapi.ServiceTypeNodePort)
+       client.AddService(serviceTypeNodePort)
+       msbWorkValidate(t, msbWorkQueue, serviceTypeNodePort, MSBWorkAddService, "192.168.10.11")
+
+       // add ServiceTypeLoadBalancer
+       serviceTypeLoadBalancer := createMockService("ServiceTypeLoadBalancer", "192.168.10.12", kapi.ServiceTypeLoadBalancer)
+       client.AddService(serviceTypeLoadBalancer)
+       msbWorkValidate(t, msbWorkQueue, serviceTypeLoadBalancer, MSBWorkAddService, "192.168.10.12")
+
+       // exception process
+       // TODO ClusterIP is not set , cannot check result for there would be no return
+       serviceClusterIPNotSet := &kapi.Service{
+               ObjectMeta: kapi.ObjectMeta{
+                       Annotations: map[string]string{serviceKey: "clusterIp not set"},
+               },
+       }
+       client.AddService(serviceClusterIPNotSet)
+
+       // TODO servicekey is not set , cannot check result for there would be no return
+       serviceWithoutServiceKey := &kapi.Service{
+               ObjectMeta: kapi.ObjectMeta{
+                       Annotations: map[string]string{},
+               },
+       }
+       client.AddService(serviceWithoutServiceKey)
+
+       // TODO service already exist , cannot check result for there would be no return
+       client.AddService(serviceTypeClusterIP)
+}
+
+func createMockService(name string, ip string, serviceType kapi.ServiceType) *kapi.Service {
+       service := kapi.Service{
+               ObjectMeta: kapi.ObjectMeta{
+                       Annotations: map[string]string{serviceKey: name},
+               },
+               Spec: kapi.ServiceSpec{
+                       ClusterIP: ip,
+                       Type:      serviceType,
+               },
+       }
+       service.Name = name
+
+       return &service
+}
+
+func msbWorkValidate(t *testing.T, queue <-chan MSBWork, service *kapi.Service, action MSBWorkAction, ip string) {
+       work := <-queue
+
+       if work.Action != action || work.IPAddress != ip || work.ServiceInfo != service.Name {
+               t.Errorf("msbWork validate error, expect %s,%s,%s to be %s %s,%s",
+                       work.Action, work.IPAddress, work.ServiceInfo, action, ip, service.Name)
+       }
+}