public function testIndexesOnExportingDocumentSet() { $schema = new Schema(array('fields' => array('_id' => array('type' => 'id'), 'accounts' => array('type' => 'object', 'array' => true), 'accounts._id' => array('type' => 'id'), 'accounts.name' => array('type' => 'string')))); $data = array(array('_id' => '4c8f86167675abfabd970300', 'accounts' => array(array('_id' => "4fb6e2dd3e91581fe6e75736", 'name' => 'Foo1'), array('_id' => "4fb6e2df3e91581fe6e75737", 'name' => 'Bar1'))), array('_id' => '4c8f86167675abfabd970301', 'accounts' => array(array('_id' => "4fb6e2dd3e91581fe6e75738", 'name' => 'Foo2'), array('_id' => "4fb6e2df3e91581fe6e75739", 'name' => 'Bar2')))); $model = $this->_model; $array = new DocumentSet(compact('model', 'schema', 'data')); $this->assertTrue($array['4c8f86167675abfabd970300']->accounts instanceof DocumentSet); $this->assertTrue($array['4c8f86167675abfabd970301']->accounts instanceof DocumentSet); $result = Exporter::get('create', $array->export()); $this->assertTrue(isset($result['create'][0])); $this->assertTrue(isset($result['create'][1])); $this->assertFalse(isset($result['create']['4c8f86167675abfabd970300'])); $this->assertFalse(isset($result['create']['4c8f86167675abfabd970301'])); $this->assertTrue(isset($result['create'][0]['accounts'][0])); $this->assertTrue(isset($result['create'][0]['accounts'][1])); $this->assertTrue(isset($result['create'][1]['accounts'][0])); $this->assertTrue(isset($result['create'][1]['accounts'][1])); $result = Exporter::get('update', $array->export()); $this->assertTrue(isset($result['update'][0])); $this->assertTrue(isset($result['update'][1])); $this->assertFalse(isset($result['update']['4c8f86167675abfabd970300'])); $this->assertFalse(isset($result['update']['4c8f86167675abfabd970301'])); $this->assertTrue(isset($result['update'][0]['accounts'][0])); $this->assertTrue(isset($result['update'][0]['accounts'][1])); $this->assertTrue(isset($result['update'][1]['accounts'][0])); $this->assertTrue(isset($result['update'][1]['accounts'][1])); }