/** * {@inheritdoc} */ protected function setUp() { $author = 'admin'; $versionable = $this->getVersionableMock(); $resourceName = get_class($versionable); $resourceId = $versionable->getId(); $numVersion = 2; $this->version = new Version($resourceName, $resourceId, $author, 'foo'); $this->version->setVersion($numVersion)->setSnapshot(['field' => 'value'])->setChangeset(['field' => 'value']); }
/** * Build a pending version * * @param Version $pending * @param Version|null $previousVersion * * @return Version */ public function buildPendingVersion(Version $pending, Version $previousVersion = null) { $versionNumber = $previousVersion ? $previousVersion->getVersion() + 1 : 1; $oldSnapshot = $previousVersion ? $previousVersion->getSnapshot() : []; $modification = $pending->getChangeset(); $snapshot = $modification + $oldSnapshot; $changeset = $this->buildChangeset($oldSnapshot, $snapshot); $pending->setVersion($versionNumber)->setSnapshot($snapshot)->setChangeset($changeset); return $pending; }
/** * {@inheritDoc} */ public function setVersion($version) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'setVersion', array($version)); return parent::setVersion($version); }