From 94a17694ea956227ef533d168dbe750cfdf0499c Mon Sep 17 00:00:00 2001 From: Ruslan Aliev Date: Tue, 8 Dec 2020 20:59:45 -0600 Subject: [PATCH] Move MockDocument implementation to testutils Currently MockDocument implementation located under pkg/bootstrap/isogen package, which is not relevant for it and makes it impossible to import in other test packages. Also _test.go filename is not proper one for this source file since it doesn't contain any unit tests inside. Change-Id: I9b3f28df653637701f5d6fca4376da5a22f39658 Signed-off-by: Ruslan Aliev Relates-To: #432 --- pkg/bootstrap/isogen/command_test.go | 7 +++--- pkg/bootstrap/isogen/executor_test.go | 3 ++- .../document/document.go | 25 ++++++++++++++++++- 3 files changed, 30 insertions(+), 5 deletions(-) rename pkg/bootstrap/isogen/mock_document_test.go => testutil/document/document.go (68%) diff --git a/pkg/bootstrap/isogen/command_test.go b/pkg/bootstrap/isogen/command_test.go index d45fa20b0..281235148 100644 --- a/pkg/bootstrap/isogen/command_test.go +++ b/pkg/bootstrap/isogen/command_test.go @@ -31,6 +31,7 @@ import ( "opendev.org/airship/airshipctl/pkg/log" "opendev.org/airship/airshipctl/testutil" testcontainer "opendev.org/airship/airshipctl/testutil/container" + testdoc "opendev.org/airship/airshipctl/testutil/document" ) const testID = "TESTID" @@ -54,7 +55,7 @@ func TestBootstrapIso(t *testing.T) { NetworkConfigFileName: "net-conf", }, } - testDoc := &MockDocument{ + testDoc := &testdoc.MockDocument{ MockAsYAML: func() ([]byte, error) { return []byte("TESTDOC"), nil }, } testBuilder := &testcontainer.MockContainer{ @@ -74,7 +75,7 @@ func TestBootstrapIso(t *testing.T) { tests := []struct { builder *testcontainer.MockContainer cfg *api.ImageConfiguration - doc *MockDocument + doc *testdoc.MockDocument debug bool expectedOut []string expectedErr error @@ -121,7 +122,7 @@ func TestBootstrapIso(t *testing.T) { { builder: testBuilder, cfg: testCfg, - doc: &MockDocument{ + doc: &testdoc.MockDocument{ MockAsYAML: func() ([]byte, error) { return nil, testErr }, }, debug: false, diff --git a/pkg/bootstrap/isogen/executor_test.go b/pkg/bootstrap/isogen/executor_test.go index c5fa686a6..e81426919 100644 --- a/pkg/bootstrap/isogen/executor_test.go +++ b/pkg/bootstrap/isogen/executor_test.go @@ -30,6 +30,7 @@ import ( "opendev.org/airship/airshipctl/pkg/phase/ifc" "opendev.org/airship/airshipctl/testutil" testcontainer "opendev.org/airship/airshipctl/testutil/container" + testdoc "opendev.org/airship/airshipctl/testutil/document" ) var ( @@ -93,7 +94,7 @@ func TestExecutorRun(t *testing.T) { NetworkConfigFileName: "net-conf", }, } - testDoc := &MockDocument{ + testDoc := &testdoc.MockDocument{ MockAsYAML: func() ([]byte, error) { return []byte("TESTDOC"), nil }, } diff --git a/pkg/bootstrap/isogen/mock_document_test.go b/testutil/document/document.go similarity index 68% rename from pkg/bootstrap/isogen/mock_document_test.go rename to testutil/document/document.go index 5ea7f3fbd..b78111608 100644 --- a/pkg/bootstrap/isogen/mock_document_test.go +++ b/testutil/document/document.go @@ -12,12 +12,13 @@ limitations under the License. */ -package isogen +package document import ( "k8s.io/apimachinery/pkg/runtime" ) +// MockDocument implements Document for unit test purposes type MockDocument struct { MockAnnotate func() MockAsYAML func() ([]byte, error) @@ -43,90 +44,112 @@ type MockDocument struct { MockGetFieldValue func() (interface{}, error) } +// Annotate Document interface implementation for unit test purposes func (md *MockDocument) Annotate(_ map[string]string) { md.MockAnnotate() } +// AsYAML Document interface implementation for unit test purposes func (md *MockDocument) AsYAML() ([]byte, error) { return md.MockAsYAML() } +// GetAnnotations Document interface implementation for unit test purposes func (md *MockDocument) GetAnnotations() map[string]string { return md.MockGetAnnotations() } +// GetBool Document interface implementation for unit test purposes func (md *MockDocument) GetBool(_ string) (bool, error) { return md.MockGetBool() } +// GetFloat64 Document interface implementation for unit test purposes func (md *MockDocument) GetFloat64(_ string) (float64, error) { return md.MockGetFloat64() } +// GetFieldValue Document interface implementation for unit test purposes func (md *MockDocument) GetFieldValue(_ string) (interface{}, error) { return md.MockGetFieldValue() } +// GetGroup Document interface implementation for unit test purposes func (md *MockDocument) GetGroup() string { return md.MockGetGroup() } +// GetInt64 Document interface implementation for unit test purposes func (md *MockDocument) GetInt64(_ string) (int64, error) { return md.MockGetInt64() } +// GetKind Document interface implementation for unit test purposes func (md *MockDocument) GetKind() string { return md.MockGetKind() } +// GetLabels Document interface implementation for unit test purposes func (md *MockDocument) GetLabels() map[string]string { return md.MockGetLabels() } +// GetMap Document interface implementation for unit test purposes func (md *MockDocument) GetMap(_ string) (map[string]interface{}, error) { return md.MockGetMap() } +// GetName Document interface implementation for unit test purposes func (md *MockDocument) GetName() string { return md.MockGetName() } +// GetNamespace Document interface implementation for unit test purposes func (md *MockDocument) GetNamespace() string { return md.MockGetNamespace() } +// GetSlice Document interface implementation for unit test purposes func (md *MockDocument) GetSlice(_ string) ([]interface{}, error) { return md.MockGetSlice() } +// GetString Document interface implementation for unit test purposes func (md *MockDocument) GetString(_ string) (string, error) { return md.MockGetString() } +// GetStringMap Document interface implementation for unit test purposes func (md *MockDocument) GetStringMap(_ string) (map[string]string, error) { return md.MockGetStringMap() } +// GetStringSlice Document interface implementation for unit test purposes func (md *MockDocument) GetStringSlice(_ string) ([]string, error) { return md.MockGetStringSlice() } +// GetVersion Document interface implementation for unit test purposes func (md *MockDocument) GetVersion() string { return md.MockGetVersion() } +// Label Document interface implementation for unit test purposes func (md *MockDocument) Label(_ map[string]string) { md.MockLabel() } +// MarshalJSON Document interface implementation for unit test purposes func (md *MockDocument) MarshalJSON() ([]byte, error) { return md.MockMarshalJSON() } +// ToObject Document interface implementation for unit test purposes func (md *MockDocument) ToObject(_ interface{}) error { return md.MockToObject() } +// ToAPIObject Document interface implementation for unit test purposes func (md *MockDocument) ToAPIObject(obj runtime.Object, scheme *runtime.Scheme) error { return md.MockToAPIObject() }