From 8c6ebfccbd7db0360ee2a118df714bb4a792e390 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roland=20Hu=C3=9F?= Date: Fri, 26 Jul 2019 17:21:42 +0200 Subject: [PATCH] chore: Cosmetic fixes --- pkg/serving/v1alpha1/client_mock.go | 137 +++++++++++++--------------- pkg/wait/test_wait_helper.go | 2 +- 2 files changed, 62 insertions(+), 77 deletions(-) diff --git a/pkg/serving/v1alpha1/client_mock.go b/pkg/serving/v1alpha1/client_mock.go index 62005a1901..1b5bc9f46e 100644 --- a/pkg/serving/v1alpha1/client_mock.go +++ b/pkg/serving/v1alpha1/client_mock.go @@ -58,65 +58,14 @@ func (c *MockKnClient) Recorder() *Recorder { return &c.recorder } -// Add a recorded api call the list of calls -func (r *Recorder) add(name string, call apiMethodCall) { - calls, ok := r.recordedCalls[name] - if !ok { - calls = make([]apiMethodCall, 0) - r.recordedCalls[name] = calls - } - r.recordedCalls[name] = append(calls, call) -} - -// Get the next recorded call -func (r *Recorder) shift(name string) (*apiMethodCall, error) { - calls := r.recordedCalls[name] - if len(calls) == 0 { - return nil, fmt.Errorf("no call to '%s' recorded", name) - } - call, calls := calls[0], calls[1:] - r.recordedCalls[name] = calls - return &call, nil -} - -// Get call and verify that it exist -func (c *MockKnClient) getCall(name string) *apiMethodCall { - call, err := c.recorder.shift(name) - assert.NilError(c.t, err, "invalid mock setup, missing recording step") - return call -} - -// Verify given arguments agains recorded arguments -func (c *MockKnClient) verifyArgs(call *apiMethodCall, args ...interface{}) { - callArgs := call.args - for i, arg := range args { - assert.Assert(c.t, len(callArgs) > i, "Internal: Invalid recording: Expected %d args, got %d", len(callArgs), len(args)) - fn := reflect.ValueOf(call.args[i]) - fnType := fn.Type() - if fnType.Kind() == reflect.Func { - fn.Call([]reflect.Value{reflect.ValueOf(c.t), reflect.ValueOf(call.args[0]), reflect.ValueOf(arg)}) - } else { - assert.DeepEqual(c.t, call.args[0], arg) - } - } -} - -func errorOrNil(err interface{}) error { - if err == nil { - return nil - } - return err.(error) -} - // any() can be used in recording to not check for the argument func Any() func(t *testing.T, a, b interface{}) { return func(t *testing.T, a, b interface{}) {} } // Get Service -func (r *Recorder) GetService(name interface{}, service *v1alpha1.Service, err error) *Recorder { +func (r *Recorder) GetService(name interface{}, service *v1alpha1.Service, err error) { r.add("GetService", apiMethodCall{[]interface{}{name}, []interface{}{service, err}}) - return r } func (c *MockKnClient) GetService(name string) (*v1alpha1.Service, error) { @@ -126,9 +75,8 @@ func (c *MockKnClient) GetService(name string) (*v1alpha1.Service, error) { } // List services -func (r *Recorder) ListServices(opts interface{}, serviceList *v1alpha1.ServiceList, err error) *Recorder { +func (r *Recorder) ListServices(opts interface{}, serviceList *v1alpha1.ServiceList, err error) { r.add("ListServices", apiMethodCall{[]interface{}{opts}, []interface{}{serviceList, err}}) - return r } func (c *MockKnClient) ListServices(opts ...ListConfig) (*v1alpha1.ServiceList, error) { @@ -138,9 +86,8 @@ func (c *MockKnClient) ListServices(opts ...ListConfig) (*v1alpha1.ServiceList, } // Create a new service -func (r *Recorder) CreateService(service interface{}, err error) *Recorder { +func (r *Recorder) CreateService(service interface{}, err error) { r.add("CreateService", apiMethodCall{[]interface{}{service}, []interface{}{err}}) - return r } func (c *MockKnClient) CreateService(service *v1alpha1.Service) error { @@ -150,22 +97,19 @@ func (c *MockKnClient) CreateService(service *v1alpha1.Service) error { } // Update the given service -func (r *Recorder) UpdateService(service interface{}, err error) *Recorder { +func (r *Recorder) UpdateService(service interface{}, err error) { r.add("UpdateService", apiMethodCall{[]interface{}{service}, []interface{}{err}}) - return r } func (c *MockKnClient) UpdateService(service *v1alpha1.Service) error { call := c.getCall("UpdateService") c.verifyArgs(call, service) return errorOrNil(call.result[0]) - } // Delete a service by name -func (r *Recorder) DeleteService(name interface{}, err error) *Recorder { +func (r *Recorder) DeleteService(name interface{}, err error) { r.add("DeleteService", apiMethodCall{[]interface{}{name}, []interface{}{err}}) - return r } func (c *MockKnClient) DeleteService(name string) error { @@ -175,48 +119,41 @@ func (c *MockKnClient) DeleteService(name string) error { } // Wait for a service to become ready, but not longer than provided timeout -func (r *Recorder) WaitForService(name interface{}, timeout interface{}, err error) *Recorder { +func (r *Recorder) WaitForService(name interface{}, timeout interface{}, err error) { r.add("WaitForService", apiMethodCall{[]interface{}{name}, []interface{}{err}}) - return r } func (c *MockKnClient) WaitForService(name string, timeout time.Duration) error { call := c.getCall("WaitForService") c.verifyArgs(call, name) return errorOrNil(call.result[0]) - } // Get a revision by name -func (r *Recorder) GetRevision(name interface{}, revision *v1alpha1.Revision, err error) *Recorder { +func (r *Recorder) GetRevision(name interface{}, revision *v1alpha1.Revision, err error) { r.add("GetRevision", apiMethodCall{[]interface{}{name}, []interface{}{revision, err}}) - return r } func (c *MockKnClient) GetRevision(name string) (*v1alpha1.Revision, error) { call := c.getCall("GetRevision") c.verifyArgs(call, name) return call.result[0].(*v1alpha1.Revision), errorOrNil(call.result[1]) - } // List revisions -func (r *Recorder) ListRevisions(opts interface{}, revisionList *v1alpha1.RevisionList, err error) *Recorder { +func (r *Recorder) ListRevisions(opts interface{}, revisionList *v1alpha1.RevisionList, err error) { r.add("ListRevisions", apiMethodCall{[]interface{}{opts}, []interface{}{revisionList, err}}) - return r } func (c *MockKnClient) ListRevisions(opts ...ListConfig) (*v1alpha1.RevisionList, error) { call := c.getCall("ListRevisions") c.verifyArgs(call, opts) return call.result[0].(*v1alpha1.RevisionList), errorOrNil(call.result[1]) - } // Delete a revision -func (r *Recorder) DeleteRevision(name interface{}, err error) *Recorder { +func (r *Recorder) DeleteRevision(name interface{}, err error) { r.add("DeleteRevision", apiMethodCall{[]interface{}{name}, []interface{}{err}}) - return r } func (c *MockKnClient) DeleteRevision(name string) error { @@ -227,9 +164,8 @@ func (c *MockKnClient) DeleteRevision(name string) error { } // Get a route by its unique name -func (r *Recorder) GetRoute(name interface{}, route *v1alpha1.Route, err error) *Recorder { +func (r *Recorder) GetRoute(name interface{}, route *v1alpha1.Route, err error) { r.add("GetRoute", apiMethodCall{[]interface{}{name}, []interface{}{route, err}}) - return r } func (c *MockKnClient) GetRoute(name string) (*v1alpha1.Route, error) { @@ -240,9 +176,8 @@ func (c *MockKnClient) GetRoute(name string) (*v1alpha1.Route, error) { } // List routes -func (r *Recorder) ListRoutes(opts interface{}, routeList *v1alpha1.RouteList, err error) *Recorder { +func (r *Recorder) ListRoutes(opts interface{}, routeList *v1alpha1.RouteList, err error) { r.add("ListRoutes", apiMethodCall{[]interface{}{opts}, []interface{}{routeList, err}}) - return r } func (c *MockKnClient) ListRoutes(opts ...ListConfig) (*v1alpha1.RouteList, error) { @@ -259,3 +194,53 @@ func (r *Recorder) Validate() { } } } + +// Add a recorded api call the list of calls +func (r *Recorder) add(name string, call apiMethodCall) { + calls, ok := r.recordedCalls[name] + if !ok { + calls = make([]apiMethodCall, 0) + r.recordedCalls[name] = calls + } + r.recordedCalls[name] = append(calls, call) +} + +// Get the next recorded call +func (r *Recorder) shift(name string) (*apiMethodCall, error) { + calls := r.recordedCalls[name] + if len(calls) == 0 { + return nil, fmt.Errorf("no call to '%s' recorded", name) + } + call, calls := calls[0], calls[1:] + r.recordedCalls[name] = calls + return &call, nil +} + +// Get call and verify that it exist +func (c *MockKnClient) getCall(name string) *apiMethodCall { + call, err := c.recorder.shift(name) + assert.NilError(c.t, err, "invalid mock setup, missing recording step") + return call +} + +// Verify given arguments agains recorded arguments +func (c *MockKnClient) verifyArgs(call *apiMethodCall, args ...interface{}) { + callArgs := call.args + for i, arg := range args { + assert.Assert(c.t, len(callArgs) > i, "Internal: Invalid recording: Expected %d args, got %d", len(callArgs), len(args)) + fn := reflect.ValueOf(call.args[i]) + fnType := fn.Type() + if fnType.Kind() == reflect.Func { + fn.Call([]reflect.Value{reflect.ValueOf(c.t), reflect.ValueOf(call.args[0]), reflect.ValueOf(arg)}) + } else { + assert.DeepEqual(c.t, call.args[0], arg) + } + } +} + +func errorOrNil(err interface{}) error { + if err == nil { + return nil + } + return err.(error) +} diff --git a/pkg/wait/test_wait_helper.go b/pkg/wait/test_wait_helper.go index 722a200f10..4571324a79 100644 --- a/pkg/wait/test_wait_helper.go +++ b/pkg/wait/test_wait_helper.go @@ -28,7 +28,7 @@ type FakeWatch struct { eventChan chan watch.Event events []watch.Event - // Recorder how often stop was called + // Record how often stop was called StopCalled int }