### Question:
ClientRange implements ClientExpression<ClientRange> { @Override public String toString() { String startString; String endString; if (getStart() != null && getStart().getBoundary() != null) { startString = getStart().getBoundary().toString(); } else { startString = ClientExpressions.MISSING_REPRESENTATION; } if (getEnd() != null && getEnd().getBoundary() != null) { endString = getEnd().getBoundary().toString(); } else { endString = ClientExpressions.MISSING_REPRESENTATION; } return "(" + startString + ":" + endString + ")"; } ClientRange();  ClientRange(ClientRangeBoundary start, ClientRangeBoundary end);  ClientRange(ClientLiteral start, ClientLiteral end);  ClientRange(ClientExpression start, ClientExpression end);  ClientRange(ClientRange range); ClientRangeBoundary getEnd(); ClientRange setEnd(ClientRangeBoundary end); ClientRangeBoundary getStart(); ClientRange setStart(ClientRangeBoundary start); @Override void accept(ClientELVisitor visitor); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); @Override ClientRange deepClone(); static final String EXPRESSION_ID; }### Answer:
@Test public void toString_emptyClientRange_stringWithMissingStartAndEnd() { ClientRange instance = createInstanceWithDefaultParameters(); String toString = instance.toString(); assertEquals("($missing$:$missing$)", toString); }
@Test public void toString_clientRange_stringWithStartAndEnd() { ClientRange instance = createFullyConfiguredInstance(); String toString = instance.toString(); assertEquals("(23.0:24.0)", toString); }