diff --git a/pkg/registry/controller/rest_test.go b/pkg/registry/controller/rest_test.go index 32e4fe6953a..32d6d9b31f1 100644 --- a/pkg/registry/controller/rest_test.go +++ b/pkg/registry/controller/rest_test.go @@ -21,6 +21,7 @@ import ( "fmt" "io/ioutil" "reflect" + "strings" "testing" "time" @@ -363,3 +364,39 @@ func TestFillCurrentState(t *testing.T) { t.Errorf("unexpected output: %#v %#v", labels.Set(controller.DesiredState.ReplicaSelector).AsSelector(), fakeLister.s) } } + +func TestCreateControllerWithConflictingNamespace(t *testing.T) { + storage := REST{} + controller := &api.ReplicationController{ + TypeMeta: api.TypeMeta{ID: "test", Namespace: "not-default"}, + } + + ctx := api.NewDefaultContext() + channel, err := storage.Create(ctx, controller) + if channel != nil { + t.Error("Expected a nil channel, but we got a value") + } + if err == nil { + t.Errorf("Expected an error, but we didn't get one") + } else if strings.Index(err.Error(), "Controller.Namespace does not match the provided context") == -1 { + t.Errorf("Expected 'Controller.Namespace does not match the provided context' error, got '%v'", err.Error()) + } +} + +func TestUpdateControllerWithConflictingNamespace(t *testing.T) { + storage := REST{} + controller := &api.ReplicationController{ + TypeMeta: api.TypeMeta{ID: "test", Namespace: "not-default"}, + } + + ctx := api.NewDefaultContext() + channel, err := storage.Update(ctx, controller) + if channel != nil { + t.Error("Expected a nil channel, but we got a value") + } + if err == nil { + t.Errorf("Expected an error, but we didn't get one") + } else if strings.Index(err.Error(), "Controller.Namespace does not match the provided context") == -1 { + t.Errorf("Expected 'Controller.Namespace does not match the provided context' error, got '%v'", err.Error()) + } +} diff --git a/pkg/registry/pod/rest_test.go b/pkg/registry/pod/rest_test.go index b809a7580a5..aaae3bfded6 100644 --- a/pkg/registry/pod/rest_test.go +++ b/pkg/registry/pod/rest_test.go @@ -19,6 +19,7 @@ package pod import ( "fmt" "reflect" + "strings" "testing" "time" @@ -651,3 +652,39 @@ func TestFillPodInfoNoData(t *testing.T) { t.Errorf("Expected %s, Got %s", expectedIP, pod.CurrentState.PodIP) } } + +func TestCreatePodWithConflictingNamespace(t *testing.T) { + storage := REST{} + pod := &api.Pod{ + TypeMeta: api.TypeMeta{ID: "test", Namespace: "not-default"}, + } + + ctx := api.NewDefaultContext() + channel, err := storage.Create(ctx, pod) + if channel != nil { + t.Error("Expected a nil channel, but we got a value") + } + if err == nil { + t.Errorf("Expected an error, but we didn't get one") + } else if strings.Index(err.Error(), "Pod.Namespace does not match the provided context") == -1 { + t.Errorf("Expected 'Pod.Namespace does not match the provided context' error, got '%v'", err.Error()) + } +} + +func TestUpdatePodWithConflictingNamespace(t *testing.T) { + storage := REST{} + pod := &api.Pod{ + TypeMeta: api.TypeMeta{ID: "test", Namespace: "not-default"}, + } + + ctx := api.NewDefaultContext() + channel, err := storage.Update(ctx, pod) + if channel != nil { + t.Error("Expected a nil channel, but we got a value") + } + if err == nil { + t.Errorf("Expected an error, but we didn't get one") + } else if strings.Index(err.Error(), "Pod.Namespace does not match the provided context") == -1 { + t.Errorf("Expected 'Pod.Namespace does not match the provided context' error, got '%v'", err.Error()) + } +} diff --git a/pkg/registry/service/rest_test.go b/pkg/registry/service/rest_test.go index fb99ad384c3..7aeb02ee429 100644 --- a/pkg/registry/service/rest_test.go +++ b/pkg/registry/service/rest_test.go @@ -20,6 +20,7 @@ import ( "fmt" "net" "reflect" + "strings" "testing" "github.com/GoogleCloudPlatform/kubernetes/pkg/api" @@ -598,3 +599,39 @@ func TestServiceRegistryIPReloadFromStorage(t *testing.T) { t.Errorf("Unexpected PortalIP: %s", created_service.PortalIP) } } + +func TestCreateServiceWithConflictingNamespace(t *testing.T) { + storage := REST{} + service := &api.Service{ + TypeMeta: api.TypeMeta{ID: "test", Namespace: "not-default"}, + } + + ctx := api.NewDefaultContext() + channel, err := storage.Create(ctx, service) + if channel != nil { + t.Error("Expected a nil channel, but we got a value") + } + if err == nil { + t.Errorf("Expected an error, but we didn't get one") + } else if strings.Index(err.Error(), "Service.Namespace does not match the provided context") == -1 { + t.Errorf("Expected 'Service.Namespace does not match the provided context' error, got '%v'", err.Error()) + } +} + +func TestUpdateServiceWithConflictingNamespace(t *testing.T) { + storage := REST{} + service := &api.Service{ + TypeMeta: api.TypeMeta{ID: "test", Namespace: "not-default"}, + } + + ctx := api.NewDefaultContext() + channel, err := storage.Update(ctx, service) + if channel != nil { + t.Error("Expected a nil channel, but we got a value") + } + if err == nil { + t.Errorf("Expected an error, but we didn't get one") + } else if strings.Index(err.Error(), "Service.Namespace does not match the provided context") == -1 { + t.Errorf("Expected 'Service.Namespace does not match the provided context' error, got '%v'", err.Error()) + } +}