public function testMergeWithCombiningValueMerger() { $collection = new Collection(['a' => 'x']); $mergedCollection = new Collection(['a' => 'y']); $merger = $this->getMockBuilder(ValueMerger::class)->disableOriginalConstructor()->getMock(); $merger->expects($this->once())->method('merge')->with('x', 'y')->willReturn('merged value'); $collection->addMerger('a', $merger); $collection->merge($mergedCollection); $this->assertEquals(['a' => 'merged value'], $collection->toArray()); }
/** * */ public function testMergerKeysNormalization() { $collection = new Collection(['X' => 'a', 'y' => 'b', 'Z' => 'C']); $collection->addKeyNormalizer(function (&$key) { $key = strtoupper($key); }); $merger = $this->getMockBuilder(ValueMerger::class)->disableOriginalConstructor()->getMock(); $collection->addMerger('lowercase', $merger); $this->assertArrayHasKey('LOWERCASE', $collection->getMergers()); }