@Test public void testUpdateMultiDomainServerState() throws Exception { final MultiDomainServerState state1 = new MultiDomainServerState(); state1.update(dn1, csn3); state1.update(dn2, csn2); final MultiDomainServerState state2 = new MultiDomainServerState(); state2.update(state1); assertSame(csn3, state2.getCSN(dn1, csn3.getServerId())); assertSame(csn2, state2.getCSN(dn2, csn2.getServerId())); assertTrue(state1.equalsTo(state2)); }
@Test(dependsOnMethods = {"testUpdateCSN"}) public void testGetOldestCSNExcluding_CSNNewerThanCurrentOldestCSN_givesNewOldestCSN() throws Exception { final MultiDomainServerState lastAliveCSNs = getLastAliveCSNs(); final MultiDomainServerState excluded = new MultiDomainServerState(); excluded.update(dn1, csn1); final CSN newerThanCSN1 = new CSN(42, 2, 3); assertEquals(newerThanCSN1.getServerId(), csn1.getServerId()); assertTrue(newerThanCSN1.isNewerThan(csn1)); excluded.update(dn2, newerThanCSN1); assertEquals(lastAliveCSNs.getOldestCSNExcluding(excluded), Pair.of(dn2, csn1)); }
@Test(dependsOnMethods = {"testUpdateCSN"}) public void testRemoveCSN() throws Exception { final MultiDomainServerState state = getLastAliveCSNs(); assertNull(state.getCSN(dn3, 42)); assertFalse(state.removeCSN(dn3, csn1)); assertSame(csn1, state.getCSN(dn1, csn1.getServerId())); assertSame(csn1, state.getCSN(dn2, csn1.getServerId())); assertSame(csn2, state.getCSN(dn2, csn2.getServerId())); assertFalse(state.removeCSN(dn1, csn2)); assertSame(csn1, state.getCSN(dn1, csn1.getServerId())); assertSame(csn1, state.getCSN(dn2, csn1.getServerId())); assertSame(csn2, state.getCSN(dn2, csn2.getServerId())); assertTrue(state.removeCSN(dn2, csn1)); assertSame(csn1, state.getCSN(dn1, csn1.getServerId())); assertNull(state.getCSN(dn2, csn1.getServerId())); assertSame(csn2, state.getCSN(dn2, csn2.getServerId())); }