blob: 687d97b012e0bd19204f93fc72bbd228ceb98ff5 [file] [log] [blame]
package bpdoc
import (
"reflect"
"testing"
)
type parentProps struct {
A string
Child *childProps
Mutated *mutatedProps `blueprint:"mutated"`
}
type childProps struct {
B int
Child *grandchildProps
}
type grandchildProps struct {
C bool
}
type mutatedProps struct {
D int
}
func TestNestedPropertyStructs(t *testing.T) {
parent := parentProps{Child: &childProps{Child: &grandchildProps{}}, Mutated: &mutatedProps{}}
allStructs := nestedPropertyStructs(reflect.ValueOf(parent))
// mutated shouldn't be found because it's a mutated property.
expected := []string{"child", "child.child"}
if len(allStructs) != len(expected) {
t.Errorf("expected %d structs, got %d, all entries: %q",
len(expected), len(allStructs), allStructs)
}
for _, e := range expected {
if _, ok := allStructs[e]; !ok {
t.Errorf("missing entry %q, all entries: %q", e, allStructs)
}
}
}