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 503b6d8457f9d83107ec28126099d1cc1eb1f1a9
Author: Sebastian Rühl <[email protected]>
AuthorDate: Wed Apr 5 10:40:05 2023 +0200

    test(plc4go/cbus): added more edge cases for TagHandler_test
---
 plc4go/internal/cbus/TagHandler_test.go | 217 ++++++++++++++++++++++++++++++++
 1 file changed, 217 insertions(+)

diff --git a/plc4go/internal/cbus/TagHandler_test.go 
b/plc4go/internal/cbus/TagHandler_test.go
index 36c2f0efb7..48b514bb12 100644
--- a/plc4go/internal/cbus/TagHandler_test.go
+++ b/plc4go/internal/cbus/TagHandler_test.go
@@ -339,6 +339,149 @@ func TestTagHandler_applicationIdFromArgument(t 
*testing.T) {
                        want:    
readWriteModel.ApplicationIdContainer_LIGHTING_39,
                        wantErr: assert.NoError,
                },
+               {
+                       name:    "TEMPERATURE_BROADCAST",
+                       args:    args{applicationIdArgument: 
"TEMPERATURE_BROADCAST"},
+                       want:    
readWriteModel.ApplicationIdContainer_TEMPERATURE_BROADCAST_19,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "ROOM_CONTROL_SYSTEM",
+                       args:    args{applicationIdArgument: 
"ROOM_CONTROL_SYSTEM"},
+                       want:    
readWriteModel.ApplicationIdContainer_ROOM_CONTROL_SYSTEM_26,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "LIGHTING",
+                       args:    args{applicationIdArgument: "LIGHTING"},
+                       want:    
readWriteModel.ApplicationIdContainer_LIGHTING_38,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "VENTILATION",
+                       args:    args{applicationIdArgument: "VENTILATION"},
+                       want:    
readWriteModel.ApplicationIdContainer_VENTILATION_70,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "IRRIGATION_CONTROL",
+                       args:    args{applicationIdArgument: 
"IRRIGATION_CONTROL"},
+                       want:    
readWriteModel.ApplicationIdContainer_IRRIGATION_CONTROL_71,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "POOLS_SPAS_PONDS_FOUNTAINS_CONTROL",
+                       args:    args{applicationIdArgument: 
"POOLS_SPAS_PONDS_FOUNTAINS_CONTROL"},
+                       want:    
readWriteModel.ApplicationIdContainer_POOLS_SPAS_PONDS_FOUNTAINS_CONTROL_72,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "HEATING",
+                       args:    args{applicationIdArgument: "HEATING"},
+                       want:    
readWriteModel.ApplicationIdContainer_HEATING_88,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "AIR_CONDITIONING",
+                       args:    args{applicationIdArgument: 
"AIR_CONDITIONING"},
+                       want:    
readWriteModel.ApplicationIdContainer_AIR_CONDITIONING_AC,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "TRIGGER_CONTROL",
+                       args:    args{applicationIdArgument: "TRIGGER_CONTROL"},
+                       want:    
readWriteModel.ApplicationIdContainer_TRIGGER_CONTROL_CA,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "ENABLE_CONTROL",
+                       args:    args{applicationIdArgument: "ENABLE_CONTROL"},
+                       want:    
readWriteModel.ApplicationIdContainer_ENABLE_CONTROL_CB,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "AUDIO_AND_VIDEO",
+                       args:    args{applicationIdArgument: "AUDIO_AND_VIDEO"},
+                       want:    
readWriteModel.ApplicationIdContainer_AUDIO_AND_VIDEO_CD,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "SECURITY",
+                       args:    args{applicationIdArgument: "SECURITY"},
+                       want:    
readWriteModel.ApplicationIdContainer_SECURITY_D0,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "METERING",
+                       args:    args{applicationIdArgument: "METERING"},
+                       want:    
readWriteModel.ApplicationIdContainer_METERING_D1,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "ACCESS_CONTROL",
+                       args:    args{applicationIdArgument: "ACCESS_CONTROL"},
+                       want:    
readWriteModel.ApplicationIdContainer_ACCESS_CONTROL_D5,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "CLOCK_AND_TIMEKEEPING",
+                       args:    args{applicationIdArgument: 
"CLOCK_AND_TIMEKEEPING"},
+                       want:    
readWriteModel.ApplicationIdContainer_CLOCK_AND_TIMEKEEPING_DF,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "TELEPHONY_STATUS_AND_CONTROL",
+                       args:    args{applicationIdArgument: 
"TELEPHONY_STATUS_AND_CONTROL"},
+                       want:    
readWriteModel.ApplicationIdContainer_TELEPHONY_STATUS_AND_CONTROL_E0,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "MEASUREMENT",
+                       args:    args{applicationIdArgument: "MEASUREMENT"},
+                       want:    
readWriteModel.ApplicationIdContainer_MEASUREMENT_E4,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "TESTING",
+                       args:    args{applicationIdArgument: "TESTING"},
+                       want:    
readWriteModel.ApplicationIdContainer_TESTING_FA,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "MEDIA_TRANSPORT_CONTROL",
+                       args:    args{applicationIdArgument: 
"MEDIA_TRANSPORT_CONTROL"},
+                       want:    
readWriteModel.ApplicationIdContainer_MEDIA_TRANSPORT_CONTROL_C0,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "ERROR_REPORTING",
+                       args:    args{applicationIdArgument: "ERROR_REPORTING"},
+                       want:    
readWriteModel.ApplicationIdContainer_ERROR_REPORTING_CE,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "HVAC_ACTUATOR",
+                       args:    args{applicationIdArgument: "HVAC_ACTUATOR"},
+                       want:    
readWriteModel.ApplicationIdContainer_HVAC_ACTUATOR_73,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "INFO_MESSAGES",
+                       args:    args{applicationIdArgument: "INFO_MESSAGES"},
+                       want:    
readWriteModel.ApplicationIdContainer_INFO_MESSAGES,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "NETWORK_CONTROL",
+                       args:    args{applicationIdArgument: "NETWORK_CONTROL"},
+                       want:    
readWriteModel.ApplicationIdContainer_NETWORK_CONTROL,
+                       wantErr: assert.NoError,
+               },
+               {
+                       name:    "RESERVED",
+                       args:    args{applicationIdArgument: "RESERVED"},
+                       wantErr: assert.Error,
+               },
        }
        for _, tt := range tests {
                t.Run(tt.name, func(t *testing.T) {
@@ -518,6 +661,44 @@ func TestTagHandler_handleCalPattern(t *testing.T) {
                        },
                        wantErr: assert.NoError,
                },
+               {
+                       name: "recall hex",
+                       args: args{match: map[string]string{
+                               "unitAddress":   "0",
+                               "calType":       "recall=",
+                               "recallParamNo": "0x30",
+                               "recallCount":   "2",
+                       }},
+                       want: &calRecallTag{
+                               calTag: calTag{
+                                       unitAddress: 
readWriteModel.NewUnitAddress(0),
+                               },
+                               tagType:     CAL_RECALL,
+                               parameter:   
readWriteModel.Parameter_INTERFACE_OPTIONS_1,
+                               count:       2,
+                               numElements: 1,
+                       },
+                       wantErr: assert.NoError,
+               },
+               {
+                       name: "recall name",
+                       args: args{match: map[string]string{
+                               "unitAddress":   "0",
+                               "calType":       "recall=",
+                               "recallParamNo": "INTERFACE_OPTIONS_1",
+                               "recallCount":   "2",
+                       }},
+                       want: &calRecallTag{
+                               calTag: calTag{
+                                       unitAddress: 
readWriteModel.NewUnitAddress(0),
+                               },
+                               tagType:     CAL_RECALL,
+                               parameter:   
readWriteModel.Parameter_INTERFACE_OPTIONS_1,
+                               count:       2,
+                               numElements: 1,
+                       },
+                       wantErr: assert.NoError,
+               },
                {
                        name: "identify unknown param",
                        args: args{match: map[string]string{
@@ -543,6 +724,23 @@ func TestTagHandler_handleCalPattern(t *testing.T) {
                        },
                        wantErr: assert.NoError,
                },
+               {
+                       name: "identify with hex",
+                       args: args{match: map[string]string{
+                               "unitAddress":       "0",
+                               "calType":           "identify=",
+                               "identifyAttribute": "0x01",
+                       }},
+                       want: &calIdentifyTag{
+                               calTag: calTag{
+                                       unitAddress: 
readWriteModel.NewUnitAddress(0),
+                               },
+                               tagType:     CAL_IDENTIFY,
+                               attribute:   readWriteModel.Attribute_Type,
+                               numElements: 1,
+                       },
+                       wantErr: assert.NoError,
+               },
                {
                        name: "identify with name",
                        args: args{match: map[string]string{
@@ -596,6 +794,25 @@ func TestTagHandler_handleCalPattern(t *testing.T) {
                        },
                        wantErr: assert.NoError,
                },
+               {
+                       name: "getStatus by hex",
+                       args: args{match: map[string]string{
+                               "unitAddress":      "0",
+                               "calType":          "getStatus=",
+                               "getStatusParamNo": "0x01",
+                               "getStatusCount":   "2",
+                       }},
+                       want: &calGetStatusTag{
+                               calTag: calTag{
+                                       unitAddress: 
readWriteModel.NewUnitAddress(0),
+                               },
+                               tagType:     CAL_GETSTATUS,
+                               parameter:   
readWriteModel.Parameter_UNKNOWN_02,
+                               count:       2,
+                               numElements: 1,
+                       },
+                       wantErr: assert.NoError,
+               },
                {
                        name: "getStatus by name",
                        args: args{match: map[string]string{

Reply via email to