* @copyright Meritoo * * @internal * @covers \Meritoo\Common\Collection\IntegerCollection */ class IntegerCollectionTest extends BaseTestCase { 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); } 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, ], ]; } }