@@ -125,10 +125,11 @@ func TestDecode(t *testing.T) {
125125 payload : "ffffff0000" ,
126126 config : tagConfig ,
127127 expected : Port2Payload {
128- Time : nil ,
128+ Time : Uint32Ptr ( 0 ) ,
129129 Power : nil ,
130130 Sensor : nil ,
131131 },
132+ expectedErr : "validation failed for Time" ,
132133 },
133134 {
134135 payload : "ffffff000400000000" ,
@@ -141,16 +142,19 @@ func TestDecode(t *testing.T) {
141142 expectedErr : "validation failed for Time" ,
142143 },
143144 {
144- payload : "ffffff040100" ,
145- config : tagConfig ,
146- expected : nil ,
147- expectedErr : "unknown tag 4" ,
145+ payload : "ffffff040100" ,
146+ config : tagConfig ,
147+ expected : Port2Payload {
148+ Time : nil ,
149+ Power : nil ,
150+ Sensor : nil ,
151+ },
148152 },
149153 {
150154 payload : "ffffff010200" ,
151155 config : tagConfig ,
152156 expected : nil ,
153- expectedErr : "field out of bounds " ,
157+ expectedErr : "TLV tag " ,
154158 },
155159 {
156160 payload : "ffffff030100" ,
@@ -163,8 +167,15 @@ func TestDecode(t *testing.T) {
163167 for _ , test := range tests {
164168 t .Run (test .payload , func (t * testing.T ) {
165169 decodedData , err := Decode (StringPtr (test .payload ), & test .config )
166- if err != nil && ! strings .Contains (err .Error (), test .expectedErr ) {
167- t .Fatalf ("expected %s received %s" , test .expectedErr , err )
170+ if test .expectedErr != "" {
171+ if err == nil {
172+ t .Fatalf ("expected error containing %q but got nil" , test .expectedErr )
173+ }
174+ if ! strings .Contains (err .Error (), test .expectedErr ) {
175+ t .Fatalf ("expected error containing %q received %s" , test .expectedErr , err )
176+ }
177+ } else if err != nil {
178+ t .Fatalf ("unexpected error: %s" , err )
168179 }
169180 if ! reflect .DeepEqual (decodedData , test .expected ) {
170181 t .Fatalf ("expected: %+v received: %+v" , test .expected , decodedData )
@@ -239,8 +250,15 @@ func TestExtractFieldValue(t *testing.T) {
239250 for _ , test := range tests {
240251 t .Run (fmt .Sprintf ("%v_%v_%v" , test .payload , test .start , test .length ), func (t * testing.T ) {
241252 result , err := extractFieldValue (test .payload , test .start , test .length , test .optional , test .hexadecimal )
242- if err != nil && err .Error () != test .expectedErr {
243- t .Fatalf ("expected: %s received: %s" , test .expectedErr , err .Error ())
253+ if test .expectedErr != "" {
254+ if err == nil {
255+ t .Fatalf ("expected error %q but got nil" , test .expectedErr )
256+ }
257+ if err .Error () != test .expectedErr {
258+ t .Fatalf ("expected: %s received: %s" , test .expectedErr , err .Error ())
259+ }
260+ } else if err != nil {
261+ t .Fatalf ("unexpected error: %s" , err )
244262 }
245263 if ! reflect .DeepEqual (result , test .expected ) {
246264 t .Fatalf ("expected: %v received: %v" , test .expected , result )
@@ -373,8 +391,15 @@ func TestConvertFieldValue(t *testing.T) {
373391 for _ , test := range tests {
374392 t .Run (fmt .Sprintf ("%v_%v" , test .value , test .fieldType ), func (t * testing.T ) {
375393 result , err := convertFieldValue (test .value , test .fieldType , nil )
376- if err != nil && err .Error () != test .expectedErr {
377- t .Fatalf ("expected: %s received: %s" , test .expectedErr , err .Error ())
394+ if test .expectedErr != "" {
395+ if err == nil {
396+ t .Fatalf ("expected error %q but got nil" , test .expectedErr )
397+ }
398+ if err .Error () != test .expectedErr {
399+ t .Fatalf ("expected: %s received: %s" , test .expectedErr , err .Error ())
400+ }
401+ } else if err != nil {
402+ t .Fatalf ("unexpected error: %s" , err )
378403 }
379404 if ! reflect .DeepEqual (result , test .expected ) {
380405 t .Fatalf ("expected: %v received: %v" , test .expected , result )
@@ -450,8 +475,15 @@ func TestInsertFieldBytes(t *testing.T) {
450475
451476 for _ , test := range tests {
452477 set , bytes , err := insertFieldBytes (test .value , test .length , test .transform )
453- if err != nil && err .Error () != test .expectedErr {
454- t .Fatalf ("expected: %s received: %s" , test .expectedErr , err .Error ())
478+ if test .expectedErr != "" {
479+ if err == nil {
480+ t .Fatalf ("expected error %q but got nil" , test .expectedErr )
481+ }
482+ if err .Error () != test .expectedErr {
483+ t .Fatalf ("expected: %s received: %s" , test .expectedErr , err .Error ())
484+ }
485+ } else if err != nil {
486+ t .Fatalf ("unexpected error: %s" , err )
455487 }
456488 if ! set && err == nil {
457489 t .Fatalf ("expected set to be true when error is nil" )
0 commit comments