public function testGenerateThrowsException() { $this->repository->shouldReceive('referenceNumberExists')->andReturn(true)->times(3); $entity = new FakeReferenceNumberEntity(); $this->setExpectedException(RuntimeException::class, 'Lookup limit reached'); $this->hashSegmentGenerator->generate($entity); }
public function generate(ReferenceNumberEntityInterface &$entity) { do { $this->throwExceptionWhenBeyondLookupLimit(); $referenceNumber = $this->generateHashSegments(); } while ($this->repository->referenceNumberExists($referenceNumber)); $entity->setReferenceNumber($referenceNumber); }