add test to cover more in kubectl create service
This commit is contained in:
		| @@ -55,3 +55,63 @@ func TestCreateService(t *testing.T) { | ||||
| 		t.Errorf("expected output: %s, but got: %s", expectedOutput, buf.String()) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestCreateServiceNodePort(t *testing.T) { | ||||
| 	service := &api.Service{} | ||||
| 	service.Name = "my-node-port-service" | ||||
| 	f, tf, codec, negSer := cmdtesting.NewAPIFactory() | ||||
| 	tf.Printer = &testPrinter{} | ||||
| 	tf.Client = &fake.RESTClient{ | ||||
| 		APIRegistry:          api.Registry, | ||||
| 		NegotiatedSerializer: negSer, | ||||
| 		Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { | ||||
| 			switch p, m := req.URL.Path, req.Method; { | ||||
| 			case p == "/namespaces/test/services" && m == http.MethodPost: | ||||
| 				return &http.Response{StatusCode: http.StatusCreated, Header: defaultHeader(), Body: objBody(codec, service)}, nil | ||||
| 			default: | ||||
| 				t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) | ||||
| 				return nil, nil | ||||
| 			} | ||||
| 		}), | ||||
| 	} | ||||
| 	tf.Namespace = "test" | ||||
| 	buf := bytes.NewBuffer([]byte{}) | ||||
| 	cmd := NewCmdCreateServiceNodePort(f, buf) | ||||
| 	cmd.Flags().Set("output", "name") | ||||
| 	cmd.Flags().Set("tcp", "30000:8000") | ||||
| 	cmd.Run(cmd, []string{service.Name}) | ||||
| 	expectedOutput := "service/" + service.Name + "\n" | ||||
| 	if buf.String() != expectedOutput { | ||||
| 		t.Errorf("expected output: %s, but got: %s", expectedOutput, buf.String()) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestCreateServiceExternalName(t *testing.T) { | ||||
| 	service := &api.Service{} | ||||
| 	service.Name = "my-external-name-service" | ||||
| 	f, tf, codec, negSer := cmdtesting.NewAPIFactory() | ||||
| 	tf.Printer = &testPrinter{} | ||||
| 	tf.Client = &fake.RESTClient{ | ||||
| 		APIRegistry:          api.Registry, | ||||
| 		NegotiatedSerializer: negSer, | ||||
| 		Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { | ||||
| 			switch p, m := req.URL.Path, req.Method; { | ||||
| 			case p == "/namespaces/test/services" && m == http.MethodPost: | ||||
| 				return &http.Response{StatusCode: http.StatusCreated, Header: defaultHeader(), Body: objBody(codec, service)}, nil | ||||
| 			default: | ||||
| 				t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) | ||||
| 				return nil, nil | ||||
| 			} | ||||
| 		}), | ||||
| 	} | ||||
| 	tf.Namespace = "test" | ||||
| 	buf := bytes.NewBuffer([]byte{}) | ||||
| 	cmd := NewCmdCreateServiceExternalName(f, buf) | ||||
| 	cmd.Flags().Set("output", "name") | ||||
| 	cmd.Flags().Set("external-name", "name") | ||||
| 	cmd.Run(cmd, []string{service.Name}) | ||||
| 	expectedOutput := "service/" + service.Name + "\n" | ||||
| 	if buf.String() != expectedOutput { | ||||
| 		t.Errorf("expected output: %s, but got: %s", expectedOutput, buf.String()) | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 zhengjiajin
					zhengjiajin