metadata = new Metadata($array); } public function testGetReturnsSetValue(): void { $value = 'brad woz ere'; $this->metadata->set('key', $value); $result = $this->metadata->get('key'); $this->assertSame($value, $result); } public function testGetThrowsWhenKeyNotSet(): void { $this->expectException(MissingKeyException::class); $this->metadata->get('missing'); } public function testValueIsOverwritten(): void { $key = 'key'; $valueA = 'meta'; $valueB = 'data'; $this->metadata->set($key, $valueA); $result = $this->metadata->get($key); $this->assertSame($valueA, $result); $this->metadata->set($key, $valueB); $result = $this->metadata->get($key); $this->assertSame($valueB, $result); } public function testIsSetReturnsTrueWhenKeyIsSet(): void { $key = 'null'; $this->metadata->set($key, null); $result = $this->metadata->isSet($key); $this->assertTrue($result); } public function testIsSetReturnsFalseWhenKeyIsNotSet(): void { $result = $this->metadata->isSet('missing'); $this->assertFalse($result); } }