/**
  * @test
  */
 public function it_compares_dictionaries_without_identifier_by_their_properties()
 {
     $address = AddressDictionary::fromNativeValue(array('street' => 'Main Street', 'streetNumber' => 10, 'zip' => '12345', 'city' => 'Test City'));
     $sameAddress = AddressDictionary::fromNativeValue(array('street' => 'Main Street', 'streetNumber' => 10, 'zip' => '12345', 'city' => 'Test City'));
     $otherAddress = AddressDictionary::fromNativeValue(array('street' => 'Main Street', 'streetNumber' => 10, 'zip' => '12345', 'city' => 'New York'));
     $this->assertTrue($address->sameAs($sameAddress));
     $this->assertFalse($address->sameAs($otherAddress));
 }
 /**
  * @return array[propertyName => Prototype]
  */
 public static function getPropertyPrototypes()
 {
     return array('id' => Integer::prototype(), 'name' => String::prototype(), 'address' => AddressDictionary::prototype());
 }