in cmd/resource/testing.go [120:166]
func newFakeBuilder(t *testing.T) func() *resource.Builder {
cfg, _ := clientcmd.NewDefaultClientConfigLoadingRules().Load()
clientConfig := clientcmd.NewDefaultClientConfig(*cfg, &clientcmd.ConfigOverrides{})
configFlags := genericclioptions.NewTestConfigFlags().
WithClientConfig(clientConfig).
WithRESTMapper(testRESTMapper())
header := http.Header{}
header.Set("Content-Type", runtime.ContentTypeJSON)
codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...)
return func() *resource.Builder {
return resource.NewFakeBuilder(
func(version schema.GroupVersion) (resource.RESTClient, error) {
return &fake.RESTClient{
GroupVersion: schema.GroupVersion{Version: "v1"},
NegotiatedSerializer: resource.UnstructuredPlusDefaultContentConfig().NegotiatedSerializer,
Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) {
switch p, m := req.URL.Path, req.Method; {
case p == "/namespaces/test/services" && m == "POST":
return &http.Response{StatusCode: http.StatusCreated, Header: header, Body: ObjBody(codec, ns("test"))}, nil
case p == "/namespaces/default/deployments/nginx-deployment" && m == "GET":
return &http.Response{StatusCode: http.StatusOK, Header: header, Body: ObjBody(codec, dep("nginx-deployment", "default", false))}, nil
case p == "/namespaces/default/deployments/nginx-deployment-foo" && m == "GET":
return &http.Response{StatusCode: http.StatusOK, Header: header, Body: ObjBody(codec, dep("nginx-deployment-foo", "default", true))}, nil
case p == "/namespaces/default/services/my-service" && m == "GET":
return &http.Response{StatusCode: http.StatusOK, Header: header, Body: ObjBody(codec, svc("my-service", "default", v1.ServiceTypeClusterIP))}, nil
case p == "/namespaces/default/services/lb-service" && m == "GET":
return &http.Response{StatusCode: http.StatusOK, Header: header, Body: ObjBody(codec, svc("lb-service", "default", v1.ServiceTypeLoadBalancer))}, nil
case p == "/namespaces/default/daemonsets/nginx-ds" && m == "GET":
return &http.Response{StatusCode: http.StatusOK, Header: header, Body: ObjBody(codec, ds("nginx-ds", "default", appsv1.RollingUpdateDaemonSetStrategyType, false))}, nil
case p == "/namespaces/default/statefulsets/nginx-ss" && m == "GET":
return &http.Response{StatusCode: http.StatusOK, Header: header, Body: ObjBody(codec, ss("nginx-ss", "default", appsv1.RollingUpdateStatefulSetStrategyType, false))}, nil
case p == "/namespaces/default/ingress/test-ingress" && m == "GET":
return &http.Response{StatusCode: http.StatusOK, Header: header, Body: ObjBody(codec, ing("test-ingress", "default", false))}, nil
default:
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
return nil, nil
}
}),
}, nil
},
configFlags.ToRESTMapper,
func() (restmapper.CategoryExpander, error) {
return resource.FakeCategoryExpander, nil
},
)
}
}