@@ -963,6 +963,24 @@ func TestUnmarshalNestedStruct(t *testing.T) {
963963 "name" : "Planet Express" ,
964964 "boss" : boss ,
965965 "founded-at" : "2016-08-17T08:27:12Z" ,
966+ "teams" : []Team {
967+ Team {
968+ Name : "Dev" ,
969+ Members : []Employee {
970+ Employee {Firstname : "Sean" },
971+ Employee {Firstname : "Iz" },
972+ },
973+ Leader : & Employee {Firstname : "Iz" },
974+ },
975+ Team {
976+ Name : "DxE" ,
977+ Members : []Employee {
978+ Employee {Firstname : "Akshay" },
979+ Employee {Firstname : "Peri" },
980+ },
981+ Leader : & Employee {Firstname : "Peri" },
982+ },
983+ },
966984 },
967985 },
968986 }
@@ -989,6 +1007,50 @@ func TestUnmarshalNestedStruct(t *testing.T) {
9891007 if out .Boss .HiredAt .IsZero () {
9901008 t .Fatalf ("expected out.Boss.HiredAt to be zero, but got `%t`" , out .Boss .HiredAt .IsZero ())
9911009 }
1010+
1011+ if len (out .Teams ) != 2 {
1012+ t .Fatalf ("expected len(out.Teams) to be 2, but got `%d`" , len (out .Teams ))
1013+ }
1014+
1015+ if out .Teams [0 ].Name != "Dev" {
1016+ t .Fatalf ("expected out.Teams[0].Name to be `Dev`, but got `%s`" , out .Teams [0 ].Name )
1017+ }
1018+
1019+ if out .Teams [1 ].Name != "DxE" {
1020+ t .Fatalf ("expected out.Teams[1].Name to be `DxE`, but got `%s`" , out .Teams [1 ].Name )
1021+ }
1022+
1023+ if len (out .Teams [0 ].Members ) != 2 {
1024+ t .Fatalf ("expected len(out.Teams[0].Members) to be 2, but got `%d`" , len (out .Teams [0 ].Members ))
1025+ }
1026+
1027+ if len (out .Teams [1 ].Members ) != 2 {
1028+ t .Fatalf ("expected len(out.Teams[1].Members) to be 2, but got `%d`" , len (out .Teams [1 ].Members ))
1029+ }
1030+
1031+ if out .Teams [0 ].Members [0 ].Firstname != "Sean" {
1032+ t .Fatalf ("expected out.Teams[0].Members[0].Firstname to be `Sean`, but got `%s`" , out .Teams [0 ].Members [0 ].Firstname )
1033+ }
1034+
1035+ if out .Teams [0 ].Members [1 ].Firstname != "Iz" {
1036+ t .Fatalf ("expected out.Teams[0].Members[1].Firstname to be `Iz`, but got `%s`" , out .Teams [0 ].Members [1 ].Firstname )
1037+ }
1038+
1039+ if out .Teams [1 ].Members [0 ].Firstname != "Akshay" {
1040+ t .Fatalf ("expected out.Teams[1].Members[0].Firstname to be `Akshay`, but got `%s`" , out .Teams [1 ].Members [0 ].Firstname )
1041+ }
1042+
1043+ if out .Teams [1 ].Members [1 ].Firstname != "Peri" {
1044+ t .Fatalf ("expected out.Teams[1].Members[1].Firstname to be `Peri`, but got `%s`" , out .Teams [1 ].Members [1 ].Firstname )
1045+ }
1046+
1047+ if out .Teams [0 ].Leader .Firstname != "Iz" {
1048+ t .Fatalf ("expected out.Teams[0].Leader.Firstname to be `Iz`, but got `%s`" , out .Teams [0 ].Leader .Firstname )
1049+ }
1050+
1051+ if out .Teams [1 ].Leader .Firstname != "Peri" {
1052+ t .Fatalf ("expected out.Teams[1].Leader.Firstname to be `Peri`, but got `%s`" , out .Teams [1 ].Leader .Firstname )
1053+ }
9921054}
9931055
9941056func TestUnmarshalNestedStructSlice (t * testing.T ) {
0 commit comments