public function testUpdatingMongoIdArray()
{
$schema = new Schema(array('fields' => array('list' => array('type' => 'id', 'array' => true))));
$doc = new Document(array('exists' => true, 'data' => array('list' => array(new MongoId(), new MongoId(), new MongoId()))));
$this->assertEqual(array(), Exporter::get('update', $doc->export()));
$doc->list[] = new MongoId();
$doc->list[] = new MongoId();
$result = Exporter::get('update', $doc->export());
$this->assertCount(1, $result);
$this->assertCount(1, $result['update']);
$this->assertCount(5, $result['update']['list']);
for ($i = 0; $i < 5; $i++) {
$this->assertInstanceOf('MongoId', $result['update']['list'][$i]);
}
$doc = new Document(array('exists' => true, 'data' => array('list' => array(new MongoId(), new MongoId(), new MongoId()))));
$doc->list = array(new MongoId(), new MongoId(), new MongoId());
$result = Exporter::get('update', $doc->export());
$this->assertCount(1, $result);
$this->assertCount(1, $result['update']);
$this->assertCount(3, $result['update']['list']);
for ($i = 0; $i < 3; $i++) {
$this->assertInstanceOf('MongoId', $result['update']['list'][$i]);
}
}