public function testWorkingWithCache() { foreach (DBTestPool::me()->getPool() as $db) { DBPool::me()->setDefault($db); $item = TestItem::create()->setName('testItem1'); TestItem::dao()->add($item); $encapsulant = TestEncapsulant::create()->setName('testEncapsulant1'); TestEncapsulant::dao()->add($encapsulant); $subItem1 = TestSubItem::create()->setName('testSubItem1')->setEncapsulant($encapsulant)->setItem($item); $subItem2 = TestSubItem::create()->setName('testSubItem2')->setEncapsulant($encapsulant)->setItem($item); TestSubItem::dao()->add($subItem1); TestSubItem::dao()->add($subItem2); $items = Criteria::create(TestItem::dao())->getList(); foreach ($items as $item) { foreach ($item->getSubItems()->getList() as $subItem) { $this->assertEquals($subItem->getEncapsulant()->getName(), 'testEncapsulant1'); } } $encapsulant = TestEncapsulant::dao()->getById(1); $encapsulant->setName('testEncapsulant1_changed'); TestEncapsulant::dao()->save($encapsulant); // drop identityMap TestEncapsulant::dao()->dropIdentityMap(); TestSubItem::dao()->dropIdentityMap(); TestItem::dao()->dropIdentityMap(); $items = Criteria::create(TestItem::dao())->getList(); foreach ($items as $item) { foreach ($item->getSubItems()->getList() as $subItem) { $this->assertEquals($subItem->getEncapsulant()->getName(), 'testEncapsulant1_changed'); } } // drop identityMap TestEncapsulant::dao()->dropIdentityMap(); TestSubItem::dao()->dropIdentityMap(); TestItem::dao()->dropIdentityMap(); $subItem = TestSubItem::dao()->getById(1); $this->assertEquals($subItem->getEncapsulant()->getName(), 'testEncapsulant1_changed'); // drop identityMap TestEncapsulant::dao()->dropIdentityMap(); TestSubItem::dao()->dropIdentityMap(); TestItem::dao()->dropIdentityMap(); $subItems = Criteria::create(TestSubItem::dao())->getList(); foreach ($subItems as $subItem) { $this->assertEquals($subItem->getEncapsulant()->getName(), 'testEncapsulant1_changed'); } } }
function testNoTriggers() { $i = new TestItem($this->getManager(), 'pages'); $i->setPrimaryKey('id'); $i->set('name', 1); $i->save(false, true); $this->assertEquals(1, $i->get('id'), 'Триггер beforeSave не сработал'); $this->assertEmpty($i->get('after_save'), 'Триггер afterSave не сработал'); $i->delete(true); $this->assertEmpty($i->get('before_delete'), 'Триггер beforeDelete не сработал'); $this->assertEmpty($i->get('after_delete'), 'Триггер afterDelete не сработал'); }