package community.yuvomi.mobile import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Test class SelectionGateTest { @Test fun acceptsOnlyTheInitiatingContextOnce() { val gate = SelectionGate() assertTrue(gate.begin(0)) assertTrue(gate.consume(0)) assertFalse(gate.consume(0)) } @Test fun serverSwitchCannotDeliverAnOldSelectionToTheNewServer() { val gate = SelectionGate() assertTrue(gate.begin(0)) assertFalse(gate.begin(1)) assertFalse(gate.consume(1)) assertTrue(gate.begin(1)) assertTrue(gate.consume(1)) } @Test fun processRecreationCancelsSelectionWithoutReusingItsCallback() { val gate = SelectionGate() gate.restoreOutstanding() assertFalse(gate.begin(0)) assertFalse(gate.consume(0)) assertTrue(gate.begin(0)) } }