* @copyright Meritoo * * @internal * @covers \Meritoo\Common\Collection\IntegerCollection */ class IntegerCollectionTest extends BaseTestCase { public function provideDifferentTypesOfElements(): ?Generator { yield [ 'An empty array', [], [], ]; yield [ 'Valid elements only', [ 1, 2, 3, ], [ 1, 2, 3, ], ]; yield [ 'Mixed elements', [ 1, 'test', '', [], 234, 'test', ], [ 0 => 1, 4 => 234, ], ]; } public function testConstructor(): void { static::assertConstructorVisibilityAndArguments( IntegerCollection::class, OopVisibilityType::IS_PUBLIC, 1 ); } /** * @param string $description * @param array $elements * @param array $expectedElements * * @dataProvider provideDifferentTypesOfElements */ public function testCreateWithDifferentTypesOfElements( string $description, array $elements, array $expectedElements ): void { $collection = new IntegerCollection($elements); static::assertSame($expectedElements, $collection->toArray(), $description); } }