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");
 }