/** * @dataProvider elementInstancesProvider * * @since 0.6 * * @param DiffOp[] $elements */ public function testOffsetSet(array $elements) { if ($elements === array()) { $this->assertTrue(true); return; } $list = new Diff(); $element = reset($elements); $list->offsetSet(42, $element); $this->assertEquals($element, $list->offsetGet(42)); $list = new Diff(); $element = reset($elements); $list['oHai'] = $element; $this->assertEquals($element, $list['oHai']); $list = new Diff(); $element = reset($elements); $list->offsetSet(9001, $element); $this->assertEquals($element, $list[9001]); $list = new Diff(); $element = reset($elements); $list->offsetSet(null, $element); $this->assertEquals($element, $list[0]); $list = new Diff(); $offset = 0; foreach ($elements as $element) { $list->offsetSet(null, $element); $this->assertEquals($element, $list[$offset++]); } $this->assertEquals(count($elements), $list->count()); $this->checkTypeChecks(function (Diff $list, $element) { $list->offsetSet(mt_rand(), $element); }); }