@@ -14,6 +14,15 @@ type DefaultsSuite struct{}
1414
1515var _ = Suite (& DefaultsSuite {})
1616
17+ type Parent struct {
18+ Children []Child
19+ }
20+
21+ type Child struct {
22+ Name string
23+ Age int `default:"10"`
24+ }
25+
1726type ExampleBasic struct {
1827 Bool bool `default:"true"`
1928 Integer int `default:"33"`
@@ -35,6 +44,7 @@ type ExampleBasic struct {
3544 Integer int `default:"33"`
3645 }
3746 Duration time.Duration `default:"1s"`
47+ Children []Child
3848}
3949
4050func (s * DefaultsSuite ) TestSetDefaultsBasic (c * C ) {
@@ -73,6 +83,7 @@ func (s *DefaultsSuite) assertTypes(c *C, foo *ExampleBasic) {
7383 c .Assert (foo .Float64 , Equals , 6.4 )
7484 c .Assert (foo .Struct .Bool , Equals , true )
7585 c .Assert (foo .Duration , Equals , time .Second )
86+ c .Assert (foo .Children , IsNil )
7687}
7788
7889func (s * DefaultsSuite ) TestSetDefaultsWithValues (c * C ) {
@@ -82,6 +93,7 @@ func (s *DefaultsSuite) TestSetDefaultsWithValues(c *C) {
8293 Float32 : 9.9 ,
8394 String : "bar" ,
8495 Bytes : []byte ("foo" ),
96+ Children : []Child {{Name : "alice" }, {Name : "bob" , Age : 2 }},
8597 }
8698
8799 SetDefaults (foo )
@@ -91,6 +103,8 @@ func (s *DefaultsSuite) TestSetDefaultsWithValues(c *C) {
91103 c .Assert (foo .Float32 , Equals , float32 (9.9 ))
92104 c .Assert (foo .String , Equals , "bar" )
93105 c .Assert (string (foo .Bytes ), Equals , "foo" )
106+ c .Assert (foo .Children [0 ].Age , Equals , 10 )
107+ c .Assert (foo .Children [1 ].Age , Equals , 2 )
94108}
95109
96110func (s * DefaultsSuite ) BenchmarkLogic (c * C ) {
0 commit comments