function testScalarToArray() { $c = new Model1(); $c->a = 1; $c->save(); $c->a = array(1, 2); $c->save(); $c->a[0] = array(1, 2); $c->a[1] = 3; $c->save(); $id = $c->getID(); $c->reset(); $c->where('_id', $id); $c->doQuery(); $this->assertEquals(array(array(1, 2), 3), $c->a); }
/** * @depends testReferences */ public function testDeferencing() { $d = new Model1(); $d->where('a', 'barfoo'); foreach ($d as $doc) { $this->assertTrue(isset($doc->next)); $this->assertTrue(MongoDBRef::isRef($doc->next)); $this->assertTrue(MongoDBRef::isRef($doc->nested[0])); $this->assertTrue(MongoDBRef::isRef($doc->nested[1])); $this->assertTrue(MongoDBRef::isRef($doc->query)); /* Check dynamic references properties */ $this->assertTrue(is_array($doc->query['dynamic'])); $this->assertTrue(count($doc->query['dynamic']) > 0); /* Deference */ $doc->doDeferencing(); /* Test deferenced values */ $this->assertTrue($doc->next instanceof Model1); $this->assertTrue($doc->nested[0] instanceof Model1); $this->assertTrue($doc->nested[1] instanceof Model1); $this->assertTrue(is_array($doc->query)); $this->assertTrue($doc->query[0] instanceof Model1); /* Testing mongodb refs */ $this->assertTrue(is_array($doc->mdbref)); foreach ($doc->mdbref as $property => $value) { if ($property == '_id') { $this->assertEquals($value, $doc->next->getID()); continue; } else { $this->assertEquals($value, $doc->next->{$property}); continue; } $this->assertTrue(FALSE); } /* Testing Iteration in defered documents */ /* They should fail because they are cloned */ /* instances of a real document */ try { $doc->next->next(); $this->assertTrue(FALSE); } catch (ActiveMongo_Exception $e) { $this->assertTrue(TRUE); } } }
function testOnQueryModifyError() { try { $c = new Model1(); $c->where('a', 1); $c->doQuery(); $c->where('b', 4); $this->assertTrue(FALSE); } catch (ActiveMongo_Exception $e) { $this->assertTrue(TRUE); } }