public function testReferences() { /* This query return nothing currently */ /* but will save a reference */ $query = new Model1(); $query->limit(2, 1); $query->sort('a DESC'); $c = new Model1(); $c->a = "foobar"; $c->save(); $ref = array('$ref' => 'model1', '$id' => $c->getID(), '$db' => DB, 'class' => 'Model1'); $this->assertEquals($c->getReference(), $ref); $d = new Model1(); $d->a = "barfoo"; /* Reference into a document */ $d->next = $c; /* References into sub documents */ $d->nested = array($c, $c); /* MongoDBRef */ $d->mdbref = MongoDBRef::create('model1', $c->getID()); /* Get Dynamic query; AKA save the query */ /* in this case it would be a get all */ $d->query = $query->getReference(TRUE); $d->save(); }
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); }
/** * Testing hook, modifing on update other documents */ function testChanges() { Model1::addEvent('after_update', array($this, 'model1_after_update')); $m1 = new Model1(); $m1->a = 1; $m1->b = 2; $m1->save(); $data = array(); for ($i = 0; $i < 1000; $i++) { $m2['M1'] = $m1->getID(); $m2['a'] = $m1->a; $data[] = $m2; } Model2::batchInsert($data); $m1->a = 50; $m1->save(); $m2 = new Model2(); foreach ($m2->where("M1", $m1->getID()) as $item) { $this->assertEquals($m1->a, $item->a); } }
function testFindWithSingleID() { $d = new Model1(); $d->a = 5; $d->save(); $c = new Model1(); $c->find($d->getID()); $this->assertEquals(1, $c->count()); $this->assertEquals($c->a, $d->a); }