func TestUpdate(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) defer storage.Controller.Store.DestroyFunc() test := registrytest.New(t, storage.Controller.Store) test.TestUpdate( // valid validNewController(), // valid updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*api.ReplicationController) object.Spec.Replicas = object.Spec.Replicas + 1 return object }, // invalid updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*api.ReplicationController) object.Name = "" return object }, func(obj runtime.Object) runtime.Object { object := obj.(*api.ReplicationController) object.Spec.Selector = map[string]string{} return object }, ) }
func TestDelete(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) defer storage.Store.DestroyFunc() test := registrytest.New(t, storage.Store).ClusterScope().ReturnDeletedObject() test.TestDelete(validNewPodSecurityPolicy()) }
func TestWatch(t *testing.T) { storage, _, server := newStorage(t) defer server.Terminate(t) defer storage.Store.DestroyFunc() test := registrytest.New(t, storage.Store) test.TestWatch( validNewPodDisruptionBudget(), // matching labels []labels.Set{ {"a": "b"}, }, // not matching labels []labels.Set{ {"a": "c"}, {"foo": "bar"}, }, // matching fields []fields.Set{ {"metadata.name": "foo"}, }, // not matching fields []fields.Set{ {"metadata.name": "bar"}, }, ) }
func TestWatch(t *testing.T) { storage, _, server := newStorage(t) defer server.Terminate(t) test := registrytest.New(t, storage.Etcd) test.TestWatch( validDaemonSet, // matching labels []labels.Set{ {"a": "b"}, }, // not matching labels []labels.Set{ {"a": "c"}, {"foo": "bar"}, }, // matching fields []fields.Set{ {"metadata.name": "foo"}, }, // notmatching fields []fields.Set{ {"metadata.name": "bar"}, {"name": "foo"}, }, ) }
func TestList(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) defer storage.Store.DestroyFunc() test := registrytest.New(t, storage.Store).ClusterScope() test.TestList(validNewNode()) }
func TestCreate(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) test := registrytest.New(t, storage.Etcd) validConfigMap := validNewConfigMap() validConfigMap.ObjectMeta = api.ObjectMeta{ GenerateName: "foo-", } test.TestCreate( validConfigMap, &api.ConfigMap{ ObjectMeta: api.ObjectMeta{Name: "badName"}, Data: map[string]string{ "key": "value", }, }, &api.ConfigMap{ ObjectMeta: api.ObjectMeta{Name: "name-2"}, Data: map[string]string{ "..dotfile": "do: nothing\n", }, }, ) }
func TestList(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) defer storage.Store.DestroyFunc() test := registrytest.New(t, storage.Store) test.TestList(validNewEndpoints()) }
func TestUpdate(t *testing.T) { storage, _, fakeClient := newStorage(t) test := registrytest.New(t, fakeClient, storage.Etcd) two := 2 test.TestUpdate( // valid validNewJob(), // updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*extensions.Job) object.Spec.Parallelism = &two return object }, // invalid updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*extensions.Job) object.Spec.Selector = map[string]string{} return object }, func(obj runtime.Object) runtime.Object { object := obj.(*extensions.Job) object.Spec.Completions = &two return object }, ) }
func TestDelete(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) defer storage.Store.DestroyFunc() test := registrytest.New(t, storage.Store) test.TestDelete(validNewLimitRange()) }
func TestWatch(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) test := registrytest.New(t, storage.ReplicaSet.Store) test.TestWatch( validNewReplicaSet(), // matching labels []labels.Set{ {"a": "b"}, }, // not matching labels []labels.Set{ {"a": "c"}, {"foo": "bar"}, }, // matching fields []fields.Set{ {"status.replicas": "5"}, {"metadata.name": "foo"}, {"status.replicas": "5", "metadata.name": "foo"}, }, // not matchin fields []fields.Set{ {"status.replicas": "10"}, {"metadata.name": "bar"}, {"name": "foo"}, {"status.replicas": "10", "metadata.name": "foo"}, {"status.replicas": "0", "metadata.name": "bar"}, }, ) }
func TestUpdate(t *testing.T) { storage, _, server := newStorage(t) defer server.Terminate(t) test := registrytest.New(t, storage.Store) two := int32(2) test.TestUpdate( // valid validNewJob(), // updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*batch.Job) object.Spec.Parallelism = &two return object }, // invalid updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*batch.Job) object.Spec.Selector = &unversioned.LabelSelector{} return object }, func(obj runtime.Object) runtime.Object { object := obj.(*batch.Job) object.Spec.Completions = &two return object }, ) }
func TestUpdate(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) test := registrytest.New(t, storage.ReplicaSet.Store) test.TestUpdate( // valid validNewReplicaSet(), // valid updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*extensions.ReplicaSet) object.Spec.Replicas = object.Spec.Replicas + 1 return object }, // invalid updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*extensions.ReplicaSet) object.Name = "" return object }, func(obj runtime.Object) runtime.Object { object := obj.(*extensions.ReplicaSet) object.Spec.Selector = &unversioned.LabelSelector{MatchLabels: map[string]string{}} return object }, ) }
func TestDelete(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) defer storage.Store.DestroyFunc() test := registrytest.New(t, storage.Store).ClusterScope().Namer(namer) test.TestDelete(validNewThirdPartyResource("kind.domain.tld")) }
func TestGet(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) defer storage.Controller.Store.DestroyFunc() test := registrytest.New(t, storage.Controller.Store) test.TestGet(validNewController()) }
func TestUpdate(t *testing.T) { storage, _, fakeClient := newStorage(t) test := registrytest.New(t, fakeClient, storage.Etcd) test.TestUpdate( // valid newValidDaemonSet(), // updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*experimental.DaemonSet) object.Spec.Template.Spec.NodeSelector = map[string]string{"c": "d"} return object }, // invalid updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*experimental.DaemonSet) object.UID = "newUID" return object }, func(obj runtime.Object) runtime.Object { object := obj.(*experimental.DaemonSet) object.Name = "" return object }, func(obj runtime.Object) runtime.Object { object := obj.(*experimental.DaemonSet) object.Spec.Template.Spec.RestartPolicy = api.RestartPolicyOnFailure return object }, func(obj runtime.Object) runtime.Object { object := obj.(*experimental.DaemonSet) object.Spec.Selector = map[string]string{} return object }, ) }
func TestWatch(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) test := registrytest.New(t, storage.Store) valid := validDeploymentConfig() valid.Name = "foo" valid.Labels = map[string]string{"foo": "bar"} test.TestWatch( valid, // matching labels []labels.Set{{"foo": "bar"}}, // not matching labels []labels.Set{{"foo": "baz"}}, // matching fields []fields.Set{ {"metadata.name": "foo"}, }, // not matching fields []fields.Set{ {"metadata.name": "bar"}, }, ) }
func TestWatch(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) test := registrytest.New(t, storage.Etcd) test.TestWatch( validNewConfigMap(), // matching labels []labels.Set{ {"label-1": "value-1"}, {"label-2": "value-2"}, }, // not matching labels []labels.Set{ {"foo": "bar"}, }, // matching fields []fields.Set{ {"metadata.namespace": "default"}, {"metadata.name": "foo"}, }, // not matching fields []fields.Set{ {"metadata.name": "bar"}, {"name": "foo"}, }, ) }
func TestUpdate(t *testing.T) { storage, fakeClient := newStorage(t) test := registrytest.New(t, fakeClient, storage.Etcd).AllowCreateOnUpdate() test.TestUpdate( // valid validNewLimitRange(), // updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*api.LimitRange) object.Spec.Limits = []api.LimitRangeItem{ { Type: api.LimitTypePod, Max: api.ResourceList{ api.ResourceCPU: resource.MustParse("1000"), api.ResourceMemory: resource.MustParse("100000"), }, Min: api.ResourceList{ api.ResourceCPU: resource.MustParse("10"), api.ResourceMemory: resource.MustParse("1000"), }, }, } return object }, ) }
func TestCreate(t *testing.T) { storage, _, _, server := newStorage(t) defer server.Terminate(t) test := registrytest.New(t, storage.Etcd) pod := validNewPod() pod.ObjectMeta = api.ObjectMeta{} // Make an invalid pod with an an incorrect label. invalidPod := validNewPod() invalidPod.Namespace = test.TestNamespace() invalidPod.Labels = map[string]string{ "invalid/label/to/cause/validation/failure": "bar", } test.TestCreate( // valid pod, // invalid (empty contains list) &api.Pod{ Spec: api.PodSpec{ Containers: []api.Container{}, }, }, // invalid (invalid labels) invalidPod, ) }
func TestUpdate(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) defer storage.Store.DestroyFunc() test := registrytest.New(t, storage.Store) test.TestUpdate( // valid validNewNetworkPolicy(), // valid updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*extensions.NetworkPolicy) return object }, // invalid updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*extensions.NetworkPolicy) object.Name = "" return object }, func(obj runtime.Object) runtime.Object { object := obj.(*extensions.NetworkPolicy) object.Spec.PodSelector = metav1.LabelSelector{MatchLabels: map[string]string{}} return object }, ) }
func TestCreate(t *testing.T) { storage, fakeClient := newStorage(t) test := registrytest.New(t, fakeClient, storage.Etcd) validService := validService() validService.ObjectMeta = api.ObjectMeta{} test.TestCreate( // valid validService, // invalid &api.Service{ Spec: api.ServiceSpec{}, }, // invalid &api.Service{ Spec: api.ServiceSpec{ Selector: map[string]string{"bar": "baz"}, ClusterIP: "invalid", SessionAffinity: "None", Type: api.ServiceTypeClusterIP, Ports: []api.ServicePort{{ Port: 6502, Protocol: api.ProtocolTCP, TargetPort: util.NewIntOrStringFromInt(6502), }}, }, }, ) }
func TestGet(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) defer storage.Store.DestroyFunc() test := registrytest.New(t, storage.Store) test.TestGet(validNewNetworkPolicy()) }
func TestCreate(t *testing.T) { storage, _, server := newStorage(t) defer server.Terminate(t) test := registrytest.New(t, storage.Etcd) ds := newValidDaemonSet() ds.ObjectMeta = api.ObjectMeta{} test.TestCreate( // valid ds, // invalid (invalid selector) &extensions.DaemonSet{ Spec: extensions.DaemonSetSpec{ Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{}}, Template: validDaemonSet.Spec.Template, }, }, // invalid update strategy &extensions.DaemonSet{ Spec: extensions.DaemonSetSpec{ Selector: validDaemonSet.Spec.Selector, Template: validDaemonSet.Spec.Template, }, }, ) }
func TestUpdate(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) test := registrytest.New(t, storage.Deployment.Store) test.TestUpdate( // valid validNewDeployment(), // updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*extensions.Deployment) object.Spec.Template.Spec.NodeSelector = map[string]string{"c": "d"} return object }, // invalid updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*extensions.Deployment) object.Name = "" return object }, func(obj runtime.Object) runtime.Object { object := obj.(*extensions.Deployment) object.Spec.Template.Spec.RestartPolicy = api.RestartPolicyOnFailure return object }, func(obj runtime.Object) runtime.Object { object := obj.(*extensions.Deployment) object.Spec.Selector = &unversioned.LabelSelector{MatchLabels: map[string]string{}} return object }, ) }
func TestWatch(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) defer storage.Store.DestroyFunc() test := registrytest.New(t, storage.Store).ClusterScope() test.TestWatch( validNewNode(), // matching labels []labels.Set{ {"name": "foo"}, }, // not matching labels []labels.Set{ {"name": "bar"}, {"foo": "bar"}, }, // matching fields []fields.Set{ {"metadata.name": "foo"}, }, // not matchin fields []fields.Set{ {"metadata.name": "bar"}, }, ) }
func TestList(t *testing.T) { storage, _, server := newStorage(t) defer server.Terminate(t) defer storage.Store.DestroyFunc() test := registrytest.New(t, storage.Store) test.TestList(newValidDaemonSet()) }
func TestDelete(t *testing.T) { storage, _, server := newStorage(t) defer server.Terminate(t) defer storage.Store.DestroyFunc() test := registrytest.New(t, storage.Store) test.TestDelete(validNewPodDisruptionBudget()) }
func TestUpdate(t *testing.T) { storage, _, server := newStorage(t) defer server.Terminate(t) defer storage.Store.DestroyFunc() test := registrytest.New(t, storage.Store) test.TestUpdate( // valid newValidDaemonSet(), // updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*extensions.DaemonSet) object.Spec.Template.Spec.NodeSelector = map[string]string{"c": "d"} object.Spec.Template.Spec.DNSPolicy = api.DNSDefault return object }, // invalid updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*extensions.DaemonSet) object.Name = "" return object }, func(obj runtime.Object) runtime.Object { object := obj.(*extensions.DaemonSet) object.Spec.Template.Spec.RestartPolicy = api.RestartPolicyOnFailure return object }, ) }
func TestUpdate(t *testing.T) { storage, fakeClient := newStorage(t) test := registrytest.New(t, fakeClient, storage.Etcd) test.TestUpdate( // valid validIngress(), // updateFunc func(obj runtime.Object) runtime.Object { object := obj.(*experimental.Ingress) object.Spec.Rules = toIngressRules(map[string]IngressRuleValues{ "bar.foo.com": {"/bar": defaultBackendName}, }) return object }, // invalid updateFunc: ObjeceMeta is not to be tampered with. func(obj runtime.Object) runtime.Object { object := obj.(*experimental.Ingress) object.UID = "newUID" return object }, func(obj runtime.Object) runtime.Object { object := obj.(*experimental.Ingress) object.Name = "" return object }, func(obj runtime.Object) runtime.Object { object := obj.(*experimental.Ingress) object.Spec.Rules = toIngressRules(map[string]IngressRuleValues{ "foo.bar.com": {"/invalid[": "svc"}}) return object }, ) }
func TestWatch(t *testing.T) { storage, server := newStorage(t) defer server.Terminate(t) test := registrytest.New(t, storage.Store) test.TestWatch( validNewNetworkPolicy(), // matching labels []labels.Set{ {"a": "b"}, }, // not matching labels []labels.Set{ {"a": "c"}, {"foo": "bar"}, }, // matching fields []fields.Set{ {"metadata.name": "foo"}, }, // not matchin fields []fields.Set{ {"metadata.name": "bar"}, {"name": "foo"}, }, ) }