@@ -181,15 +181,15 @@ func TestHandlers(t *testing.T) {
181181 t .Error (err )
182182 case delta := <- chDelta :
183183 if ! reflect .DeepEqual (expectedDoc .State .Delta , delta ) {
184- t .Errorf ("Expected delta: %v, got: % v" ,
184+ t .Errorf ("Expected delta:\n %+v \n got: \n %+ v" ,
185185 expectedDoc .State .Delta , delta ,
186186 )
187187 }
188188 default :
189189 t .Fatal ("Timeout" )
190190 }
191191 if ! reflect .DeepEqual (expectedDoc , s .doc ) {
192- t .Errorf ("Expected state: %v, got: %v" ,
192+ t .Errorf ("Expected state:\n %v \n got: \n %v" ,
193193 expectedDoc , s .doc ,
194194 )
195195 }
@@ -266,15 +266,15 @@ func TestHandlers(t *testing.T) {
266266 t .Error (err )
267267 case delta := <- chDelta :
268268 if ! reflect .DeepEqual (expectedDoc .State .Delta , delta ) {
269- t .Errorf ("Expected delta: %v, got: % v" ,
269+ t .Errorf ("Expected delta:\n %+v \n got: \n %+ v" ,
270270 expectedDoc .State .Delta , delta ,
271271 )
272272 }
273273 default :
274274 t .Fatal ("Timeout" )
275275 }
276276 if ! reflect .DeepEqual (expectedDoc , s .doc ) {
277- t .Errorf ("Expected state: %v, got: % v" ,
277+ t .Errorf ("Expected state:\n %+v \n got \n %+ v" ,
278278 expectedDoc , s .doc ,
279279 )
280280 }
@@ -327,7 +327,7 @@ func TestHandlers(t *testing.T) {
327327 default :
328328 }
329329 if ! reflect .DeepEqual (expectedDoc , s .doc ) {
330- t .Errorf ("Expected state: %v, got: % v" ,
330+ t .Errorf ("Expected state:\n %+v \n got: \n %+ v" ,
331331 expectedDoc , s .doc ,
332332 )
333333 }
@@ -366,7 +366,7 @@ func TestHandlers(t *testing.T) {
366366 )})
367367
368368 if ! reflect .DeepEqual (expectedDoc , s .doc ) {
369- t .Errorf ("Expected state: %v, got: % v" ,
369+ t .Errorf ("Expected state:\n %+v \n got: \n %+ v" ,
370370 expectedDoc , s .doc ,
371371 )
372372 }
@@ -436,7 +436,7 @@ func TestOnDelta(t *testing.T) {
436436 done := make (chan struct {})
437437 s .OnDelta (func (delta map [string ]interface {}) {
438438 if ! reflect .DeepEqual (expected , delta ) {
439- t .Fatalf ("Expected delta: %v, got: % v" , expected , delta )
439+ t .Fatalf ("Expected delta:\n %+v \n got: \n %+ v" , expected , delta )
440440 }
441441 close (done )
442442 })
@@ -465,25 +465,46 @@ func TestOnDelta(t *testing.T) {
465465
466466func TestGet (t * testing.T ) {
467467 testCases := map [string ]struct {
468+ initial * ThingDocument
468469 response interface {}
469470 responseTopic string
470471 expected interface {}
471472 err error
472473 }{
473474 "Success" : {
475+ initial : & ThingDocument {
476+ Version : 5 ,
477+ State : ThingState {
478+ Delta : map [string ]interface {}{"key" : "value2" },
479+ },
480+ Metadata : ThingStateMetadata {
481+ Delta : map [string ]interface {}{"key" : Metadata {Timestamp : 1234 }},
482+ },
483+ },
474484 response : & ThingDocument {
475485 Version : 5 ,
476486 State : ThingState {
477- Desired : map [string ]interface {}{"key" : "value " },
487+ Desired : map [string ]interface {}{"key" : "value2 " },
478488 Reported : map [string ]interface {}{"key" : "value" },
489+ Delta : map [string ]interface {}{"key" : "value2" },
490+ },
491+ Metadata : ThingStateMetadata {
492+ Desired : map [string ]interface {}{"key" : Metadata {Timestamp : 1234 }},
493+ Reported : map [string ]interface {}{"key" : Metadata {Timestamp : 1235 }},
479494 },
480495 },
481496 responseTopic : "get/accepted" ,
482497 expected : & ThingDocument {
483498 Version : 5 ,
484499 State : ThingState {
485- Desired : map [string ]interface {}{"key" : "value " },
500+ Desired : map [string ]interface {}{"key" : "value2 " },
486501 Reported : map [string ]interface {}{"key" : "value" },
502+ Delta : map [string ]interface {}{"key" : "value2" },
503+ },
504+ Metadata : ThingStateMetadata {
505+ Desired : NestedMetadata {"key" : Metadata {Timestamp : 1234 }},
506+ Reported : NestedMetadata {"key" : Metadata {Timestamp : 1235 }},
507+ Delta : NestedMetadata {"key" : Metadata {Timestamp : 1234 }},
487508 },
488509 },
489510 },
@@ -537,17 +558,20 @@ func TestGet(t *testing.T) {
537558 if err != nil {
538559 t .Fatal (err )
539560 }
561+ if testCase .initial != nil {
562+ s .(* shadow ).doc = testCase .initial
563+ }
540564 cli .Handle (s )
541565
542566 doc , err := s .Get (ctx )
543567 if err != nil {
544568 setClientToken (err , "" )
545569 if ! reflect .DeepEqual (testCase .err , err ) {
546- t .Fatalf ("Expected error: %v, got: % v" , testCase .err , err )
570+ t .Fatalf ("Expected error:\n %+v \n got: \n %+ v" , testCase .err , err )
547571 }
548572 } else {
549573 if ! reflect .DeepEqual (testCase .expected , doc ) {
550- t .Errorf ("Expected document: %v, got: % v" , testCase .expected , doc )
574+ t .Errorf ("Expected document:\n %+v \n got: \n %+ v" , testCase .expected , doc )
551575 }
552576 }
553577 })
@@ -569,6 +593,9 @@ func TestDesire(t *testing.T) {
569593 State : ThingState {
570594 Desired : map [string ]interface {}{"key" : "value" },
571595 },
596+ Metadata : ThingStateMetadata {
597+ Desired : map [string ]interface {}{"key" : Metadata {Timestamp : 1234 }},
598+ },
572599 },
573600 responseTopic : "update/accepted" ,
574601 expected : & ThingDocument {
@@ -578,6 +605,11 @@ func TestDesire(t *testing.T) {
578605 Reported : map [string ]interface {}{},
579606 Delta : map [string ]interface {}{},
580607 },
608+ Metadata : ThingStateMetadata {
609+ Desired : NestedMetadata {"key" : Metadata {Timestamp : 1234 }},
610+ Reported : NestedMetadata {},
611+ Delta : NestedMetadata {},
612+ },
581613 },
582614 },
583615 "Error" : {
@@ -637,11 +669,11 @@ func TestDesire(t *testing.T) {
637669 if err != nil {
638670 setClientToken (err , "" )
639671 if ! reflect .DeepEqual (testCase .err , err ) {
640- t .Fatalf ("Expected error: %v, got: % v" , testCase .err , err )
672+ t .Fatalf ("Expected error:\n %+v \n got: \n %+ v" , testCase .err , err )
641673 }
642674 } else {
643675 if ! reflect .DeepEqual (testCase .expected , doc ) {
644- t .Errorf ("Expected document: %v, got: % v" , testCase .expected , doc )
676+ t .Errorf ("Expected document:\n %+v \n got: \n %+ v" , testCase .expected , doc )
645677 }
646678 }
647679 })
@@ -663,6 +695,9 @@ func TestReport(t *testing.T) {
663695 State : ThingState {
664696 Reported : map [string ]interface {}{"key" : "value" },
665697 },
698+ Metadata : ThingStateMetadata {
699+ Reported : map [string ]interface {}{"key" : Metadata {Timestamp : 1234 }},
700+ },
666701 },
667702 responseTopic : "update/accepted" ,
668703 expected : & ThingDocument {
@@ -672,6 +707,11 @@ func TestReport(t *testing.T) {
672707 Desired : map [string ]interface {}{},
673708 Delta : map [string ]interface {}{},
674709 },
710+ Metadata : ThingStateMetadata {
711+ Reported : NestedMetadata {"key" : Metadata {Timestamp : 1234 }},
712+ Desired : NestedMetadata {},
713+ Delta : NestedMetadata {},
714+ },
675715 },
676716 },
677717 "Error" : {
@@ -731,11 +771,11 @@ func TestReport(t *testing.T) {
731771 if err != nil {
732772 setClientToken (err , "" )
733773 if ! reflect .DeepEqual (testCase .err , err ) {
734- t .Fatalf ("Expected error: %v, got: % v" , testCase .err , err )
774+ t .Fatalf ("Expected error:\n %+v \n got: \n %+ v" , testCase .err , err )
735775 }
736776 } else {
737777 if ! reflect .DeepEqual (testCase .expected , doc ) {
738- t .Errorf ("Expected document: %v, got: % v" , testCase .expected , doc )
778+ t .Errorf ("Expected document:\n %+v \n got: \n %+ v" , testCase .expected , doc )
739779 }
740780 }
741781 })
@@ -808,7 +848,7 @@ func TestDelete(t *testing.T) {
808848 if err != nil {
809849 setClientToken (err , "" )
810850 if ! reflect .DeepEqual (testCase .err , err ) {
811- t .Fatalf ("Expected error: %v, got: %v" , testCase .err , err )
851+ t .Fatalf ("Expected error:\n %v \n got: \n %v" , testCase .err , err )
812852 }
813853 }
814854 })
0 commit comments