### Question:
MultiDomainServerState implements Iterable<DN> { public Pair<DN, CSN> getOldestCSNExcluding(MultiDomainServerState excludedCSNs) { Pair<DN, CSN> oldest = Pair.empty(); for (Entry<DN, ServerState> entry : list.entrySet()) { final DN baseDN = entry.getKey(); final ServerState value = entry.getValue(); for (Entry<Integer, CSN> entry2 : value.getServerIdToCSNMap().entrySet()) { final CSN csn = entry2.getValue(); if (!isReplicaExcluded(excludedCSNs, baseDN, csn) && (oldest == Pair.EMPTY || csn.isOlderThan(oldest.getSecond()))) { oldest = Pair.of(baseDN, csn); } } } return oldest; } 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 testGetOldestCSNExcluding_null() throws Exception { final MultiDomainServerState lastAliveCSNs = getLastAliveCSNs(); assertEquals(lastAliveCSNs.getOldestCSNExcluding(null), Pair.of(dn1, csn1)); }
@Test(dependsOnMethods = { "testUpdateCSN" }) public void testGetOldestCSNExcluding_empty() throws Exception { final MultiDomainServerState lastAliveCSNs = getLastAliveCSNs(); final MultiDomainServerState excluded = new MultiDomainServerState(); assertEquals(lastAliveCSNs.getOldestCSNExcluding(excluded), Pair.of(dn1, csn1)); }