fromArray([ 'Location' => [$location], ]); $this->assertEquals($location, $headerCollection->get('Location')); } public function testSetter(): void { $headerCollection = new HeaderCollection(); $this->assertSame('default', $headerCollection->get('X-Header', 'default')); $this->assertFalse($headerCollection->has('X-Header')); $headerCollection->set('X-Header', '1'); $this->assertTrue($headerCollection->has('X-Header')); $this->assertTrue($headerCollection->offsetExists('X-Header')); $this->assertSame('1', $headerCollection->get('X-Header')); $this->assertSame(['1'], $headerCollection->get('X-Header', null, false)); $this->assertTrue($headerCollection->has('x-header')); $this->assertSame('1', $headerCollection->get('x-header')); $this->assertSame(['1'], $headerCollection->get('x-header', null, false)); $this->assertSame('1', $headerCollection->get('x-hEadER')); $this->assertSame(['1'], $headerCollection->get('x-hEadER', null, false)); $this->assertSame(['x-header' => ['1']], $headerCollection->toArray()); $this->assertSame(['X-Header' => ['1']], $headerCollection->toOriginalArray()); $headerCollection->set('X-HEADER', '2'); $this->assertSame('2', $headerCollection->get('X-Header')); $this->assertSame('2', $headerCollection->get('x-header')); $this->assertSame('2', $headerCollection->get('x-hEadER')); $this->assertSame(['x-header' => ['2']], $headerCollection->toArray()); $this->assertSame(['X-HEADER' => ['2']], $headerCollection->toOriginalArray()); $headerCollection->offsetSet('X-HEADER', '3'); $this->assertSame('3', $headerCollection->get('X-Header')); } public function testSetterDefault(): void { $headerCollection = new HeaderCollection(); $headerCollection->setDefault('X-Header', '1'); $this->assertSame(['1'], $headerCollection->get('X-Header', null, false)); $headerCollection->setDefault('X-Header', '2'); $this->assertSame(['1'], $headerCollection->get('X-Header', null, false)); } public function testAdder(): void { $headerCollection = new HeaderCollection(); $headerCollection->add('X-Header', '1'); $this->assertSame('1', $headerCollection->get('X-Header')); $this->assertSame(['1'], $headerCollection->get('X-Header', null, false)); $this->assertSame('1', $headerCollection->get('x-header')); $this->assertSame(['1'], $headerCollection->get('x-header', null, false)); $this->assertSame('1', $headerCollection->get('x-hEadER')); $this->assertSame(['1'], $headerCollection->get('x-hEadER', null, false)); $this->assertSame(['x-header' => ['1']], $headerCollection->toArray()); $this->assertSame(['X-Header' => ['1']], $headerCollection->toOriginalArray()); $headerCollection->add('X-HEADER', '2'); $this->assertSame('1', $headerCollection->get('X-Header')); $this->assertSame('1', $headerCollection->get('x-header')); $this->assertSame('1', $headerCollection->get('x-hEadER')); $this->assertSame(['1', '2'], $headerCollection->get('x-header', null, false)); $this->assertSame(['x-header' => ['1', '2']], $headerCollection->toArray()); $this->assertSame(['X-Header' => ['1', '2']], $headerCollection->toOriginalArray()); } public function testRemover(): void { $headerCollection = new HeaderCollection(); $headerCollection->add('X-Header', '1'); $this->assertSame(1, $headerCollection->count()); $this->assertSame(1, $headerCollection->getCount()); $headerCollection->remove('X-Header'); $this->assertSame(0, $headerCollection->count()); $headerCollection->add('X-Header', '1'); $this->assertSame(1, $headerCollection->count()); $headerCollection->remove('x-header'); $this->assertSame(0, $headerCollection->count()); $headerCollection->add('X-Header', '1'); $headerCollection->offsetUnset('X-HEADER'); $this->assertSame(0, $headerCollection->count()); $headerCollection->add('X-Header-1', '1'); $headerCollection->add('X-Header-2', '1'); $this->assertSame(2, $headerCollection->count()); $headerCollection->removeAll(); $this->assertSame(0, $headerCollection->count()); } }