...
1
16
17 package storage
18
19 import (
20 "testing"
21
22 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23 "k8s.io/apimachinery/pkg/fields"
24 "k8s.io/apimachinery/pkg/labels"
25 "k8s.io/apimachinery/pkg/runtime"
26 "k8s.io/apiserver/pkg/registry/generic"
27 genericregistrytest "k8s.io/apiserver/pkg/registry/generic/testing"
28 etcd3testing "k8s.io/apiserver/pkg/storage/etcd3/testing"
29 "k8s.io/kubernetes/pkg/apis/resource"
30 _ "k8s.io/kubernetes/pkg/apis/resource/install"
31 "k8s.io/kubernetes/pkg/registry/registrytest"
32 )
33
34 func newStorage(t *testing.T) (*REST, *etcd3testing.EtcdTestServer) {
35 etcdStorage, server := registrytest.NewEtcdStorage(t, resource.GroupName)
36 restOptions := generic.RESTOptions{
37 StorageConfig: etcdStorage,
38 Decorator: generic.UndecoratedStorage,
39 DeleteCollectionWorkers: 1,
40 ResourcePrefix: "resourceclaimparameters",
41 }
42 resourceClassStorage, err := NewREST(restOptions)
43 if err != nil {
44 t.Fatalf("unexpected error from REST storage: %v", err)
45 }
46 return resourceClassStorage, server
47 }
48
49 func validNewResourceClaimParameters(name string) *resource.ResourceClaimParameters {
50 return &resource.ResourceClaimParameters{
51 ObjectMeta: metav1.ObjectMeta{
52 Name: name,
53 Namespace: metav1.NamespaceDefault,
54 },
55 }
56 }
57
58 func TestCreate(t *testing.T) {
59 storage, server := newStorage(t)
60 defer server.Terminate(t)
61 defer storage.Store.DestroyFunc()
62 test := genericregistrytest.New(t, storage.Store)
63 resourceClass := validNewResourceClaimParameters("foo")
64 resourceClass.ObjectMeta = metav1.ObjectMeta{}
65 test.TestCreate(
66
67 resourceClass,
68
69 &resource.ResourceClaimParameters{
70 ObjectMeta: metav1.ObjectMeta{Name: "*BadName!"},
71 },
72 )
73 }
74
75 func TestUpdate(t *testing.T) {
76 storage, server := newStorage(t)
77 defer server.Terminate(t)
78 defer storage.Store.DestroyFunc()
79 test := genericregistrytest.New(t, storage.Store)
80 test.TestUpdate(
81
82 validNewResourceClaimParameters("foo"),
83
84 func(obj runtime.Object) runtime.Object {
85 object := obj.(*resource.ResourceClaimParameters)
86 object.Labels = map[string]string{"foo": "bar"}
87 return object
88 },
89
90 func(obj runtime.Object) runtime.Object {
91 object := obj.(*resource.ResourceClaimParameters)
92 object.Labels = map[string]string{"&$^^#%@": "1"}
93 return object
94 },
95 )
96
97 }
98
99 func TestDelete(t *testing.T) {
100 storage, server := newStorage(t)
101 defer server.Terminate(t)
102 defer storage.Store.DestroyFunc()
103 test := genericregistrytest.New(t, storage.Store).ReturnDeletedObject()
104 test.TestDelete(validNewResourceClaimParameters("foo"))
105 }
106
107 func TestGet(t *testing.T) {
108 storage, server := newStorage(t)
109 defer server.Terminate(t)
110 defer storage.Store.DestroyFunc()
111 test := genericregistrytest.New(t, storage.Store)
112 test.TestGet(validNewResourceClaimParameters("foo"))
113 }
114
115 func TestList(t *testing.T) {
116 storage, server := newStorage(t)
117 defer server.Terminate(t)
118 defer storage.Store.DestroyFunc()
119 test := genericregistrytest.New(t, storage.Store)
120 test.TestList(validNewResourceClaimParameters("foo"))
121 }
122
123 func TestWatch(t *testing.T) {
124 storage, server := newStorage(t)
125 defer server.Terminate(t)
126 defer storage.Store.DestroyFunc()
127 test := genericregistrytest.New(t, storage.Store)
128 test.TestWatch(
129 validNewResourceClaimParameters("foo"),
130
131 []labels.Set{},
132
133 []labels.Set{
134 {"foo": "bar"},
135 },
136
137 []fields.Set{
138 {"metadata.name": "foo"},
139 },
140
141 []fields.Set{
142 {"metadata.name": "bar"},
143 },
144 )
145 }
146
View as plain text