1
16
17 package aggregator
18
19 import (
20 "reflect"
21 "testing"
22
23 apiregistrationv1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
24 )
25
26 func newAPIServiceForTest(name, group string, minGroupPriority, versionPriority int32, svc *apiregistrationv1.ServiceReference) *apiregistrationv1.APIService {
27 r := apiregistrationv1.APIService{}
28 r.Spec.Group = group
29 r.Spec.GroupPriorityMinimum = minGroupPriority
30 r.Spec.VersionPriority = versionPriority
31 r.Spec.Service = svc
32 r.Name = name
33 return &r
34 }
35
36 func assertSortedServices(t *testing.T, actual []*apiregistrationv1.APIService, expectedNames []string) {
37 actualNames := []string{}
38 for _, a := range actual {
39 actualNames = append(actualNames, a.Name)
40 }
41 if !reflect.DeepEqual(actualNames, expectedNames) {
42 t.Errorf("Expected %s got %s.", expectedNames, actualNames)
43 }
44 }
45
46 func TestAPIServiceSort(t *testing.T) {
47 list := []*apiregistrationv1.APIService{
48 newAPIServiceForTest("FirstService", "Group1", 10, 5, &apiregistrationv1.ServiceReference{}),
49 newAPIServiceForTest("SecondService", "Group2", 15, 3, &apiregistrationv1.ServiceReference{}),
50 newAPIServiceForTest("FirstServiceInternal", "Group1", 16, 3, &apiregistrationv1.ServiceReference{}),
51 newAPIServiceForTest("ThirdService", "Group3", 15, 3, &apiregistrationv1.ServiceReference{}),
52 newAPIServiceForTest("local_service_1", "Group4", 15, 1, nil),
53 newAPIServiceForTest("local_service_3", "Group5", 15, 2, nil),
54 newAPIServiceForTest("local_service_2", "Group6", 15, 3, nil),
55 }
56 sortByPriority(list)
57 assertSortedServices(t, list, []string{"local_service_1", "local_service_2", "local_service_3", "FirstService", "FirstServiceInternal", "SecondService", "ThirdService"})
58 }
59
View as plain text