### Question:
PropertyPath implements Comparable<PropertyPath> { public final PropertyPath keyOrIndex(Object object) { return node(NodeId.keyOrIndex(object)); } 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 key_or_index_of_unsupported_type() { ROOT.keyOrIndex(new Object()); }