### Question:
TinkerGraphUtil { static public <T> Collection<T> getProperties(Element container, String property, Class<T> type) { List<T> list = new ArrayList<>(); if (container.getPropertyKeys().contains(property)) { return getPropertiesAsSet(container.getProperty(property), type); } return list; } @Inject  TinkerGraphUtil(CurieUtil curieUtil);  TinkerGraphUtil(Graph graph, CurieUtil curieUtil); CurieUtil getCurieUtil(); Graph getGraph(); void setGraph(Graph graph); Element addElement(PropertyContainer container); void addPath(Iterable<PropertyContainer> path); Element addElement(Element element); void addGraph(Graph addition); Graph combineGraphs(Graph graph2); Graph resultToGraph(Result result); static Optional<T> getProperty(Element container, String property, Class<T> type); static Collection<T> getProperties(Element container, String property, Class<T> type); void project(Collection<String> projection);  }### Answer:
@Test public void collectionsAreReturned() { TinkerGraph graph = new TinkerGraph(); Vertex v = graph.addVertex(1); assertThat(TinkerGraphUtil.getProperties(v, "foo", String.class), is(empty())); v.setProperty("foo", "bar"); assertThat(TinkerGraphUtil.getProperties(v, "foo", String.class), contains("bar")); v.setProperty("foo", newHashSet("bar", "baz")); assertThat(TinkerGraphUtil.getProperties(v, "foo", String.class), containsInAnyOrder("bar", "baz")); v.setProperty("foo", new String[] {"bar", "baz"}); assertThat(TinkerGraphUtil.getProperties(v, "foo", String.class), containsInAnyOrder("bar", "baz")); }