/** * @covers ::addLink * @covers ::loadLink */ public function testAddLink() { $model = new Model(); $foreign = new Model(); $link = new LinkOne($model, Model::getRepo()->getRel('one'), $foreign); Model::getRepo()->addLink($link); $this->assertSame($link, Model::getRepo()->loadLink($model, 'one')); }
public static function initialize(AbstractRepo $repo) { SoftDeleteTrait::initialize($repo); $repo->addRels([new RelOne('one', $repo, Model::getRepo()), new RelMany('many', $repo, Model::getRepo())]); }
/** * @covers ::loadCount */ public function testLoadCount() { $find = $this->getMock(__NAMESPACE__ . '\\Find', ['loadRaw'], [Model::getRepo()]); $models = [new Model(['id' => 4]), new Model(['id' => 98]), new Model(['id' => 100])]; $find->expects($this->once())->method('loadRaw')->will($this->returnValue($models)); $result = $find->loadCount(); $this->assertEquals(3, $result); }
/** * @dataProvider dataRelModifiers * @covers ::addFromDeleteRels * @covers ::addFromInsertRels * @covers ::addFromUpdateRels */ public function testRelModifiers($method, $trigger) { $save = new Save(); $model1 = new Model(); $model2 = new Model(); $model3 = new Model(); $model4 = new Model(); $model5 = new Model(); $rel1 = $this->getMock(__NAMESPACE__ . '\\RelOne', [$method], ['test', Model::getRepo(), Model::getRepo()]); $rel2 = Model::getRepo()->getRel('one'); $link1 = new LinkOne($model1, $rel1, $model3); $link2 = new LinkOne($model2, $rel2, $model4); Model::getRepo()->addRels([$rel1])->addLink($link1)->addLink($link2); $save->add($model1); $rel1->expects($this->once())->method($method)->with($this->identicalTo($link1))->will($this->returnValue(new Models([$model5]))); $this->assertFalse($save->has($model5)); $save->{$trigger}(); $this->assertTrue($save->has($model5)); }