lithium\tests\cases\data\source\mongo_db\ExporterTest::testUpdatingMongoIdArray PHP Method

testUpdatingMongoIdArray() public method

Tests that updating arrays of MongoIds correctly preserves their type.
    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]);
        }
    }