### Question:
PropertyPath implements Comparable<PropertyPath> { public Property property(String name) { return newParser(name, false).parseProperty().accept(new PropertyPathBaseVisitor<Property>() { @Override public Property visitProperty(PropertyPathParser.PropertyContext ctx) { return new Property(PropertyPath.this, ctx.getText()); } @Override protected boolean shouldVisitNextChild(RuleNode node, Property currentResult) { return currentResult == null; } }); } PropertyPath(); static PropertyPath parse(String path); Property property(String name); final Index index(long index); final Key key(String index); final PropertyPath keyOrIndex(Object object); final PropertyPath node(NodeId nodeId); final AnyProperty anyProperty(); final AnyIndex anyIndex(); final AnyKey anyKey(); final Any any(); final SubPath propertyOrKey(String string); final PropertyPath path(PropertyPath path); List<SubPath> asList(); boolean isRoot(); boolean startsWith(PropertyPath other); PropertyPath toSchemaPath(); @Override int compareTo(PropertyPath other); abstract String toString(); abstract boolean equals(Object obj); abstract int hashCode(); abstract NodeId getNodeId(); static final Root ROOT; }### Answer:
@Test(expected=IllegalArgumentException.class) public void Empty_Property_Name() { ROOT.property(""); }