You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2023/05/08 13:47:31 UTC

[plc4x] branch develop updated: test(plc4go/cbus): replace temp mock with mockery mock

This is an automated email from the ASF dual-hosted git repository.

sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/develop by this push:
     new 321a0793f7 test(plc4go/cbus): replace temp mock with mockery mock
321a0793f7 is described below

commit 321a0793f736a2f553f92e20a7a1fd65cf23dfbe
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Mon May 8 15:47:24 2023 +0200

    test(plc4go/cbus): replace temp mock with mockery mock
---
 plc4go/internal/cbus/Reader_test.go                |  99 +++++---
 .../internal/cbus/mock_RequestTransaction_test.go  | 256 +++++++++++++++++++++
 .../model => internal/cbus}/mock_requirements.go   |   7 +-
 plc4go/spi/model/mock_requirements.go              |   1 +
 4 files changed, 325 insertions(+), 38 deletions(-)

diff --git a/plc4go/internal/cbus/Reader_test.go b/plc4go/internal/cbus/Reader_test.go
index 855a0c3240..54050ce9f3 100644
--- a/plc4go/internal/cbus/Reader_test.go
+++ b/plc4go/internal/cbus/Reader_test.go
@@ -27,7 +27,9 @@ import (
 	"github.com/apache/plc4x/plc4go/spi"
 	spiModel "github.com/apache/plc4x/plc4go/spi/model"
 	"github.com/apache/plc4x/plc4go/spi/transports/test"
+	"github.com/pkg/errors"
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/mock"
 	"net/url"
 	"strings"
 	"sync"
@@ -368,28 +370,6 @@ func TestReader_readSync(t *testing.T) {
 	}
 }
 
-type _TestReader_sendMessageOverTheWire_Transaction struct {
-}
-
-func (_ _TestReader_sendMessageOverTheWire_Transaction) String() string {
-	return "_TestReader_sendMessageOverTheWire_Transaction"
-}
-
-func (_ _TestReader_sendMessageOverTheWire_Transaction) FailRequest(err error) error {
-	return err
-}
-
-func (_ _TestReader_sendMessageOverTheWire_Transaction) EndRequest() error {
-	return nil
-}
-
-func (_ _TestReader_sendMessageOverTheWire_Transaction) Submit(operation spi.RequestTransactionRunnable) {
-}
-
-func (_ _TestReader_sendMessageOverTheWire_Transaction) AwaitCompletion(ctx context.Context) error {
-	return nil
-}
-
 func TestReader_sendMessageOverTheWire(t *testing.T) {
 	type fields struct {
 		alphaGenerator *AlphaGenerator
@@ -405,10 +385,11 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 		addPlcValue     func(t *testing.T, wg *sync.WaitGroup) func(name string, plcValue apiValues.PlcValue)
 	}
 	tests := []struct {
-		name   string
-		fields fields
-		args   args
-		wg     *sync.WaitGroup
+		name      string
+		fields    fields
+		args      args
+		mockSetup func(t *testing.T, fields *fields, args *args)
+		wg        *sync.WaitGroup
 	}{
 		{
 			name: "Send message empty message",
@@ -444,7 +425,6 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					t.Cleanup(cancel)
 					return timeout
 				}(),
-				transaction:   _TestReader_sendMessageOverTheWire_Transaction{},
 				messageToSend: nil,
 				addResponseCode: func(t *testing.T, wg *sync.WaitGroup) func(name string, responseCode apiModel.PlcResponseCode) {
 					return func(name string, responseCode apiModel.PlcResponseCode) {
@@ -462,6 +442,12 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					}
 				},
 			},
+			mockSetup: func(t *testing.T, fields *fields, args *args) {
+				transaction := NewMockRequestTransaction(t)
+				expect := transaction.EXPECT()
+				expect.FailRequest(mock.Anything).Return(errors.New("no I say"))
+				args.transaction = transaction
+			},
 			wg: &sync.WaitGroup{},
 		},
 		{
@@ -515,7 +501,6 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					t.Cleanup(cancel)
 					return timeout
 				}(),
