public function update(LinkMany $link) { foreach ($link->getAdded() as $added) { $added->{$this->key} = $link->getModel()->getId(); } foreach ($link->getRemoved() as $added) { $added->{$this->key} = null; } }
/** * @covers ::add */ public function testAdd() { $save = new Save(); $models = [new Model(), new Model(), new Model(), new Model(), new Model(), new Model()]; $link1 = new LinkOne($models[0], Model::getRepo()->getRel('one'), $models[1]); $link1->set($models[5]); $link2 = new LinkMany($models[1], Model::getRepo()->getRel('many'), [$models[2], $models[3]]); $link2->remove($models[3]); $link2->add($models[4]); Model::getRepo()->addLink($link1)->addLink($link2); $save->add($models[0]); $this->assertCount(count($models), $save); foreach ($models as $model) { $this->assertTrue($save->has($model)); } }
/** * @covers ::getFirst */ public function testGetFirst() { $link = $this->getLinkMany(); $item = $link->get()->getFirst(); $this->assertSame($item, $link->getFirst()); $link = new LinkMany(new Model(), $this->getRelMany(), []); $first = $link->getFirst(); $this->assertInstanceof(__NAMESPACE__ . '\\Model', $first); $this->assertTrue($first->isVoid()); }