@Test(timeout = TWO_MINUTE_TIMEOUT_MILLIS) public void testSelfSendThreeParties() { networks = createNetworks(3); networks.keySet().stream().forEach(i -> networks.get(i).send(i, new byte[] { 0x01 })); networks.keySet().stream().forEach(i -> networks.get(i).receive(i)); }
@Test(expected = IllegalArgumentException.class, timeout = TWO_MINUTE_TIMEOUT_MILLIS) public void testReceiveFromNegativePartyId() { networks = createNetworks(1); networks.get(1).receive(-1); }
@Test(expected = IllegalArgumentException.class, timeout = TWO_MINUTE_TIMEOUT_MILLIS) public void testReceiveFromTooLargePartyId() { networks = createNetworks(1); networks.get(1).receive(2); }
@Test(timeout = TWO_MINUTE_TIMEOUT_MILLIS, expected = RuntimeException.class) public void testReceiveAfterClose() { networks = createNetworks(3); closeNetworks(networks); networks.get(1).receive(2); }
@Test(expected = RuntimeException.class) public void testStoppedReciever() throws InterruptedException, ExecutionException, IOException { final int numParties = 3; List<NetworkConfiguration> confs = getNetConfs(numParties); ExecutorService es = Executors.newFixedThreadPool(numParties); List<Future<NetworkConnector>> fs = new ArrayList<>(numParties); CloseableNetwork network = null; try { for (int i = 0; i < numParties; i++) { final int id = i; fs.add(es.submit(() -> new Connector(confs.get(id), DEFAULT_CONNECTION_TIMEOUT))); } Map<Integer, Socket> socketMap1 = fs.get(0).get().getSocketMap(); Map<Integer, Socket> socketMap2 = fs.get(1).get().getSocketMap(); network = new SocketNetwork(confs.get(0), socketMap1); new DataOutputStream(socketMap2.get(1).getOutputStream()).writeInt(-1); network.receive(2); } finally { for (Future<NetworkConnector> futureConn : fs) { for (Socket s : futureConn.get().getSocketMap().values()) { s.close(); } } if (network != null) { network.close(); } es.shutdownNow(); } }
byte[] receivedData; for (int j = 0; j < numMessages; j++) { receivedData = networks.get(1).receive(2); r.nextBytes(data); networks.get(1).send(2, data); r.nextBytes(data); networks.get(2).send(1, data); receivedData = networks.get(2).receive(1); receivedData = networks.get(2).receive(1); assertArrayEquals(data, receivedData);
Arrays.fill(expectedData, (byte) prevParty(id, numParties)); networks.get(id).send(nextParty(id, numParties), data); byte[] receivedData = networks.get(id).receive(prevParty(id, numParties)); assertArrayEquals(expectedData, receivedData); });
byte[] receivedData; for (int j = 0; j < numMessages; j++) { receivedData = networks.get(id).receive(k); r.nextBytes(data); assertArrayEquals(data, receivedData);