### Question:
PropertysetItem implements Item, Item.PropertySetChangeNotifier,
        Cloneable { @Override public String toString() { String retValue = ""; for (final Iterator<?> i = getItemPropertyIds().iterator(); i .hasNext();) { final Object propertyId = i.next(); retValue += getItemProperty(propertyId).getValue(); if (i.hasNext()) { retValue += " "; } } return retValue; }  @Override Property getItemProperty(Object id); @Override Collection<?> getItemPropertyIds(); @Override boolean removeItemProperty(Object id); @Override boolean addItemProperty(Object id, Property property); @Override String toString(); @Override void addPropertySetChangeListener(
            Item.PropertySetChangeListener listener); @Override void removePropertySetChangeListener(
            Item.PropertySetChangeListener listener); Collection<?> getListeners(Class<?> eventType); @Override Object clone(); @Override boolean equals(Object obj); @Override int hashCode();  }### Answer:
@Test public void testToString() { PropertysetItem item = createPropertySetItem(); Assert.assertEquals("", item.toString()); item.addItemProperty(ID1, prop1); Assert.assertEquals(String.valueOf(prop1.getValue()), item.toString()); item.addItemProperty(ID2, prop2); Assert.assertEquals( String.valueOf(prop1.getValue()) + " " + String.valueOf(prop2.getValue()), item.toString()); }