private MultiDomainServerState getLastAliveCSNs() { final MultiDomainServerState lastAliveCSNs = new MultiDomainServerState(); assertTrue(lastAliveCSNs.update(dn1, csn1)); assertTrue(lastAliveCSNs.update(dn2, csn1)); assertTrue(lastAliveCSNs.update(dn2, csn2)); return lastAliveCSNs; }
@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 public void testUpdateCSN() throws Exception { final MultiDomainServerState state = new MultiDomainServerState(); assertTrue(state.update(dn1, csn1)); assertTrue(state.update(dn2, csn2)); assertFalse(state.update(dn1, (CSN) null)); assertFalse(state.update(dn1, csn1)); assertTrue(state.update(dn1, csn3)); final String expected = "o=test1:" + csn3 + ";o=test2:" + csn2 + ";"; assertEquals(state.toString(), expected); }
@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 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()); }
@Test(dependsOnMethods = {"testUpdateCSN"}) public void testEqualsTo() throws Exception { final MultiDomainServerState state1 = new MultiDomainServerState(); assertTrue(state1.update(dn1, csn3)); final MultiDomainServerState state2 = new MultiDomainServerState(); assertFalse(state1.equalsTo(state2)); assertTrue(state2.update(dn1, csn1)); assertFalse(state1.equalsTo(state2)); assertTrue(state2.update(dn1, csn3)); assertTrue(state1.equalsTo(state2)); assertTrue(state2.update(dn2, csn2)); assertFalse(state1.equalsTo(state2)); }
@Test(dependsOnMethods = {"testUpdateCSN"}) public void testGetOldestCSNExcluding_currentOldestCSN_givesNewOldestCSN() throws Exception { final MultiDomainServerState lastAliveCSNs = getLastAliveCSNs(); final MultiDomainServerState excluded = new MultiDomainServerState(); excluded.update(dn1, csn1); assertEquals(lastAliveCSNs.getOldestCSNExcluding(excluded), Pair.of(dn2, csn1)); }
@Test public void testUpdateServerState() throws Exception { final MultiDomainServerState state = new MultiDomainServerState(); final ServerState ss1 = new ServerState(); assertTrue(ss1.update(csn3)); final ServerState ss2 = new ServerState(); assertTrue(ss2.update(csn2)); state.update(dn1, ss1); state.update(dn2, ss2); final String expected = "o=test1:" + csn3 + ";o=test2:" + csn2 + ";"; assertEquals(state.toString(), expected); }