t.clientDoOps(1).checkClientSentOps(0).checkClientGotOps(); t.serverAck(1).checkClientSentOps().checkClientGotOps(0); t.serverDoOps(1).checkClientSentOps().checkClientGotOps(1); t.clientDoOps(1).checkClientSentOps(2).checkClientGotOps(); t.serverAck(3).checkClientSentOps().checkClientGotOps(2); t.serverDoOpen(1, 4).checkClientSentOps(1); t.serverDoOps(1).checkClientSentOps().checkClientGotOps(1); t.serverDoOps(2).checkClientSentOps().checkClientGotOps(2); t.serverDoOpen(1, 4).checkClientSentOps(); t.serverDoOps(1).checkClientSentOps().checkClientGotOps(1); t.serverDoEchoBack(2).checkClientSentOps(3).checkClientGotOps(2); t.serverDoOps(3).checkClientSentOps().checkClientGotOps(3); t.serverDoOpen(1, 3).checkClientSentOps(); t.serverDoOps(1).checkClientSentOps().checkClientGotOps(1); t.serverDoOps(2).checkClientSentOps(3, 1).checkClientGotOps(2);
t.clientDoOps(1).checkClientSentOps(0).checkClientGotOps(); t.serverAck(1).checkClientSentOps().checkClientGotOps(0); t.serverDoOps(1).checkClientSentOps().checkClientGotOps(1); t.clientDoOps(1).checkClientSentOps(2).checkClientGotOps(); t.serverAck(3).checkClientSentOps().checkClientGotOps(2); t.serverDoOpen(1, 4).checkClientSentOps(1); t.serverDoOps(1).checkClientSentOps().checkClientGotOps(1); t.serverDoOps(2).checkClientSentOps().checkClientGotOps(2); t.serverDoOpen(1, 4).checkClientSentOps(); t.serverDoOps(1).checkClientSentOps().checkClientGotOps(1); t.serverDoEchoBack(2).checkClientSentOps(3).checkClientGotOps(2); t.serverDoOps(3).checkClientSentOps().checkClientGotOps(3); t.serverDoOpen(1, 3).checkClientSentOps(); t.serverDoOps(1).checkClientSentOps().checkClientGotOps(1); t.serverDoOps(2).checkClientSentOps(3, 1).checkClientGotOps(2);
t.serverDoOps(0).checkClientGotOps(0).checkClientSentOps(); t.clientDoOps(1).checkClientSentOps(0).checkClientGotOps(); t.serverAck(1).checkClientSentOps().checkClientGotOps(0); // Expect a version update op here. t.serverDoOps(1).checkClientSentOps().checkClientGotOps(1); t.clientDoOps(1).clientDoOps(1).checkClientSentOps(2).checkClientGotOps(); t.serverAck(3).checkClientSentOps(3).checkClientGotOps(2); t.serverAck(4).checkClientSentOps().checkClientGotOps(3); t.serverDoOps(4).checkClientSentOps().checkClientGotOps(4); t.clientDoOps(1).checkClientSentOps(0).checkClientGotOps(); t.serverAck(1).checkClientSentOps().checkClientGotOps(0); t.serverDoOps(1).checkClientSentOps().checkClientGotOps(1); t.clientDoOps(1).clientDoOps(1).clientDoOps(1).serverDoOps(2) .checkClientSentOps(2).checkClientGotOps(2); t.serverAck(4).checkClientSentOps(4, 2).checkClientGotOps(3);
t.serverDoOps(0).checkClientGotOps(0).checkClientSentOps(); t.clientDoOps(1).checkClientSentOps(0).checkClientGotOps(); t.serverAck(1).checkClientSentOps().checkClientGotOps(0); // Expect a version update op here. t.serverDoOps(1).checkClientSentOps().checkClientGotOps(1); t.clientDoOps(1).clientDoOps(1).checkClientSentOps(2).checkClientGotOps(); t.serverAck(3).checkClientSentOps(3).checkClientGotOps(2); t.serverAck(4).checkClientSentOps().checkClientGotOps(3); t.serverDoOps(4).checkClientSentOps().checkClientGotOps(4); t.clientDoOps(1).checkClientSentOps(0).checkClientGotOps(); t.serverAck(1).checkClientSentOps().checkClientGotOps(0); t.serverDoOps(1).checkClientSentOps().checkClientGotOps(1); t.clientDoOps(1).clientDoOps(1).clientDoOps(1).serverDoOps(2) .checkClientSentOps(2).checkClientGotOps(2); t.serverAck(4).checkClientSentOps(4, 2).checkClientGotOps(3);
/** * Test errors in the protocol. */ public void testErrorConditions() throws TransformException, OperationException { TestConfig t = new TestConfig(); // Missing ack // c1 /\ s1 // s1' \ // \ s2 t.init(0); t.clientDoOps(1).serverDoOps(0).checkClientSentOps(0).checkClientGotOps(0); try { t.serverDoOps(2); fail("Suppose to fail with unexpected version"); } catch (TransformException ex) { } // Wrong ack // c1 / // // | ack c2 t.init(0); t.clientDoOps(1).checkClientSentOps(0).checkClientGotOps(); try { t.serverAck(2); fail("Suppose to fail with unexpected version"); } catch (TransformException ex) { } }
/** * Test errors in the protocol. */ public void testErrorConditions() throws TransformException, OperationException { TestConfig t = new TestConfig(); // Missing ack // c1 /\ s1 // s1' \ // \ s2 t.init(0); t.clientDoOps(1).serverDoOps(0).checkClientSentOps(0).checkClientGotOps(0); try { t.serverDoOps(2); fail("Suppose to fail with unexpected version"); } catch (TransformException ex) { } // Wrong ack // c1 / // // | ack c2 t.init(0); t.clientDoOps(1).checkClientSentOps(0).checkClientGotOps(); try { t.serverAck(2); fail("Suppose to fail with unexpected version"); } catch (TransformException ex) { } }
/** * Pretend server did some ops at the given op version using different deltas. * @throws OperationException * @throws TransformException */ public TestConfig serverDoOps(int version) throws TransformException, OperationException { return serverDoOps(version, 1); }
/** * Pretend server did some ops at the given op version using different deltas. * @throws OperationException * @throws TransformException */ public TestConfig serverDoOps(int version) throws TransformException, OperationException { return serverDoOps(version, 1); }