-				transaction: _TestReader_sendMessageOverTheWire_Transaction{},
 				messageToSend: readWriteModel.NewCBusMessageToServer(
 					readWriteModel.NewRequestReset(
 						readWriteModel.RequestType_RESET,
@@ -548,6 +533,12 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					}
 				},
 			},
+			mockSetup: func(t *testing.T, fields *fields, args *args) {
+				transaction := NewMockRequestTransaction(t)
+				expect := transaction.EXPECT()
+				expect.FailRequest(mock.Anything).Return(errors.New("Nope"))
+				args.transaction = transaction
+			},
 			wg: &sync.WaitGroup{},
 		},
 		{
@@ -601,7 +592,6 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					t.Cleanup(cancel)
 					return timeout
 				}(),
-				transaction: _TestReader_sendMessageOverTheWire_Transaction{},
 				messageToSend: readWriteModel.NewCBusMessageToServer(
 					readWriteModel.NewRequestReset(
 						readWriteModel.RequestType_RESET,
@@ -634,6 +624,12 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					}
 				},
 			},
+			mockSetup: func(t *testing.T, fields *fields, args *args) {
+				transaction := NewMockRequestTransaction(t)
+				expect := transaction.EXPECT()
+				expect.EndRequest().Return(nil)
+				args.transaction = transaction
+			},
 			wg: &sync.WaitGroup{},
 		},
 		{
@@ -687,7 +683,6 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					t.Cleanup(cancel)
 					return timeout
 				}(),
-				transaction: _TestReader_sendMessageOverTheWire_Transaction{},
 				messageToSend: readWriteModel.NewCBusMessageToServer(
 					readWriteModel.NewRequestDirectCommandAccess(
 						readWriteModel.NewCALDataIdentify(
@@ -723,6 +718,12 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					}
 				},
 			},
+			mockSetup: func(t *testing.T, fields *fields, args *args) {
+				transaction := NewMockRequestTransaction(t)
+				expect := transaction.EXPECT()
+				expect.EndRequest().Return(nil)
+				args.transaction = transaction
+			},
 			wg: &sync.WaitGroup{},
 		},
 		{
@@ -776,7 +777,6 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					t.Cleanup(cancel)
 					return timeout
 				}(),
-				transaction: _TestReader_sendMessageOverTheWire_Transaction{},
 				messageToSend: readWriteModel.NewCBusMessageToServer(
 					readWriteModel.NewRequestDirectCommandAccess(
 						readWriteModel.NewCALDataIdentify(
@@ -812,6 +812,12 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					}
 				},
 			},
+			mockSetup: func(t *testing.T, fields *fields, args *args) {
+				transaction := NewMockRequestTransaction(t)
+				expect := transaction.EXPECT()
+				expect.EndRequest().Return(nil)
+				args.transaction = transaction
+			},
 			wg: &sync.WaitGroup{},
 		},
 		{
@@ -865,7 +871,6 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					t.Cleanup(cancel)
 					return timeout
 				}(),
-				transaction: _TestReader_sendMessageOverTheWire_Transaction{},
 				messageToSend: readWriteModel.NewCBusMessageToServer(
 					readWriteModel.NewRequestDirectCommandAccess(
 						readWriteModel.NewCALDataIdentify(
@@ -901,6 +906,12 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					}
 				},
 			},
+			mockSetup: func(t *testing.T, fields *fields, args *args) {
+				transaction := NewMockRequestTransaction(t)
+				expect := transaction.EXPECT()
+				expect.EndRequest().Return(nil)
+				args.transaction = transaction
+			},
 			wg: &sync.WaitGroup{},
 		},
 		{
@@ -954,7 +965,6 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					t.Cleanup(cancel)
 					return timeout
 				}(),
-				transaction: _TestReader_sendMessageOverTheWire_Transaction{},
 				messageToSend: readWriteModel.NewCBusMessageToServer(
 					readWriteModel.NewRequestDirectCommandAccess(
 						readWriteModel.NewCALDataIdentify(
@@ -990,6 +1000,12 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					}
 				},
 			},
+			mockSetup: func(t *testing.T, fields *fields, args *args) {
+				transaction := NewMockRequestTransaction(t)
+				expect := transaction.EXPECT()
+				expect.EndRequest().Return(nil)
+				args.transaction = transaction
+			},
 			wg: &sync.WaitGroup{},
 		},
 		{
@@ -1043,7 +1059,6 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					t.Cleanup(cancel)
 					return timeout
 				}(),
