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/09 15:20:02 UTC
[plc4x] branch develop updated: test(plc4go): ensure mocks are created with right test context
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 5b8995e2d6 test(plc4go): ensure mocks are created with right test context
5b8995e2d6 is described below
commit 5b8995e2d6abe15d41578c43ad492ed8cbd5e167
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue May 9 17:19:53 2023 +0200
test(plc4go): ensure mocks are created with right test context
---
plc4go/spi/default/DefaultBrowser_test.go | 15 +-
plc4go/spi/default/DefaultCodec_test.go | 40 +++--
plc4go/spi/default/DefaultConnection_test.go | 55 +++---
.../SingleItemRequestInterceptor_test.go | 3 +-
plc4go/spi/model/DefaultPlcBrowseRequest_test.go | 28 +--
plc4go/spi/model/render_test.go | 1 +
plc4go/spi/transports/TransportInstance_test.go | 200 ++++++++++-----------
plc4go/spi/utils/WriteBufferByteBased_test.go | 22 +--
8 files changed, 193 insertions(+), 171 deletions(-)
diff --git a/plc4go/spi/default/DefaultBrowser_test.go b/plc4go/spi/default/DefaultBrowser_test.go
index f7e45e1bd5..889b176dba 100644
--- a/plc4go/spi/default/DefaultBrowser_test.go
+++ b/plc4go/spi/default/DefaultBrowser_test.go
@@ -141,18 +141,19 @@ func Test_defaultBrowser_BrowseWithInterceptor(t *testing.T) {
t.Cleanup(cancelFunc)
return timeout
}(),
- browseRequest: spiModel.NewDefaultPlcBrowseRequest(
- map[string]apiModel.PlcQuery{
- "test": NewMockPlcQuery(t),
- },
- []string{"test"},
- nil,
- ),
},
mockSetup: func(t *testing.T, fields *fields, args *args) {
requirements := NewMockDefaultBrowserRequirements(t)
requirements.EXPECT().BrowseQuery(mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(0, nil)
fields.DefaultBrowserRequirements = requirements
+ query := NewMockPlcQuery(t)
+ args.browseRequest = spiModel.NewDefaultPlcBrowseRequest(
+ map[string]apiModel.PlcQuery{
+ "test": query,
+ },
+ []string{"test"},
+ nil,
+ )
},
wantAsserter: func(t *testing.T, results <-chan apiModel.PlcBrowseRequestResult) bool {
timeout := time.NewTimer(2 * time.Second)
diff --git a/plc4go/spi/default/DefaultCodec_test.go b/plc4go/spi/default/DefaultCodec_test.go
index 4dfb7f3305..664b92c986 100644
--- a/plc4go/spi/default/DefaultCodec_test.go
+++ b/plc4go/spi/default/DefaultCodec_test.go
@@ -329,24 +329,26 @@ func Test_defaultCodec_Connect(t *testing.T) {
customMessageHandling func(codec DefaultCodecRequirements, message spi.Message) bool
}
tests := []struct {
- name string
- fields fields
- wantErr assert.ErrorAssertionFunc
+ name string
+ fields fields
+ mockSetup func(t *testing.T, fields *fields)
+ wantErr assert.ErrorAssertionFunc
}{
{
name: "connect it",
- fields: fields{
- transportInstance: func() transports.TransportInstance {
- instance := NewMockTransportInstance(t)
- instance.EXPECT().IsConnected().Return(true)
- return instance
- }(),
+ mockSetup: func(t *testing.T, fields *fields) {
+ instance := NewMockTransportInstance(t)
+ instance.EXPECT().IsConnected().Return(true)
+ fields.transportInstance = instance
},
wantErr: assert.NoError,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
+ if tt.mockSetup != nil {
+ tt.mockSetup(t, &tt.fields)
+ }
m := &defaultCodec{
DefaultCodecRequirements: tt.fields.DefaultCodecRequirements,
transportInstance: tt.fields.transportInstance,
@@ -437,24 +439,26 @@ func Test_defaultCodec_Disconnect(t *testing.T) {
customMessageHandling func(codec DefaultCodecRequirements, message spi.Message) bool
}
tests := []struct {
- name string
- fields fields
- wantErr assert.ErrorAssertionFunc
+ name string
+ fields fields
+ mockSetup func(t *testing.T, fields *fields)
+ wantErr assert.ErrorAssertionFunc
}{
{
name: "disconnect it",
- fields: fields{
- transportInstance: func() transports.TransportInstance {
- instance := NewMockTransportInstance(t)
- instance.EXPECT().Close().Return(nil)
- return instance
- }(),
+ mockSetup: func(t *testing.T, fields *fields) {
+ instance := NewMockTransportInstance(t)
+ instance.EXPECT().Close().Return(nil)
+ fields.transportInstance = instance
},
wantErr: assert.NoError,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
+ if tt.mockSetup != nil {
+ tt.mockSetup(t, &tt.fields)
+ }
m := &defaultCodec{
DefaultCodecRequirements: tt.fields.DefaultCodecRequirements,
transportInstance: tt.fields.transportInstance,
diff --git a/plc4go/spi/default/DefaultConnection_test.go b/plc4go/spi/default/DefaultConnection_test.go
index 76c0e457d1..49ad8dd480 100644
--- a/plc4go/spi/default/DefaultConnection_test.go
+++ b/plc4go/spi/default/DefaultConnection_test.go
@@ -471,19 +471,23 @@ func Test_defaultConnection_BrowseRequestBuilder(t *testing.T) {
valueHandler spi.PlcValueHandler
}
tests := []struct {
- name string
- fields fields
- want model.PlcBrowseRequestBuilder
+ name string
+ fields fields
+ mockSetup func(t *testing.T, fields *fields)
+ want model.PlcBrowseRequestBuilder
}{
{
name: "create it",
- fields: fields{
- DefaultConnectionRequirements: NewMockDefaultConnectionRequirements(t),
+ mockSetup: func(t *testing.T, fields *fields) {
+ fields.DefaultConnectionRequirements = NewMockDefaultConnectionRequirements(t)
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
+ if tt.mockSetup != nil {
+ tt.mockSetup(t, &tt.fields)
+ }
defer func() {
if err := recover(); err != nil {
assert.Equal(t, "not provided by actual connection", err)
@@ -776,31 +780,32 @@ func Test_defaultConnection_GetTransportInstance(t *testing.T) {
tagHandler spi.PlcTagHandler
valueHandler spi.PlcValueHandler
}
- theInstance := NewMockTransportInstance(t)
+
tests := []struct {
name string
fields fields
- mockSetup func(t *testing.T, fields *fields)
+ mockSetup func(t *testing.T, fields *fields, want *transports.TransportInstance)
want transports.TransportInstance
}{
{
name: "get it",
- mockSetup: func(t *testing.T, fields *fields) {
+ mockSetup: func(t *testing.T, fields *fields, want *transports.TransportInstance) {
requirements := NewMockDefaultConnectionRequirements(t)
codec := NewMockMessageCodec(t)
{
- codec.EXPECT().GetTransportInstance().Return(theInstance)
+ instance := NewMockTransportInstance(t)
+ codec.EXPECT().GetTransportInstance().Return(instance)
+ *want = instance
}
requirements.EXPECT().GetMessageCodec().Return(codec)
fields.DefaultConnectionRequirements = requirements
},
- want: theInstance,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if tt.mockSetup != nil {
- tt.mockSetup(t, &tt.fields)
+ tt.mockSetup(t, &tt.fields, &tt.want)
}
d := &defaultConnection{
DefaultConnectionRequirements: tt.fields.DefaultConnectionRequirements,
@@ -1177,20 +1182,24 @@ func Test_plcConnectionCloseResult_GetErr(t *testing.T) {
traces []spi.TraceEntry
}
tests := []struct {
- name string
- fields fields
- wantErr assert.ErrorAssertionFunc
+ name string
+ fields fields
+ mockSetup func(t *testing.T, fields *fields)
+ wantErr assert.ErrorAssertionFunc
}{
{
name: "get it",
- fields: fields{
- connection: NewMockPlcConnection(t),
+ mockSetup: func(t *testing.T, fields *fields) {
+ fields.connection = NewMockPlcConnection(t)
},
wantErr: assert.NoError,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
+ if tt.mockSetup != nil {
+ tt.mockSetup(t, &tt.fields)
+ }
d := &plcConnectionCloseResult{
connection: tt.fields.connection,
err: tt.fields.err,
@@ -1259,20 +1268,24 @@ func Test_plcConnectionConnectResult_GetErr(t *testing.T) {
err error
}
tests := []struct {
- name string
- fields fields
- wantErr assert.ErrorAssertionFunc
+ name string
+ fields fields
+ mockSetup func(t *testing.T, fields *fields)
+ wantErr assert.ErrorAssertionFunc
}{
{
name: "get it",
- fields: fields{
- connection: NewMockPlcConnection(t),
+ mockSetup: func(t *testing.T, fields *fields) {
+ fields.connection = NewMockPlcConnection(t)
},
wantErr: assert.NoError,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
+ if tt.mockSetup != nil {
+ tt.mockSetup(t, &tt.fields)
+ }
d := &plcConnectionConnectResult{
connection: tt.fields.connection,
err: tt.fields.err,
diff --git a/plc4go/spi/interceptors/SingleItemRequestInterceptor_test.go b/plc4go/spi/interceptors/SingleItemRequestInterceptor_test.go
index bf17dd825f..7c60fd0a84 100644
--- a/plc4go/spi/interceptors/SingleItemRequestInterceptor_test.go
+++ b/plc4go/spi/interceptors/SingleItemRequestInterceptor_test.go
@@ -402,8 +402,9 @@ func TestSingleItemRequestInterceptor_ProcessReadResponses(t *testing.T) {
},
},
mockSetup: func(t *testing.T, fields *fields, args *args) {
+ result := NewMockPlcReadRequestResult(t)
args.readResults = []apiModel.PlcReadRequestResult{
- NewMockPlcReadRequestResult(t),
+ result,
}
},
wantAssert: func(t *testing.T, args args, got apiModel.PlcReadRequestResult) bool {
diff --git a/plc4go/spi/model/DefaultPlcBrowseRequest_test.go b/plc4go/spi/model/DefaultPlcBrowseRequest_test.go
index 7b37d71e89..880d99fa79 100644
--- a/plc4go/spi/model/DefaultPlcBrowseRequest_test.go
+++ b/plc4go/spi/model/DefaultPlcBrowseRequest_test.go
@@ -42,32 +42,38 @@ func TestDefaultPlcBrowseRequestBuilder_AddQuery(t *testing.T) {
query string
}
tests := []struct {
- name string
- fields fields
- args args
- want apiModel.PlcBrowseRequestBuilder
+ name string
+ fields fields
+ args args
+ mockSetup func(t *testing.T, fields *fields, args *args, want *apiModel.PlcBrowseRequestBuilder)
+ want apiModel.PlcBrowseRequestBuilder
}{
{
name: "add one",
fields: fields{
- tagHandler: NewMockPlcTagHandler(t),
queryStrings: map[string]string{},
},
args: args{
name: "a name",
query: "a query",
},
- want: &DefaultPlcBrowseRequestBuilder{
- tagHandler: NewMockPlcTagHandler(t),
- queryStrings: map[string]string{
- "a name": "a query",
- },
- queryNames: []string{"a name"},
+ mockSetup: func(t *testing.T, fields *fields, args *args, want *apiModel.PlcBrowseRequestBuilder) {
+ fields.tagHandler = NewMockPlcTagHandler(t)
+ *want = &DefaultPlcBrowseRequestBuilder{
+ tagHandler: NewMockPlcTagHandler(t),
+ queryStrings: map[string]string{
+ "a name": "a query",
+ },
+ queryNames: []string{"a name"},
+ }
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
+ if tt.mockSetup != nil {
+ tt.mockSetup(t, &tt.fields, &tt.args, &tt.want)
+ }
d := &DefaultPlcBrowseRequestBuilder{
tagHandler: tt.fields.tagHandler,
browser: tt.fields.browser,
diff --git a/plc4go/spi/model/render_test.go b/plc4go/spi/model/render_test.go
index 7710bd0cb8..e721112ecf 100644
--- a/plc4go/spi/model/render_test.go
+++ b/plc4go/spi/model/render_test.go
@@ -97,6 +97,7 @@ func TestRenderTest(t *testing.T) {
}
}
+// TODO: ensure mocks are created in test context...
// TestRenderTestCustom test some custom objects
func TestRenderTestCustom(t *testing.T) {
tests := []struct {
diff --git a/plc4go/spi/transports/TransportInstance_test.go b/plc4go/spi/transports/TransportInstance_test.go
index e1ac2c8fa5..1a9a7cbfd1 100644
--- a/plc4go/spi/transports/TransportInstance_test.go
+++ b/plc4go/spi/transports/TransportInstance_test.go
@@ -59,20 +59,14 @@ func Test_defaultBufferedTransportInstance_ConnectWithContext(t *testing.T) {
ctx context.Context
}
tests := []struct {
- name string
- fields fields
- args args
- wantErr bool
+ name string
+ fields fields
+ args args
+ mockSetup func(t *testing.T, fields *fields, args *args)
+ wantErr bool
}{
{
name: "connect",
- fields: fields{
- DefaultBufferedTransportInstanceRequirements: func() DefaultBufferedTransportInstanceRequirements {
- requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
- requirements.EXPECT().Connect().Return(nil)
- return requirements
- }(),
- },
args: args{
func() context.Context {
ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second)
@@ -80,12 +74,14 @@ func Test_defaultBufferedTransportInstance_ConnectWithContext(t *testing.T) {
return ctx
}(),
},
+ mockSetup: func(t *testing.T, fields *fields, args *args) {
+ requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
+ requirements.EXPECT().Connect().Return(nil)
+ fields.DefaultBufferedTransportInstanceRequirements = requirements
+ },
},
{
name: "connect canceled",
- fields: fields{
- DefaultBufferedTransportInstanceRequirements: NewMockDefaultBufferedTransportInstanceRequirements(t),
- },
args: args{
func() context.Context {
ctx, cancel := context.WithCancel(context.Background())
@@ -93,11 +89,18 @@ func Test_defaultBufferedTransportInstance_ConnectWithContext(t *testing.T) {
return ctx
}(),
},
+ mockSetup: func(t *testing.T, fields *fields, args *args) {
+ requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
+ fields.DefaultBufferedTransportInstanceRequirements = requirements
+ },
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
+ if tt.mockSetup != nil {
+ tt.mockSetup(t, &tt.fields, &tt.args)
+ }
m := &defaultBufferedTransportInstance{
DefaultBufferedTransportInstanceRequirements: tt.fields.DefaultBufferedTransportInstanceRequirements,
}
@@ -116,53 +119,50 @@ func Test_defaultBufferedTransportInstance_FillBuffer(t *testing.T) {
until func(pos uint, currentByte byte, reader *bufio.Reader) bool
}
tests := []struct {
- name string
- fields fields
- args args
- wantErr bool
+ name string
+ fields fields
+ args args
+ mockSetup func(t *testing.T, fields *fields, args *args)
+ wantErr bool
}{
{
name: "fill it",
- fields: fields{
- DefaultBufferedTransportInstanceRequirements: func() DefaultBufferedTransportInstanceRequirements {
- requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
- requirements.EXPECT().GetReader().Return(nil)
- return requirements
- }(),
+ mockSetup: func(t *testing.T, fields *fields, args *args) {
+ requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
+ expect := requirements.EXPECT()
+ expect.GetReader().Return(nil)
+ fields.DefaultBufferedTransportInstanceRequirements = requirements
},
},
{
name: "fill it with reader",
- fields: fields{
- DefaultBufferedTransportInstanceRequirements: func() DefaultBufferedTransportInstanceRequirements {
- defaultBufferedTransportInstanceRequirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
- expect := defaultBufferedTransportInstanceRequirements.EXPECT()
- expect.GetReader().Return(bufio.NewReader(bytes.NewReader([]byte{0x0, 0x0})))
- return defaultBufferedTransportInstanceRequirements
- }(),
- },
args: args{func(pos uint, currentByte byte, reader *bufio.Reader) bool {
return pos < 1
}},
+ mockSetup: func(t *testing.T, fields *fields, args *args) {
+ requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
+ requirements.EXPECT().GetReader().Return(bufio.NewReader(bytes.NewReader([]byte{0x0, 0x0})))
+ fields.DefaultBufferedTransportInstanceRequirements = requirements
+ },
},
{
name: "fill it with reader errors",
- fields: fields{
- DefaultBufferedTransportInstanceRequirements: func() DefaultBufferedTransportInstanceRequirements {
- defaultBufferedTransportInstanceRequirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
- expect := defaultBufferedTransportInstanceRequirements.EXPECT()
- expect.GetReader().Return(bufio.NewReader(bytes.NewReader([]byte{0x0, 0x0})))
- return defaultBufferedTransportInstanceRequirements
- }(),
- },
args: args{func(pos uint, currentByte byte, reader *bufio.Reader) bool {
return pos < 2
}},
+ mockSetup: func(t *testing.T, fields *fields, args *args) {
+ requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
+ requirements.EXPECT().GetReader().Return(bufio.NewReader(bytes.NewReader([]byte{0x0, 0x0})))
+ fields.DefaultBufferedTransportInstanceRequirements = requirements
+ },
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
+ if tt.mockSetup != nil {
+ tt.mockSetup(t, &tt.fields, &tt.args)
+ }
m := &defaultBufferedTransportInstance{
DefaultBufferedTransportInstanceRequirements: tt.fields.DefaultBufferedTransportInstanceRequirements,
}
@@ -178,36 +178,35 @@ func Test_defaultBufferedTransportInstance_GetNumBytesAvailableInBuffer(t *testi
DefaultBufferedTransportInstanceRequirements DefaultBufferedTransportInstanceRequirements
}
tests := []struct {
- name string
- fields fields
- want uint32
- wantErr bool
+ name string
+ fields fields
+ want uint32
+ mockSetup func(t *testing.T, fields *fields)
+ wantErr bool
}{
{
name: "get it without reader",
- fields: fields{
- DefaultBufferedTransportInstanceRequirements: func() DefaultBufferedTransportInstanceRequirements {
- requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
- requirements.EXPECT().GetReader().Return(nil)
- return requirements
- }(),
+ mockSetup: func(t *testing.T, fields *fields) {
+ requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
+ requirements.EXPECT().GetReader().Return(nil)
+ fields.DefaultBufferedTransportInstanceRequirements = requirements
},
},
{
name: "get it with reader",
- fields: fields{
- DefaultBufferedTransportInstanceRequirements: func() DefaultBufferedTransportInstanceRequirements {
- defaultBufferedTransportInstanceRequirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
- expect := defaultBufferedTransportInstanceRequirements.EXPECT()
- expect.GetReader().Return(bufio.NewReader(bytes.NewReader([]byte{0x0, 0x0})))
- return defaultBufferedTransportInstanceRequirements
- }(),
+ mockSetup: func(t *testing.T, fields *fields) {
+ requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
+ requirements.EXPECT().GetReader().Return(bufio.NewReader(bytes.NewReader([]byte{0x0, 0x0})))
+ fields.DefaultBufferedTransportInstanceRequirements = requirements
},
want: 2,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
+ if tt.mockSetup != nil {
+ tt.mockSetup(t, &tt.fields)
+ }
m := &defaultBufferedTransportInstance{
DefaultBufferedTransportInstanceRequirements: tt.fields.DefaultBufferedTransportInstanceRequirements,
}
@@ -231,39 +230,38 @@ func Test_defaultBufferedTransportInstance_PeekReadableBytes(t *testing.T) {
numBytes uint32
}
tests := []struct {
- name string
- fields fields
- args args
- want []byte
- wantErr bool
+ name string
+ fields fields
+ args args
+ mockSetup func(t *testing.T, fields *fields, args *args)
+ want []byte
+ wantErr bool
}{
{
name: "peek it without reader",
- fields: fields{
- DefaultBufferedTransportInstanceRequirements: func() DefaultBufferedTransportInstanceRequirements {
- requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
- requirements.EXPECT().GetReader().Return(nil)
- return requirements
- }(),
+ mockSetup: func(t *testing.T, fields *fields, args *args) {
+ requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
+ requirements.EXPECT().GetReader().Return(nil)
+ fields.DefaultBufferedTransportInstanceRequirements = requirements
},
wantErr: true,
},
{
name: "peek it with reader",
- fields: fields{
- DefaultBufferedTransportInstanceRequirements: func() DefaultBufferedTransportInstanceRequirements {
- defaultBufferedTransportInstanceRequirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
- expect := defaultBufferedTransportInstanceRequirements.EXPECT()
- expect.GetReader().Return(bufio.NewReader(bytes.NewReader([]byte{0x0, 0x0})))
- return defaultBufferedTransportInstanceRequirements
- }(),
- },
args: args{numBytes: 2},
+ mockSetup: func(t *testing.T, fields *fields, args *args) {
+ requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
+ requirements.EXPECT().GetReader().Return(bufio.NewReader(bytes.NewReader([]byte{0x0, 0x0})))
+ fields.DefaultBufferedTransportInstanceRequirements = requirements
+ },
want: []byte{0x0, 0x0},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
+ if tt.mockSetup != nil {
+ tt.mockSetup(t, &tt.fields, &tt.args)
+ }
m := &defaultBufferedTransportInstance{
DefaultBufferedTransportInstanceRequirements: tt.fields.DefaultBufferedTransportInstanceRequirements,
}
@@ -287,52 +285,48 @@ func Test_defaultBufferedTransportInstance_Read(t *testing.T) {
numBytes uint32
}
tests := []struct {
- name string
- fields fields
- args args
- want []byte
- wantErr bool
+ name string
+ fields fields
+ args args
+ mockSetup func(t *testing.T, fields *fields, args *args)
+ want []byte
+ wantErr bool
}{
{
name: "read it without reader",
- fields: fields{
- DefaultBufferedTransportInstanceRequirements: func() DefaultBufferedTransportInstanceRequirements {
- requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
- requirements.EXPECT().GetReader().Return(nil)
- return requirements
- }(),
+ mockSetup: func(t *testing.T, fields *fields, args *args) {
+ requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
+ requirements.EXPECT().GetReader().Return(nil)
+ fields.DefaultBufferedTransportInstanceRequirements = requirements
},
wantErr: true,
},
{
name: "read it with reader",
- fields: fields{
- DefaultBufferedTransportInstanceRequirements: func() DefaultBufferedTransportInstanceRequirements {
- defaultBufferedTransportInstanceRequirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
- expect := defaultBufferedTransportInstanceRequirements.EXPECT()
- expect.GetReader().Return(bufio.NewReader(bytes.NewReader([]byte{0x0, 0x0})))
- return defaultBufferedTransportInstanceRequirements
- }(),
- },
args: args{numBytes: 2},
+ mockSetup: func(t *testing.T, fields *fields, args *args) {
+ requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
+ requirements.EXPECT().GetReader().Return(bufio.NewReader(bytes.NewReader([]byte{0x0, 0x0})))
+ fields.DefaultBufferedTransportInstanceRequirements = requirements
+ },
want: []byte{0x0, 0x0},
},
{
name: "read it with reader errors",
- fields: fields{
- DefaultBufferedTransportInstanceRequirements: func() DefaultBufferedTransportInstanceRequirements {
- defaultBufferedTransportInstanceRequirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
- expect := defaultBufferedTransportInstanceRequirements.EXPECT()
- expect.GetReader().Return(bufio.NewReader(bytes.NewReader([]byte{0x0})))
- return defaultBufferedTransportInstanceRequirements
- }(),
+ args: args{numBytes: 2},
+ mockSetup: func(t *testing.T, fields *fields, args *args) {
+ requirements := NewMockDefaultBufferedTransportInstanceRequirements(t)
+ requirements.EXPECT().GetReader().Return(bufio.NewReader(bytes.NewReader([]byte{0x0})))
+ fields.DefaultBufferedTransportInstanceRequirements = requirements
},
- args: args{numBytes: 2},
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
+ if tt.mockSetup != nil {
+ tt.mockSetup(t, &tt.fields, &tt.args)
+ }
m := &defaultBufferedTransportInstance{
DefaultBufferedTransportInstanceRequirements: tt.fields.DefaultBufferedTransportInstanceRequirements,
}
diff --git a/plc4go/spi/utils/WriteBufferByteBased_test.go b/plc4go/spi/utils/WriteBufferByteBased_test.go
index be1916ad7d..3dcd4a5d8c 100644
--- a/plc4go/spi/utils/WriteBufferByteBased_test.go
+++ b/plc4go/spi/utils/WriteBufferByteBased_test.go
@@ -855,10 +855,11 @@ func Test_byteWriteBuffer_WriteSerializable(t *testing.T) {
serializable Serializable
}
tests := []struct {
- name string
- fields fields
- args args
- wantErr assert.ErrorAssertionFunc
+ name string
+ fields fields
+ args args
+ mockSetup func(t *testing.T, fields *fields, args *args)
+ wantErr assert.ErrorAssertionFunc
}{
{
name: "write it",
@@ -872,18 +873,19 @@ func Test_byteWriteBuffer_WriteSerializable(t *testing.T) {
fields: fields{
writer: bitio.NewWriter(new(bytes.Buffer)),
},
- args: args{
- serializable: func() Serializable {
- serializable := NewMockSerializable(t)
- serializable.EXPECT().SerializeWithWriteBuffer(mock.Anything, mock.Anything).Return(nil)
- return serializable
- }(),
+ mockSetup: func(t *testing.T, fields *fields, args *args) {
+ serializable := NewMockSerializable(t)
+ serializable.EXPECT().SerializeWithWriteBuffer(mock.Anything, mock.Anything).Return(nil)
+ args.serializable = serializable
},
wantErr: assert.NoError,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
+ if tt.mockSetup != nil {
+ tt.mockSetup(t, &tt.fields, &tt.args)
+ }
wb := &byteWriteBuffer{
data: tt.fields.data,
writer: tt.fields.writer,