public function testWithersReturnNewModifiedInstance()
{
$name = 'username';
$definition = new Property($name, 'foo');
$newDefinition = $definition->withValue(new \stdClass());
$this->assertEquals(new Property($name, 'foo'), $definition);
$this->assertEquals(new Property($name, new \stdClass()), $newDefinition);
}