public function testAppend()
{
$document = $this->collection->createDocument(array('param' => 'value'));
$document->append('a.b.c', 'value1');
$this->assertEquals('value1', $document->get('a.b.c'));
$this->assertEquals(array('c' => 'value1'), $document->get('a.b'));
$this->assertEquals(array('b' => array('c' => 'value1')), $document->get('a'));
$document->append('a.b.c', 'value2');
$this->assertEquals(array('value1', 'value2'), $document->get('a.b.c'));
$this->assertEquals(array('c' => array('value1', 'value2')), $document->get('a.b'));
$this->assertEquals(array('b' => array('c' => array('value1', 'value2'))), $document->get('a'));
$document->save();
$document = $this->collection->getDocument($document->getId());
$document->append('a.b.c', 'value3');
$this->assertEquals(array('value1', 'value2', 'value3'), $document->get('a.b.c'));
$this->assertEquals(array('c' => array('value1', 'value2', 'value3')), $document->get('a.b'));
$this->assertEquals(array('b' => array('c' => array('value1', 'value2', 'value3'))), $document->get('a'));
}