package controller import ( "testing" "github.com/GoogleCloudPlatform/kubernetes/pkg/api" kclient "github.com/GoogleCloudPlatform/kubernetes/pkg/client" "github.com/GoogleCloudPlatform/kubernetes/pkg/util" osclient "github.com/openshift/origin/pkg/client" ) func TestSyncNamespaceThatIsTerminating(t *testing.T) { mockKubeClient := &kclient.Fake{} mockOriginClient := &osclient.Fake{} nm := NamespaceController{ KubeClient: mockKubeClient, Client: mockOriginClient, } //now := util.Now() testNamespace := &api.Namespace{ ObjectMeta: api.ObjectMeta{ Name: "test", ResourceVersion: "1", // DeletionTimestamp: &now, }, // Spec: api.NamespaceSpec{ // Finalizers: []api.FinalizerName{"kubernetes"}, // }, Status: api.NamespaceStatus{ Phase: api.NamespaceTerminating, }, } err := nm.Handle(testNamespace) if err != nil { t.Errorf("Unexpected error when handling namespace %v", err) } // TODO: we will expect a finalize namespace call after rebase expectedActionSet := util.NewStringSet( "list-buildconfig", "list-policies", "list-imagerepositries", "list-policyBindings", "list-roleBinding", "list-role", "list-routes", "list-builds", "list-deploymentconfig", "list-deployment") actionSet := util.NewStringSet() for i := range mockKubeClient.Actions { actionSet.Insert(mockKubeClient.Actions[i].Action) } for i := range mockOriginClient.Actions { actionSet.Insert(mockOriginClient.Actions[i].Action) } if !actionSet.HasAll(expectedActionSet.List()...) { t.Errorf("Expected actions: %v, but got: %v", expectedActionSet, actionSet) } } func TestSyncNamespaceThatIsActive(t *testing.T) { mockKubeClient := &kclient.Fake{} mockOriginClient := &osclient.Fake{} nm := NamespaceController{ KubeClient: mockKubeClient, Client: mockOriginClient, } //now := util.Now() testNamespace := &api.Namespace{ ObjectMeta: api.ObjectMeta{ Name: "test", ResourceVersion: "1", // DeletionTimestamp: &now, }, // Spec: api.NamespaceSpec{ // Finalizers: []api.FinalizerName{"kubernetes"}, // }, Status: api.NamespaceStatus{ Phase: api.NamespaceActive, }, } err := nm.Handle(testNamespace) if err != nil { t.Errorf("Unexpected error when handling namespace %v", err) } actionSet := util.NewStringSet() for i := range mockKubeClient.Actions { actionSet.Insert(mockKubeClient.Actions[i].Action) } for i := range mockOriginClient.Actions { actionSet.Insert(mockOriginClient.Actions[i].Action) } if len(actionSet) != 0 { t.Errorf("Expected no action from controller, but got: %v", actionSet) } }