public function testUnserialize()
 {
     $snak = new PropertyValueSnak(new PropertyId('P1'), new StringValue('a'));
     $snak->unserialize('a:2:{i:0;i:2;i:1;C:22:"DataValues\\StringValue":1:{b}}');
     $expected = new PropertyValueSnak(new PropertyId('P2'), new StringValue('b'));
     $this->assertTrue($snak->equals($expected));
 }
 public function testDerivedSnakDoesNoteEqualPropertyValueSnak()
 {
     $property = new PropertyId('P9001');
     $value = new StringValue('bc');
     $derivedValues = array('foo' => new StringValue('foo'), 'bar' => new StringValue('bar'));
     $propertySnak = new PropertyValueSnak($property, $value);
     $emptyDerivedSnak = new DerivedPropertyValueSnak($property, $value, array());
     $derivedSnak = new DerivedPropertyValueSnak($property, $value, $derivedValues);
     $this->assertFalse($propertySnak->equals($emptyDerivedSnak));
     $this->assertFalse($propertySnak->equals($derivedSnak));
 }