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/17 12:05:15 UTC
[plc4x] 04/04: fix(plc4go/spi): gracefully handle tag names not found on WriteResponse
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
commit 0a14655948ed44bb2a62b4ce58a18bad652fb5f7
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Wed May 17 14:05:03 2023 +0200
fix(plc4go/spi): gracefully handle tag names not found on WriteResponse
---
plc4go/spi/model/DefaultPlcWriteResponse.go | 7 +++-
plc4go/spi/model/DefaultPlcWriteResponse_test.go | 51 +++++++++++++++++++++---
2 files changed, 50 insertions(+), 8 deletions(-)
diff --git a/plc4go/spi/model/DefaultPlcWriteResponse.go b/plc4go/spi/model/DefaultPlcWriteResponse.go
index 2198cdd648..a16d04b8b0 100644
--- a/plc4go/spi/model/DefaultPlcWriteResponse.go
+++ b/plc4go/spi/model/DefaultPlcWriteResponse.go
@@ -60,6 +60,9 @@ func (d *DefaultPlcWriteResponse) GetRequest() apiModel.PlcWriteRequest {
}
func (d *DefaultPlcWriteResponse) GetResponseCode(name string) apiModel.PlcResponseCode {
- // TODO: guard
- return d.responseCodes[name]
+ code, ok := d.responseCodes[name]
+ if !ok {
+ return apiModel.PlcResponseCode_NOT_FOUND
+ }
+ return code
}
diff --git a/plc4go/spi/model/DefaultPlcWriteResponse_test.go b/plc4go/spi/model/DefaultPlcWriteResponse_test.go
index 30c49c3244..ae7524d79a 100644
--- a/plc4go/spi/model/DefaultPlcWriteResponse_test.go
+++ b/plc4go/spi/model/DefaultPlcWriteResponse_test.go
@@ -20,9 +20,11 @@
package model
import (
+ "testing"
+
apiModel "github.com/apache/plc4x/plc4go/pkg/api/model"
+
"github.com/stretchr/testify/assert"
- "testing"
)
func TestDefaultPlcWriteResponse_GetRequest(t *testing.T) {
@@ -35,7 +37,9 @@ func TestDefaultPlcWriteResponse_GetRequest(t *testing.T) {
fields fields
want apiModel.PlcWriteRequest
}{
- // TODO: Add test cases.
+ {
+ name: "get it",
+ },
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
@@ -62,7 +66,22 @@ func TestDefaultPlcWriteResponse_GetResponseCode(t *testing.T) {
args args
want apiModel.PlcResponseCode
}{
- // TODO: Add test cases.
+ {
+ name: "get it (not found)",
+ want: apiModel.PlcResponseCode_NOT_FOUND,
+ },
+ {
+ name: "get it",
+ fields: fields{
+ responseCodes: map[string]apiModel.PlcResponseCode{
+ "something": apiModel.PlcResponseCode_OK,
+ },
+ },
+ args: args{
+ name: "something",
+ },
+ want: apiModel.PlcResponseCode_OK,
+ },
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
@@ -85,7 +104,21 @@ func TestDefaultPlcWriteResponse_GetTagNames(t *testing.T) {
fields fields
want []string
}{
- // TODO: Add test cases.
+ {
+ name: "get em (none)",
+ },
+ {
+ name: "get em",
+ fields: fields{
+ request: NewDefaultPlcWriteRequest(nil, []string{"a", "b", "c"}, nil, nil, nil),
+ responseCodes: map[string]apiModel.PlcResponseCode{
+ "a": apiModel.PlcResponseCode_OK,
+ "b": apiModel.PlcResponseCode_OK,
+ "c": apiModel.PlcResponseCode_OK,
+ },
+ },
+ want: []string{"a", "b", "c"},
+ },
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
@@ -108,7 +141,10 @@ func TestDefaultPlcWriteResponse_IsAPlcMessage(t *testing.T) {
fields fields
want bool
}{
- // TODO: Add test cases.
+ {
+ name: "is it",
+ want: true,
+ },
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
@@ -131,7 +167,10 @@ func TestNewDefaultPlcWriteResponse(t *testing.T) {
args args
want apiModel.PlcWriteResponse
}{
- // TODO: Add test cases.
+ {
+ name: "create it",
+ want: &DefaultPlcWriteResponse{},
+ },
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {