/** * @test */ public function it_creates_a_valueOutOfRange_exception_mentioning_the_type_and_magic_toString_result_of_an_object() { $exception = OutOfRangeException::valueOutOfRange(new EquatableObjectWithMagicToString('Some value')); $this->assertInstanceOf(OutOfRangeException::class, $exception); $this->assertSame('Collection does not contain the value F500\\Equatable\\Tests\\Objects\\EquatableObjectWithMagicToString(Some value)', $exception->getMessage()); }
/** * @inheritdoc */ public function searchAll(Equatable $value) { $foundKeys = []; foreach ($this->items as $index => $item) { if ($item->equals($value)) { $foundKeys[] = $index; } } if (!$foundKeys) { throw OutOfRangeException::valueOutOfRange($value); } return $foundKeys; }