/** * @test */ public function resolveValueAppendsCounterIfCreatedPathSegmentIsEmpty() { $object = new \stdClass(); $this->mockPersistenceManager->expects($this->atLeastOnce())->method('getIdentifierByObject')->with($object)->will($this->returnValue('TheIdentifier')); $this->mockPersistenceManager->expects($this->atLeastOnce())->method('getObjectByIdentifier')->with('TheIdentifier')->will($this->returnValue($object)); $this->mockObjectPathMappingRepository->expects($this->once())->method('findOneByObjectTypeUriPatternAndIdentifier')->with('stdClass', 'SomeUriPattern', 'TheIdentifier')->will($this->returnValue(null)); $this->identityRoutePart->expects($this->once())->method('createPathSegmentForObject')->with($object)->will($this->returnValue('')); $this->mockObjectPathMappingRepository->expects($this->once())->method('findOneByObjectTypeUriPatternAndPathSegment')->with('stdClass', 'SomeUriPattern', '-1', false)->will($this->returnValue(null)); $expectedObjectPathMapping = new ObjectPathMapping(); $expectedObjectPathMapping->setObjectType('stdClass'); $expectedObjectPathMapping->setUriPattern('SomeUriPattern'); $expectedObjectPathMapping->setPathSegment('-1'); $expectedObjectPathMapping->setIdentifier('TheIdentifier'); $this->mockObjectPathMappingRepository->expects($this->once())->method('add')->with($expectedObjectPathMapping); $this->mockObjectPathMappingRepository->expects($this->once())->method('persistEntities'); $this->identityRoutePart->setObjectType('stdClass'); $this->identityRoutePart->setUriPattern('SomeUriPattern'); $this->assertTrue($this->identityRoutePart->_call('resolveValue', $object)); $this->assertSame('-1', $this->identityRoutePart->getValue()); }