Move FakeRESTClient to client/fake.go

This commit is contained in:
Clayton Coleman 2014-11-18 20:19:43 -05:00
parent df0981bc01
commit 9eb4ca43d8
2 changed files with 57 additions and 48 deletions

View File

@ -17,7 +17,11 @@ limitations under the License.
package client
import (
"net/http"
"net/url"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/runtime"
"github.com/GoogleCloudPlatform/kubernetes/pkg/version"
"github.com/GoogleCloudPlatform/kubernetes/pkg/watch"
)
@ -75,3 +79,38 @@ func (c *Fake) ServerAPIVersions() (*api.APIVersions, error) {
c.Actions = append(c.Actions, FakeAction{Action: "get-apiversions", Value: nil})
return &api.APIVersions{Versions: []string{"v1beta1", "v1beta2"}}, nil
}
type HttpClientFunc func(*http.Request) (*http.Response, error)
func (f HttpClientFunc) Do(req *http.Request) (*http.Response, error) {
return f(req)
}
// FakeRESTClient provides a fake RESTClient interface.
type FakeRESTClient struct {
Client HTTPClient
Codec runtime.Codec
Req *http.Request
Resp *http.Response
Err error
}
func (c *FakeRESTClient) Get() *Request {
return NewRequest(c, "GET", &url.URL{Host: "localhost"}, c.Codec)
}
func (c *FakeRESTClient) Put() *Request {
return NewRequest(c, "PUT", &url.URL{Host: "localhost"}, c.Codec)
}
func (c *FakeRESTClient) Post() *Request {
return NewRequest(c, "POST", &url.URL{Host: "localhost"}, c.Codec)
}
func (c *FakeRESTClient) Delete() *Request {
return NewRequest(c, "DELETE", &url.URL{Host: "localhost"}, c.Codec)
}
func (c *FakeRESTClient) Do(req *http.Request) (*http.Response, error) {
c.Req = req
if c.Client != HTTPClient(nil) {
return c.Client.Do(req)
}
return c.Resp, c.Err
}

View File

@ -22,7 +22,6 @@ import (
"io"
"io/ioutil"
"net/http"
"net/url"
"reflect"
"strings"
"testing"
@ -34,39 +33,6 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/runtime"
)
type httpClientFunc func(*http.Request) (*http.Response, error)
func (f httpClientFunc) Do(req *http.Request) (*http.Response, error) {
return f(req)
}
type FakeRESTClient struct {
Client client.HTTPClient
Req *http.Request
Resp *http.Response
Err error
}
func (c *FakeRESTClient) Get() *client.Request {
return client.NewRequest(c, "GET", &url.URL{Host: "localhost"}, testapi.Codec())
}
func (c *FakeRESTClient) Put() *client.Request {
return client.NewRequest(c, "PUT", &url.URL{Host: "localhost"}, testapi.Codec())
}
func (c *FakeRESTClient) Post() *client.Request {
return client.NewRequest(c, "POST", &url.URL{Host: "localhost"}, testapi.Codec())
}
func (c *FakeRESTClient) Delete() *client.Request {
return client.NewRequest(c, "DELETE", &url.URL{Host: "localhost"}, testapi.Codec())
}
func (c *FakeRESTClient) Do(req *http.Request) (*http.Response, error) {
c.Req = req
if c.Client != client.HTTPClient(nil) {
return c.Client.Do(req)
}
return c.Resp, c.Err
}
func objBody(obj runtime.Object) io.ReadCloser {
return ioutil.NopCloser(bytes.NewReader([]byte(runtime.EncodeOrDie(testapi.Codec(), obj))))
}
@ -112,9 +78,10 @@ func TestRESTHelperDelete(t *testing.T) {
},
}
for _, test := range tests {
client := &FakeRESTClient{
Resp: test.Resp,
Err: test.HttpErr,
client := &client.FakeRESTClient{
Codec: testapi.Codec(),
Resp: test.Resp,
Err: test.HttpErr,
}
modifier := &RESTHelper{
RESTClient: client,
@ -147,7 +114,7 @@ func TestRESTHelperCreate(t *testing.T) {
tests := []struct {
Resp *http.Response
RespFunc httpClientFunc
RespFunc client.HttpClientFunc
HttpErr error
Modify bool
Object runtime.Object
@ -192,9 +159,10 @@ func TestRESTHelperCreate(t *testing.T) {
},
}
for i, test := range tests {
client := &FakeRESTClient{
Resp: test.Resp,
Err: test.HttpErr,
client := &client.FakeRESTClient{
Codec: testapi.Codec(),
Resp: test.Resp,
Err: test.HttpErr,
}
if test.RespFunc != nil {
client.Client = test.RespFunc
@ -275,9 +243,10 @@ func TestRESTHelperGet(t *testing.T) {
},
}
for _, test := range tests {
client := &FakeRESTClient{
Resp: test.Resp,
Err: test.HttpErr,
client := &client.FakeRESTClient{
Codec: testapi.Codec(),
Resp: test.Resp,
Err: test.HttpErr,
}
modifier := &RESTHelper{
RESTClient: client,
@ -317,7 +286,7 @@ func TestRESTHelperUpdate(t *testing.T) {
tests := []struct {
Resp *http.Response
RespFunc httpClientFunc
RespFunc client.HttpClientFunc
HttpErr error
Overwrite bool
Object runtime.Object
@ -368,9 +337,10 @@ func TestRESTHelperUpdate(t *testing.T) {
},
}
for i, test := range tests {
client := &FakeRESTClient{
Resp: test.Resp,
Err: test.HttpErr,
client := &client.FakeRESTClient{
Codec: testapi.Codec(),
Resp: test.Resp,
Err: test.HttpErr,
}
if test.RespFunc != nil {
client.Client = test.RespFunc