mirror of https://bitbucket.org/ausocean/av.git
Test nested objects.
This commit is contained in:
parent
f8b8d06b2e
commit
8cd5627974
|
@ -207,15 +207,27 @@ func TestObject(t *testing.T) {
|
|||
t.Errorf("Decoded wrong boolean value")
|
||||
}
|
||||
|
||||
// Construct a more complicated object.
|
||||
// Construct a more complicated object that includes a nested object.
|
||||
var obj2 Object
|
||||
for i, _ := range testStrings {
|
||||
obj2.Properties = append(obj2.Properties, Property{Type: typeString, String: testStrings[i]})
|
||||
obj2.Properties = append(obj2.Properties, Property{Type: typeNumber, Number: float64(testNumbers[i])})
|
||||
}
|
||||
obj2.Properties = append(obj2.Properties, Property{Type: typeBoolean, Number: 0})
|
||||
obj2.Properties = append(obj2.Properties, Property{Type: TypeObject, Object: obj1})
|
||||
obj2.Properties = append(obj2.Properties, Property{Type: typeBoolean, Number: 1})
|
||||
|
||||
// Retrieve nested object
|
||||
obj, err := obj2.ObjectProperty("", 8)
|
||||
if err != err {
|
||||
t.Errorf("Failed to retrieve object")
|
||||
}
|
||||
if len(obj.Properties) < 1 {
|
||||
t.Errorf("Properties missing for nested object")
|
||||
}
|
||||
if obj.Properties[0].Type != typeBoolean {
|
||||
t.Errorf("Wrong property type for nested object")
|
||||
}
|
||||
|
||||
// Encode it.
|
||||
enc = buf[:]
|
||||
enc, err = Encode(&obj2, enc)
|
||||
|
@ -234,25 +246,33 @@ func TestObject(t *testing.T) {
|
|||
// Find some properties that exist.
|
||||
s, err := obj2.StringProperty("", 2)
|
||||
if err != nil {
|
||||
t.Errorf("Property(2) failed")
|
||||
t.Errorf("StringProperty failed")
|
||||
}
|
||||
if s != "foo" {
|
||||
t.Errorf("Property(2) returned wrong Property")
|
||||
t.Errorf("StringProperty returned wrong String")
|
||||
}
|
||||
n, err := obj2.NumberProperty("", 3)
|
||||
if err != nil {
|
||||
t.Errorf("Property(3) failed")
|
||||
t.Errorf("NumberProperty failed")
|
||||
}
|
||||
if n != 1 {
|
||||
t.Errorf("Property(3) returned wrong Property")
|
||||
t.Errorf("NumberProperty returned wrong Number")
|
||||
}
|
||||
obj, err = obj2.ObjectProperty("", 8)
|
||||
if err != nil {
|
||||
t.Errorf("ObjectProperty failed")
|
||||
return
|
||||
}
|
||||
if obj.Properties[0].Type != typeBoolean {
|
||||
t.Errorf("ObjectProperty returned object with wrong property")
|
||||
}
|
||||
prop, err := obj2.Property("", 9, typeBoolean)
|
||||
if err != nil {
|
||||
t.Errorf("Property(9) failed")
|
||||
t.Errorf("Property failed")
|
||||
return
|
||||
}
|
||||
if prop.Number != 1 {
|
||||
t.Errorf("Property(9) returned wrong Property")
|
||||
t.Errorf("Property returned wrong Property")
|
||||
}
|
||||
|
||||
// Try to find one that doesn't exist.
|
||||
|
|
Loading…
Reference in New Issue