registerVersion(type: 'application/test'); $storedObjectManager = $this->prophesize(StoredObjectManagerInterface::class); $storedObjectManager->read($version)->willReturn('1234')->shouldBeCalledOnce(); $storedObjectManager->write($storedObject, '1234', 'application/test')->shouldBeCalledOnce() ->will(function ($args) { /** @var StoredObject $object */ $object = $args[0]; return $object->registerVersion(); }) ; $restore = new StoredObjectRestore($storedObjectManager->reveal(), new NullLogger()); $newVersion = $restore->restore($version); self::assertNotSame($version, $newVersion); self::assertSame($version, $newVersion->getCreatedFrom()); } }