public function testPropertyInfoWriteThrough() { $p23 = new PropertyId('P23'); $p42 = new PropertyId('P42'); $info23 = array(PropertyInfoStore::KEY_DATA_TYPE => 'string'); $info42 = array(PropertyInfoStore::KEY_DATA_TYPE => 'string', 'foo' => 'bar'); $mock = new MockPropertyInfoStore(); $cache = new HashBagOStuff(); $mock->setPropertyInfo($p23, $info23); $store = new CachingPropertyInfoStore($mock, $cache); $this->assertEquals($info23, $store->getPropertyInfo($p23), "get from source"); $this->assertEquals($info23, $store->getPropertyInfo($p23), "get cached"); $store->setPropertyInfo($p42, $info42); $this->assertEquals($info42, $store->getPropertyInfo($p42), "cache updated"); $this->assertEquals($info42, $mock->getPropertyInfo($p42), "source updated"); }