public function testFieldRemoval()
{
$doc = new Document(array('exists' => true, 'data' => array('numbers' => new DocumentSet(array('data' => array(7, 8, 9))), 'deeply' => new Document(array('pathKey' => 'deeply', 'exists' => true, 'data' => array('nested' => 'object'))), 'foo' => 'bar')));
unset($doc->numbers);
$result = Exporter::get('update', $doc->export());
$this->assertEqual(array('numbers' => true), $result['remove']);
$doc->set(array('flagged' => true, 'foo' => 'baz', 'bar' => 'dib'));
unset($doc->foo, $doc->flagged, $doc->numbers, $doc->deeply->nested);
$result = Exporter::get('update', $doc->export());
$expected = array('foo' => true, 'deeply.nested' => true, 'numbers' => true);
$this->assertEqual($expected, $result['remove']);
$this->assertEqual(array('bar' => 'dib'), $result['update']);
}