### Question:
ClientList implements ClientExpression<ClientList> { @Override public String toString() { if (this.items == null || this.items.isEmpty()) { return "()"; } StringBuilder sb = new StringBuilder("("); boolean isFirst = true; for (ClientExpression expression : this.items) { if(isFirst){ isFirst = false; } else { sb.append(", "); } sb.append(expression.toString()); } sb.append(")"); return sb.toString(); } ClientList();  ClientList(List<ClientExpression> expressions);  ClientList(ClientList source); ClientList addItem(ClientExpression expr); ClientList deleteItem(ClientExpression expr); @Override void accept(ClientELVisitor visitor); @XmlElementWrapper(name = "items") @XmlElements(value = { @XmlElement(name = ClientNull.EXPRESSION_ID, type = ClientNull.class), @XmlElement(name = ClientBoolean.EXPRESSION_ID, type = ClientBoolean.class), @XmlElement(name = ClientNumber.EXPRESSION_ID, type = ClientNumber.class), @XmlElement(name = ClientRelativeDateRange.EXPRESSION_ID, type = ClientRelativeDateRange.class), @XmlElement(name = ClientRelativeTimestampRange.EXPRESSION_ID, type = ClientRelativeTimestampRange.class), @XmlElement(name = ClientString.EXPRESSION_ID, type = ClientString.class), @XmlElement(name = ClientDate.EXPRESSION_ID, type = ClientDate.class), @XmlElement(name = ClientTime.EXPRESSION_ID, type = ClientTime.class), @XmlElement(name = ClientTimestamp.EXPRESSION_ID, type = ClientTimestamp.class), @XmlElement(name = ClientVariable.EXPRESSION_ID, type = ClientVariable.class), @XmlElement(name = ClientNot.EXPRESSION_ID, type = ClientNot.class), @XmlElement(name = ClientAnd.EXPRESSION_ID, type = ClientAnd.class), @XmlElement(name = ClientOr.EXPRESSION_ID, type = ClientOr.class), @XmlElement(name = ClientGreater.EXPRESSION_ID, type = ClientGreater.class), @XmlElement(name = ClientGreaterOrEqual.EXPRESSION_ID, type = ClientGreaterOrEqual.class), @XmlElement(name = ClientLess.EXPRESSION_ID, type = ClientLess.class), @XmlElement(name = ClientLessOrEqual.EXPRESSION_ID, type = ClientLessOrEqual.class), @XmlElement(name = ClientNotEqual.EXPRESSION_ID, type = ClientNotEqual.class), @XmlElement(name = ClientEquals.EXPRESSION_ID, type = ClientEquals.class), @XmlElement(name = ClientFunction.EXPRESSION_ID, type = ClientFunction.class), @XmlElement(name = ClientIn.EXPRESSION_ID, type = ClientIn.class), @XmlElement(name = ClientRange.EXPRESSION_ID, type = ClientRange.class), @XmlElement(name = ClientAdd.EXPRESSION_ID, type = ClientAdd.class), @XmlElement(name = ClientSubtract.EXPRESSION_ID, type = ClientSubtract.class), @XmlElement(name = ClientMultiply.EXPRESSION_ID, type = ClientMultiply.class), @XmlElement(name = ClientDivide.EXPRESSION_ID, type = ClientDivide.class), @XmlElement(name = ClientPercentRatio.EXPRESSION_ID, type = ClientPercentRatio.class), @XmlElement(name = ClientList.EXPRESSION_ID, type = ClientList.class) }) List<ClientExpression> getItems(); ClientList setItems(List<ClientExpression> items); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); @Override ClientList deepClone(); static final String EXPRESSION_ID; public List<ClientExpression> items; }### Answer:
@Test public void toString_allItemsInParenDividedByComma() { ClientList instance = createFullyConfiguredInstance(); String result = instance.toString(); assertEquals("('string', 23)", result); }