public function testAttributes() { $this->assertFalse($this->classMetadata->hasAttributeMetadata('id')); $attributeMetadata = $this->prophesize('Dunglas\\ApiBundle\\Mapping\\AttributeMetadataInterface')->reveal(); $newClassMetadata = $this->classMetadata->withAttributeMetadata('id', $attributeMetadata); $this->assertNotEquals($this->classMetadata, $newClassMetadata); $this->assertTrue($newClassMetadata->hasAttributeMetadata('id')); $this->assertEquals($attributeMetadata, $newClassMetadata->getAttributeMetadata('id')); $this->assertContains($attributeMetadata, $newClassMetadata->getAttributesMetadata()); $newClassMetadata2 = $newClassMetadata->withIdentifierName('id'); $this->assertNotEquals($newClassMetadata, $newClassMetadata2); $this->assertEquals('id', $newClassMetadata2->getIdentifierName()); $this->assertEquals($attributeMetadata, $newClassMetadata2->getAttributeMetadata($newClassMetadata2->getIdentifierName())); }