@@ -23,16 +23,34 @@ func TestSimpleValueMessage(t *testing.T) {
2323}
2424
2525func TestJSONValuesMessage (t * testing.T ) {
26+ timestamp := time .Unix (1 , 0 )
27+ values := []interface {}{
28+ - 0.5182926829268293 ,
29+ - 0.3582317073170732 ,
30+ 0.1753048780487805 ,
31+ 0.20599365234375 ,
32+ - 0.050048828125 ,
33+ 1.03582763671875 ,
34+ }
35+ msg := fmt .Sprintf (`{"ax": %v, "ay": %v, "az": %v, "gx": %v, "gy": %v, "gz": %v}` , values ... )
2636 frame := plugin .ToFrame ("test/data" , []mqtt.Message {
2737 {
28- Timestamp : time . Unix ( 1 , 0 ) ,
29- Value : `{"gx": -0.5182926829268293, "gy": -0.3582317073170732, "gz": 0.1753048780487805, "ax": 0.20599365234375, "ay": -0.050048828125, "az": 1.03582763671875}` ,
38+ Timestamp : timestamp ,
39+ Value : msg ,
3040 },
3141 })
42+ numFields := len (values ) + 1
3243 require .NotNil (t , frame )
33-
34- str , err := frame .StringTable (100 , 5 )
44+ str , err := frame .StringTable (numFields , 1 )
3545 require .NoError (t , err )
3646 fmt .Printf ("FRAME: %s" , str )
37- require .Equal (t , 7 , len (frame .Fields ))
47+ require .Equal (t , numFields , len (frame .Fields ))
48+ v , ok := frame .Fields [0 ].ConcreteAt (0 )
49+ require .Equal (t , true , ok )
50+ require .Equal (t , v , timestamp )
51+ for idx , val := range values {
52+ v , err := frame .Fields [idx + 1 ].FloatAt (0 )
53+ require .NoError (t , err )
54+ require .Equal (t , val , v )
55+ }
3856}
0 commit comments