### Question:
MapProperty extends BaseProperty<Map<K, V>> implements RelationshipProperty<Map<K, V>> { @Override public MapProperty<K, V> alias(String alias) { ASTPath exp = PropertyUtils.createPathExp(this.getName(), alias, getExpression().getPathAliases()); return PropertyFactory.createMap(exp.getPath(), exp, this.getKeyType(), this.getEntityType()); } protected  MapProperty(String name, Expression expression, Class<K> keyType, Class<V> entityType); EntityProperty<V> flat(); Expression contains(V value); Expression notContains(V value); @SafeVarargs final Expression contains(V firstValue, V... moreValues); Expression contains(Collection<V> values); Expression notContains(Collection<V> values); @SafeVarargs final Expression notContains(V firstValue, V... moreValues); Expression containsId(Object id); Expression containsId(Object firstId, Object... moreId); Expression containsId(Collection<Object> ids); Expression notContainsId(Object id); Expression notContainsId(Object firstId, Object... moreId); Expression notContainsId(Collection<Object> ids); @Override MapProperty<K, V> alias(String alias); @Override MapProperty<K, V> outer(); MapProperty<K, V> enclosing();  }### Answer:
@Test public void alias() { assertEquals("path", property.getName()); property = property.alias("alias"); assertEquals("alias", property.getName()); assertEquals(1, property.getExpression().getPathAliases().size()); assertEquals("path.artist", property1.getName()); property1 = property1.alias("a"); assertEquals("path.a", property1.getName()); assertEquals(1, property1.getExpression().getPathAliases().size()); assertEquals("artist", property1.getExpression().getPathAliases().get("a")); }