public void ObjectDescriptor_GetObjectData() { FormatterConverter formatConverter = new FormatterConverter(); SerializationInfo serializationInfo = new SerializationInfo(typeof(ObjectDescriptor), formatConverter); VirtualTestObject virtualTestObject = new VirtualTestObject() { BoundingRect = new Rect(10, 20, 30, 40) }; ObjectDescriptor descriptor = virtualTestObject.GetDescriptor(); StreamingContext context = new StreamingContext(); IdentifyPropertyGroup group = descriptor.GetItem <IdentifyPropertyGroup>(); Assert.AreEqual("10,20,30,40", group.Properties[UIAControlKeys.BoundingRectangle]); descriptor.GetObjectData(serializationInfo, context); string typeString = null; foreach (SerializationEntry entry in serializationInfo) { if (entry.Name == DescriptorKeys.NodeType) { typeString = (string)entry.Value; break; } else if (entry.Name == IdentifyPropertyGroup.Key) { group = (IdentifyPropertyGroup)entry.Value; break; } } Assert.AreEqual(NodeType.VirtualControl, typeString); Assert.AreEqual("10,20,30,40", group.Properties[UIAControlKeys.BoundingRectangle]); }