-				transaction: _TestReader_sendMessageOverTheWire_Transaction{},
 				messageToSend: readWriteModel.NewCBusMessageToServer(
 					readWriteModel.NewRequestDirectCommandAccess(
 						readWriteModel.NewCALDataIdentify(
@@ -1079,6 +1094,12 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					}
 				},
 			},
+			mockSetup: func(t *testing.T, fields *fields, args *args) {
+				transaction := NewMockRequestTransaction(t)
+				expect := transaction.EXPECT()
+				expect.EndRequest().Return(nil)
+				args.transaction = transaction
+			},
 			wg: &sync.WaitGroup{},
 		},
 		{
@@ -1132,7 +1153,6 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					t.Cleanup(cancel)
 					return timeout
 				}(),
-				transaction: _TestReader_sendMessageOverTheWire_Transaction{},
 				messageToSend: readWriteModel.NewCBusMessageToServer(
 					readWriteModel.NewRequestDirectCommandAccess(
 						readWriteModel.NewCALDataIdentify(
@@ -1168,6 +1188,12 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 					}
 				},
 			},
+			mockSetup: func(t *testing.T, fields *fields, args *args) {
+				transaction := NewMockRequestTransaction(t)
+				expect := transaction.EXPECT()
+				expect.EndRequest().Return(nil)
+				args.transaction = transaction
+			},
 			wg: func() *sync.WaitGroup {
 				wg := &sync.WaitGroup{}
 				wg.Add(1) // We getting an response and a value
@@ -1177,6 +1203,9 @@ func TestReader_sendMessageOverTheWire(t *testing.T) {
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
+			if tt.mockSetup != nil {
+				tt.mockSetup(t, &tt.fields, &tt.args)
+			}
 			m := &Reader{
 				alphaGenerator: tt.fields.alphaGenerator,
 				messageCodec:   tt.fields.messageCodec,
diff --git a/plc4go/internal/cbus/mock_RequestTransaction_test.go b/plc4go/internal/cbus/mock_RequestTransaction_test.go
new file mode 100644
index 0000000000..f490b89bf1
--- /dev/null
+++ b/plc4go/internal/cbus/mock_RequestTransaction_test.go
@@ -0,0 +1,256 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+// Code generated by mockery v2.26.1. DO NOT EDIT.
+
+package cbus
+
+import (
+	context "context"
+
+	spi "github.com/apache/plc4x/plc4go/spi"
+	mock "github.com/stretchr/testify/mock"
+)
+
+// MockRequestTransaction is an autogenerated mock type for the RequestTransaction type
+type MockRequestTransaction struct {
+	mock.Mock
+}
+
+type MockRequestTransaction_Expecter struct {
+	mock *mock.Mock
+}
+
+func (_m *MockRequestTransaction) EXPECT() *MockRequestTransaction_Expecter {
+	return &MockRequestTransaction_Expecter{mock: &_m.Mock}
+}
+
+// AwaitCompletion provides a mock function with given fields: ctx
+func (_m *MockRequestTransaction) AwaitCompletion(ctx context.Context) error {
+	ret := _m.Called(ctx)
+
+	var r0 error
+	if rf, ok := ret.Get(0).(func(context.Context) error); ok {
+		r0 = rf(ctx)
+	} else {
+		r0 = ret.Error(0)
+	}
+
+	return r0
+}
+
+// MockRequestTransaction_AwaitCompletion_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AwaitCompletion'
+type MockRequestTransaction_AwaitCompletion_Call struct {
+	*mock.Call
+}
+
+// AwaitCompletion is a helper method to define mock.On call
+//   - ctx context.Context
+func (_e *MockRequestTransaction_Expecter) AwaitCompletion(ctx interface{}) *MockRequestTransaction_AwaitCompletion_Call {
+	return &MockRequestTransaction_AwaitCompletion_Call{Call: _e.mock.On("AwaitCompletion", ctx)}
+}
+
+func (_c *MockRequestTransaction_AwaitCompletion_Call) Run(run func(ctx context.Context)) *MockRequestTransaction_AwaitCompletion_Call {
+	_c.Call.Run(func(args mock.Arguments) {
+		run(args[0].(context.Context))
+	})
+	return _c
+}
+
+func (_c *MockRequestTransaction_AwaitCompletion_Call) Return(_a0 error) *MockRequestTransaction_AwaitCompletion_Call {
+	_c.Call.Return(_a0)
+	return _c
+}
+
+func (_c *MockRequestTransaction_AwaitCompletion_Call) RunAndReturn(run func(context.Context) error) *MockRequestTransaction_AwaitCompletion_Call {
+	_c.Call.Return(run)
+	return _c
+}
+
+// EndRequest provides a mock function with given fields:
+func (_m *MockRequestTransaction) EndRequest() error {
+	ret := _m.Called()
+
+	var r0 error
+	if rf, ok := ret.Get(0).(func() error); ok {
+		r0 = rf()
+	} else {
+		r0 = ret.Error(0)
+	}
+
+	return r0
+}
+
+// MockRequestTransaction_EndRequest_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'EndRequest'
+type MockRequestTransaction_EndRequest_Call struct {
+	*mock.Call
+}
+
+// EndRequest is a helper method to define mock.On call
+func (_e *MockRequestTransaction_Expecter) EndRequest() *MockRequestTransaction_EndRequest_Call {
+	return &MockRequestTransaction_EndRequest_Call{Call: _e.mock.On("EndRequest")}
+}
+
+func (_c *MockRequestTransaction_EndRequest_Call) Run(run func()) *MockRequestTransaction_EndRequest_Call {
+	_c.Call.Run(func(args mock.Arguments) {
+		run()
+	})
+	return _c
+}
+
+func (_c *MockRequestTransaction_EndRequest_Call) Return(_a0 error) *MockRequestTransaction_EndRequest_Call {
+	_c.Call.Return(_a0)
+	return _c
+}
+
+func (_c *MockRequestTransaction_EndRequest_Call) RunAndReturn(run func() error) *MockRequestTransaction_EndRequest_Call {
+	_c.Call.Return(run)
+	return _c
+}
+
+// FailRequest provides a mock function with given fields: err
+func (_m *MockRequestTransaction) FailRequest(err error) error {
+	ret := _m.Called(err)
+
+	var r0 error
+	if rf, ok := ret.Get(0).(func(error) error); ok {
+		r0 = rf(err)
+	} else {
+		r0 = ret.Error(0)
+	}
+
+	return r0
+}
+
+// MockRequestTransaction_FailRequest_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'FailRequest'
+type MockRequestTransaction_FailRequest_Call struct {
+	*mock.Call
+}
+
+// FailRequest is a helper method to define mock.On call
+//   - err error
+func (_e *MockRequestTransaction_Expecter) FailRequest(err interface{}) *MockRequestTransaction_FailRequest_Call {
+	return &MockRequestTransaction_FailRequest_Call{Call: _e.mock.On("FailRequest", err)}
+}
+
+func (_c *MockRequestTransaction_FailRequest_Call) Run(run func(err error)) *MockRequestTransaction_FailRequest_Call {
+	_c.Call.Run(func(args mock.Arguments) {
+		run(args[0].(error))
+	})
+	return _c
+}
+
+func (_c *MockRequestTransaction_FailRequest_Call) Return(_a0 error) *MockRequestTransaction_FailRequest_Call {
+	_c.Call.Return(_a0)
+	return _c
+}
+
+func (_c *MockRequestTransaction_FailRequest_Call) RunAndReturn(run func(error) error) *MockRequestTransaction_FailRequest_Call {
+	_c.Call.Return(run)
+	return _c
+}
+
+// String provides a mock function with given fields:
+func (_m *MockRequestTransaction) String() string {
+	ret := _m.Called()
+
+	var r0 string
+	if rf, ok := ret.Get(0).(func() string); ok {
+		r0 = rf()
+	} else {
+		r0 = ret.Get(0).(string)
+	}
+
+	return r0
+}
+
+// MockRequestTransaction_String_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'String'
+type MockRequestTransaction_String_Call struct {
+	*mock.Call
+}
+
+// String is a helper method to define mock.On call
+func (_e *MockRequestTransaction_Expecter) String() *MockRequestTransaction_String_Call {
+	return &MockRequestTransaction_String_Call{Call: _e.mock.On("String")}
+}
+
+func (_c *MockRequestTransaction_String_Call) Run(run func()) *MockRequestTransaction_String_Call {
+	_c.Call.Run(func(args mock.Arguments) {
+		run()
+	})
+	return _c
+}
+
+func (_c *MockRequestTransaction_String_Call) Return(_a0 string) *MockRequestTransaction_String_Call {
+	_c.Call.Return(_a0)
+	return _c
+}
+
+func (_c *MockRequestTransaction_String_Call) RunAndReturn(run func() string) *MockRequestTransaction_String_Call {
+	_c.Call.Return(run)
+	return _c
+}
+
+// Submit provides a mock function with given fields: operation
+func (_m *MockRequestTransaction) Submit(operation spi.RequestTransactionRunnable) {
+	_m.Called(operation)
+}
+
+// MockRequestTransaction_Submit_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Submit'
+type MockRequestTransaction_Submit_Call struct {
+	*mock.Call
+}
+
+// Submit is a helper method to define mock.On call
+//   - operation spi.RequestTransactionRunnable
+func (_e *MockRequestTransaction_Expecter) Submit(operation interface{}) *MockRequestTransaction_Submit_Call {
+	return &MockRequestTransaction_Submit_Call{Call: _e.mock.On("Submit", operation)}
+}
+
+func (_c *MockRequestTransaction_Submit_Call) Run(run func(operation spi.RequestTransactionRunnable)) *MockRequestTransaction_Submit_Call {
+	_c.Call.Run(func(args mock.Arguments) {
+		run(args[0].(spi.RequestTransactionRunnable))
+	})
+	return _c
+}
+
+func (_c *MockRequestTransaction_Submit_Call) Return() *MockRequestTransaction_Submit_Call {
+	_c.Call.Return()
+	return _c
+}
+
+func (_c *MockRequestTransaction_Submit_Call) RunAndReturn(run func(spi.RequestTransactionRunnable)) *MockRequestTransaction_Submit_Call {
+	_c.Call.Return(run)
+	return _c
+}
+
+type mockConstructorTestingTNewMockRequestTransaction interface {
+	mock.TestingT
+	Cleanup(func())
+}
+
+// NewMockRequestTransaction creates a new instance of MockRequestTransaction. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
+func NewMockRequestTransaction(t mockConstructorTestingTNewMockRequestTransaction) *MockRequestTransaction {
+	mock := &MockRequestTransaction{}
+	mock.Mock.Test(t)
+
+	t.Cleanup(func() { mock.AssertExpectations(t) })
+
+	return mock
+}
diff --git a/plc4go/spi/model/mock_requirements.go b/plc4go/internal/cbus/mock_requirements.go
similarity index 88%
copy from plc4go/spi/model/mock_requirements.go
copy to plc4go/internal/cbus/mock_requirements.go
index 88cc1d8e9e..69bb4c4e7c 100644
--- a/plc4go/spi/model/mock_requirements.go
+++ b/plc4go/internal/cbus/mock_requirements.go
@@ -17,12 +17,13 @@
  * under the License.
  */
 
-package model
+package cbus
 
 import "github.com/apache/plc4x/plc4go/spi"
 
 // Note this file is a Helper for mockery to generate use mocks from other package
 
-type PlcTagHandler interface {
-	spi.PlcTagHandler
+// Deprecated: don't use it in productive code
+type RequestTransaction interface {
+	spi.RequestTransaction
 }
diff --git a/plc4go/spi/model/mock_requirements.go b/plc4go/spi/model/mock_requirements.go
index 88cc1d8e9e..154989fa3b 100644
--- a/plc4go/spi/model/mock_requirements.go
+++ b/plc4go/spi/model/mock_requirements.go
@@ -23,6 +23,7 @@ import "github.com/apache/plc4x/plc4go/spi"
 
 // Note this file is a Helper for mockery to generate use mocks from other package
 
+// Deprecated: don't use it in productive code
 type PlcTagHandler interface {
 	spi.PlcTagHandler
 }