mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-19 22:29:53 +01:00
Add unit test for connection limiter.
This commit is contained in:
@@ -0,0 +1,55 @@
|
|||||||
|
package org.briarproject.bramble.plugin.bluetooth;
|
||||||
|
|
||||||
|
import org.briarproject.bramble.api.plugin.TransportConnectionReader;
|
||||||
|
import org.briarproject.bramble.api.plugin.TransportConnectionWriter;
|
||||||
|
import org.briarproject.bramble.api.plugin.duplex.DuplexTransportConnection;
|
||||||
|
import org.briarproject.bramble.test.BrambleMockTestCase;
|
||||||
|
import org.jmock.Expectations;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertFalse;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
public class BluetoothConnectionLimiterImplTest extends BrambleMockTestCase {
|
||||||
|
|
||||||
|
private final DuplexTransportConnection conn =
|
||||||
|
context.mock(DuplexTransportConnection.class);
|
||||||
|
private final TransportConnectionReader reader =
|
||||||
|
context.mock(TransportConnectionReader.class);
|
||||||
|
private final TransportConnectionWriter writer =
|
||||||
|
context.mock(TransportConnectionWriter.class);
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testLimiterAllowsOneOutgoingConnection() {
|
||||||
|
BluetoothConnectionLimiter limiter =
|
||||||
|
new BluetoothConnectionLimiterImpl();
|
||||||
|
assertTrue(limiter.canOpenContactConnection());
|
||||||
|
assertTrue(limiter.contactConnectionOpened(conn));
|
||||||
|
assertFalse(limiter.canOpenContactConnection());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testLimiterAllowsSecondIncomingConnection() throws Exception {
|
||||||
|
BluetoothConnectionLimiter limiter =
|
||||||
|
new BluetoothConnectionLimiterImpl();
|
||||||
|
assertTrue(limiter.canOpenContactConnection());
|
||||||
|
assertTrue(limiter.contactConnectionOpened(conn));
|
||||||
|
assertFalse(limiter.canOpenContactConnection());
|
||||||
|
// The limiter allows a second incoming connection
|
||||||
|
assertTrue(limiter.contactConnectionOpened(conn));
|
||||||
|
// The limiter closes any further incoming connections
|
||||||
|
expectCloseConnection();
|
||||||
|
assertFalse(limiter.contactConnectionOpened(conn));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void expectCloseConnection() throws Exception {
|
||||||
|
context.checking(new Expectations() {{
|
||||||
|
oneOf(conn).getReader();
|
||||||
|
will(returnValue(reader));
|
||||||
|
oneOf(reader).dispose(false, false);
|
||||||
|
oneOf(conn).getWriter();
|
||||||
|
will(returnValue(writer));
|
||||||
|
oneOf(writer).dispose(false);
|
||||||
|
}});
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user