### Question:
MultiDomainServerState implements Iterable<DN> { public boolean isEmpty() { return list.isEmpty(); } MultiDomainServerState();  MultiDomainServerState(MultiDomainServerState cookie);  MultiDomainServerState(String cookie); void clear(); boolean update(DN baseDN, CSN csn); void update(DN baseDN, ServerState serverState); void replace(DN baseDN, ServerState serverState); void update(MultiDomainServerState state); Map<DN, List<CSN>> getSnapshot(); @Override String toString(); void toString(StringBuilder buffer); boolean isEmpty(); @Override Iterator<DN> iterator(); ServerState getServerState(DN baseDN); CSN getCSN(DN baseDN, int serverId); Pair<DN, CSN> getOldestCSNExcluding(MultiDomainServerState excludedCSNs); boolean removeCSN(DN baseDN, CSN expectedCSN); boolean equalsTo(MultiDomainServerState other); boolean cover(MultiDomainServerState covered); boolean cover(DN baseDN, CSN csn);  }### Answer:
@Test(dependsOnMethods = { "testUpdateCSN" }) public void testIsEmpty() throws Exception { final MultiDomainServerState state = new MultiDomainServerState(); assertTrue(state.isEmpty()); assertTrue(state.update(dn1, csn1)); assertFalse(state.isEmpty()); assertThat(state).containsOnly(dn1); assertTrue(state.update(dn2, csn2)); assertFalse(state.isEmpty()); assertThat(state).containsOnly(dn1, dn2); state.clear(); assertTrue(state.isEmpty()); }