/** * Create a pending version for a versionable entity * * @param object $versionable * @param string $author * @param array $changeset * @param string|null $context * * @return Version */ public function createPendingVersion($versionable, $author, array $changeset, $context = null) { $resourceName = ClassUtils::getClass($versionable); $version = new Version($resourceName, $versionable->getId(), $author, $context); $version->setChangeset($changeset); return $version; }
function it_builds_pending_versions_for_a_given_entity(ProductInterface $product, $builder, $versionRepository) { $product->getId()->willReturn(1); $pending1 = new Version('Product', 1, 'julia'); $pending1->setChangeset(['foo' => 'bar']); $pending2 = new Version('Product', 1, 'julia'); $pending2->setChangeset(['foo' => 'fubar']); $versionRepository->findBy(Argument::cetera())->willReturn([$pending1, $pending2]); $builder->buildPendingVersion($pending1, null)->willReturn($pending1)->shouldBeCalled(); $builder->buildPendingVersion($pending2, $pending1)->willReturn($pending2)->shouldBeCalled(); $versions = $this->buildPendingVersions($product); $versions->shouldHaveCount(2); }
function it_builds_pending_versions_when_versioning_an_entity(AbstractProduct $product, $builder, $repo) { $product->getId()->willReturn(1); $pending1 = new Version('Product', 1, 'julia'); $pending1->setChangeset(['foo' => 'bar']); $pending2 = new Version('Product', 1, 'julia'); $pending2->setChangeset(['foo' => 'fubar']); $repo->findBy(Argument::cetera())->willReturn([$pending1, $pending2]); $builder->buildPendingVersion($pending1, null)->willReturn($pending1); $builder->buildPendingVersion($pending2, $pending1)->willReturn($pending2); $builder->buildVersion(Argument::cetera())->willReturn(new Version('Product', 1, 'julia')); $versions = $this->buildVersion($product); $versions->shouldHaveCount(3); }
/** * {@inheritDoc} */ public function setChangeset(array $changeset) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'setChangeset', array($changeset)); return parent::setChangeset($changeset); }