diff --git a/test/edu/nps/moves/dis7/BitFieldRoundTripTest.java b/test/edu/nps/moves/dis7/BitFieldRoundTripTest.java index 602e02052dd784a27d0b124d1489a49c6c75ade9..733fdf0dfa80831305ee15300bc0e2cf9bb5d4e1 100644 --- a/test/edu/nps/moves/dis7/BitFieldRoundTripTest.java +++ b/test/edu/nps/moves/dis7/BitFieldRoundTripTest.java @@ -17,6 +17,7 @@ public class BitFieldRoundTripTest { Pdu receivedPdu; DisThreadedNetIF netif; + DisThreadedNetIF.PduListener lis; @BeforeAll public static void setUpClass() @@ -33,12 +34,19 @@ public class BitFieldRoundTripTest public void setUp() { netif = new DisThreadedNetIF(); - netif.addListener(pdu -> setUpReceiver(pdu)); + lis = new DisThreadedNetIF.PduListener() { + @Override + public void incomingPdu(Pdu pdu) { + setUpReceiver(pdu); + } + }; + netif.addListener(lis); } @AfterEach public void tearDown() { + netif.removeListener(lis); netif.kill(); netif = null; } @@ -69,7 +77,6 @@ public class BitFieldRoundTripTest .set(LandPlatformAppearance.IS_FROZEN,1); try { - Thread.sleep(250l); // make sure receiver is listening netif.send(espdu); Thread.sleep(100l); } diff --git a/test/edu/nps/moves/dis7/CommentPdusTest.java b/test/edu/nps/moves/dis7/CommentPdusTest.java index daceed84eb8f577b2d3fcab8279277320fdef41c..c376e8155f73c0e78d524bf5b8b9b4adea9389df 100644 --- a/test/edu/nps/moves/dis7/CommentPdusTest.java +++ b/test/edu/nps/moves/dis7/CommentPdusTest.java @@ -15,6 +15,7 @@ public class CommentPdusTest { DisThreadedNetIF netif; Pdu receivedPdu; + DisThreadedNetIF.PduListener lis; @BeforeAll public static void setUpClass() @@ -29,14 +30,21 @@ public class CommentPdusTest @BeforeEach public void setUp() - { + { netif = new DisThreadedNetIF(); - netif.addListener(pdu -> setUpReceiver(pdu)); + lis = new DisThreadedNetIF.PduListener() { + @Override + public void incomingPdu(Pdu pdu) { + setUpReceiver(pdu); + } + }; + netif.addListener(lis); } @AfterEach public void tearDown() { + netif.removeListener(lis); netif.kill(); netif = null; } @@ -68,7 +76,6 @@ public class CommentPdusTest private void sendPdu(Pdu pdu) { try { - Thread.sleep(250l); // make sure receiver is listening netif.send(pdu); Thread.sleep(100l); } diff --git a/test/edu/nps/moves/dis7/DataQueryPduRoundTripTest.java b/test/edu/nps/moves/dis7/DataQueryPduRoundTripTest.java index 84fafbb9a4ccd6a3f07aff28972601959dc2fd4d..e11bf3c478ad335394034f667cb775f1dfd3c735 100644 --- a/test/edu/nps/moves/dis7/DataQueryPduRoundTripTest.java +++ b/test/edu/nps/moves/dis7/DataQueryPduRoundTripTest.java @@ -16,6 +16,7 @@ public class DataQueryPduRoundTripTest Pdu receivedPdu; DisThreadedNetIF netif; + DisThreadedNetIF.PduListener lis; @BeforeAll public static void setUpClass() @@ -30,14 +31,21 @@ public class DataQueryPduRoundTripTest @BeforeEach public void setUp() - { + { netif = new DisThreadedNetIF(); - netif.addListener(pdu -> setUpReceiver(pdu)); + lis = new DisThreadedNetIF.PduListener() { + @Override + public void incomingPdu(Pdu pdu) { + setUpReceiver(pdu); + } + }; + netif.addListener(lis); } @AfterEach public void tearDown() { + netif.removeListener(lis); netif.kill(); netif = null; } @@ -99,9 +107,8 @@ public class DataQueryPduRoundTripTest sendingPdu.getVariableDatums().add(variableDatum2); try { - Thread.sleep(250l); // make sure receiver is listening netif.send(sendingPdu); - Thread.sleep(1000l); + Thread.sleep(100l); } catch (InterruptedException ex) { System.err.println("Error sending Multicast: " + ex.getLocalizedMessage()); diff --git a/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java b/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java index 6f4cc2c7ac18f1a91d1c9eb76ee199931bd51839..04d331d215ae9f482efee5c659573d5c47a51c97 100644 --- a/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java +++ b/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java @@ -4,7 +4,6 @@ */ package edu.nps.moves.dis7; -import edu.nps.moves.dis7.enumerations.ActionResponseRequestStatus; import edu.nps.moves.dis7.enumerations.VariableRecordType; import edu.nps.moves.dis7.utilities.DisThreadedNetIF; import edu.nps.moves.dis7.utilities.PduFactory; @@ -16,6 +15,7 @@ public class FixedAndVariableDatumRoundTripTest { Pdu receivedPdu; DisThreadedNetIF netif; + DisThreadedNetIF.PduListener lis; @BeforeAll public static void setUpClass() @@ -32,19 +32,23 @@ public class FixedAndVariableDatumRoundTripTest public void setUp() { netif = new DisThreadedNetIF(); - netif.addListener(pdu -> setUpReceiver(pdu)); + lis = new DisThreadedNetIF.PduListener() { + @Override + public void incomingPdu(Pdu pdu) { + setUpReceiver(pdu); + } + }; + netif.addListener(lis); } @AfterEach public void tearDown() { + netif.removeListener(lis); netif.kill(); netif = null; } - private static int REQUEST_ID = 0x00112233; - private static ActionResponseRequestStatus REQUEST_STATUS = ActionResponseRequestStatus.RETRANSMIT_REQUEST_LATER; - private static FixedDatum fixedDatum1 = new FixedDatum(); private static int fixedDatum1Value = 0x111111FF; private static VariableRecordType fixedDatum1VarRecordType = VariableRecordType.ACTIVATE_OWNSHIP; @@ -59,7 +63,6 @@ public class FixedAndVariableDatumRoundTripTest private static VariableRecordType variableDatum1Type = VariableRecordType.ACLS_AIRCRAFT_REPORT; private static String variableDatum1String = "varDatum1Value111"; private static byte[] variableDatum1Value = variableDatum1String.getBytes(); - private static int variableDatum1LengthInBits = variableDatum1String.length() * 8 - 1; // test private static VariableDatum variableDatum2 = new VariableDatum(); private static VariableRecordType variableDatum2Type = VariableRecordType.Z_ACCELERATION; @@ -77,11 +80,9 @@ public class FixedAndVariableDatumRoundTripTest variableDatum1.setVariableDatumID(variableDatum1Type); variableDatum1.setVariableDatumValue(variableDatum1Value); - //variableDatum1.setVariableDatumLength(variableDatum1LengthInBits); variableDatum2.setVariableDatumID(variableDatum2Type); variableDatum2.setVariableDatumValue(variableDatum2Value); - //variableDatum2.setVariableDatumLength(variableDatum2Value.length * 8); //in bits } @Test @@ -98,9 +99,8 @@ public class FixedAndVariableDatumRoundTripTest sentPdu.getVariableDatums().add(variableDatum2); try { - Thread.sleep(250l); // make sure receiver is listening netif.send(sentPdu); - Thread.sleep(1000l); + Thread.sleep(100l); } catch (InterruptedException ex) { System.err.println("Error sending Multicast: " + ex.getLocalizedMessage()); diff --git a/test/edu/nps/moves/dis7/SignalPdusTest.java b/test/edu/nps/moves/dis7/SignalPdusTest.java index 1ae60ffc7c5b2cce3f476a3f8538c7ebaf7cb571..0c62da965218f7f7d3820bbbc04d3c546a041ea1 100644 --- a/test/edu/nps/moves/dis7/SignalPdusTest.java +++ b/test/edu/nps/moves/dis7/SignalPdusTest.java @@ -29,30 +29,30 @@ import static org.junit.jupiter.api.Assertions.*; @TestMethodOrder(MethodOrderer.OrderAnnotation.class) public class SignalPdusTest { - DisThreadedNetIF netif; - List<Pdu> receivedPdus; - PduRecorder recorder; + static DisThreadedNetIF netif; + static DisThreadedNetIF.PduListener lis; + static List<Pdu> receivedPdus; + static PduRecorder recorder; - Semaphore mutex; - PduFactory pduFac; - List<Pdu> sentPdus; + static Semaphore mutex; + static PduFactory pduFac; + static List<Pdu> sentPdus; byte[] buff; int size; @BeforeAll public static void setUpClass() throws IOException { System.out.println("SignalPdusTest"); - } - - @AfterAll - public static void tearDownClass() throws IOException { - } - - @BeforeEach - public void setUp() throws IOException, InterruptedException { + recorder = new PduRecorder(); // default dir netif = recorder.getDisThreadedNetIF(); - netif.addListener(pdu -> handleReceivedPdu(pdu)); + lis = new DisThreadedNetIF.PduListener() { + @Override + public void incomingPdu(Pdu pdu) { + handleReceivedPdu(pdu); + } + }; + netif.addListener(lis); mutex = new Semaphore(1); @@ -80,21 +80,24 @@ public class SignalPdusTest { ((IntercomSignalPdu) pdu).setData("IntercomSignalPdu-testdata".getBytes()); sentPdus.add(pdu); - try { - Thread.sleep(250l); // give receive time to spool up - sentPdus.forEach(p -> netif.send(p)); - Thread.sleep(250l); // give receiver time to process - } catch (InterruptedException ex) { - fail("NetIF Send: " + ex); - } + sentPdus.forEach(p -> { + netif.send(p); + sleep(10l); // give receiver time to process + }); + } + + @AfterAll + public static void tearDownClass() throws IOException { + } + + @BeforeEach + public void setUp() throws IOException, InterruptedException { } @AfterEach public void tearDown() throws IOException { - sentPdus.clear(); - receivedPdus.clear(); + netif.removeListener(lis); recorder.end(); // kills the netif as well - mutex.release(); } @Test @@ -102,9 +105,6 @@ public class SignalPdusTest { public void testRoundTripNet() { System.out.println("testRoundTripNet"); - // Compare - assertEquals(sentPdus, receivedPdus, "Sent and received pdus not identical"); - // Let's see how these unmarshall receivedPdus.forEach(pdu -> { try { @@ -119,6 +119,9 @@ public class SignalPdusTest { Logger.getLogger(SignalPdusTest.class.getName()).log(Level.SEVERE, null, ex); } }); + + // Compare + assertEquals(sentPdus, receivedPdus, "Sent and received pdus not identical"); } @Test @@ -126,7 +129,6 @@ public class SignalPdusTest { public void testRoundTripLog() throws IOException, InterruptedException { System.out.println("testRoundTripLog"); - recorder.end(); // this finishes the 2nd log file so it can be played mutex.acquire(); Path path = Path.of(recorder.getLogFile()).getParent(); @@ -144,22 +146,27 @@ public class SignalPdusTest { mutex.acquire(); } + + private static void sleep(long ms) { + try { + Thread.sleep(ms); + } catch (InterruptedException ex) { + fail("NetIF Send: " + ex); + } + } - private void handleReceivedPdu(Pdu pdu) { + private static void handleReceivedPdu(Pdu pdu) { receivedPdus.add(pdu); } public static void main(String[] args) throws IOException, InterruptedException { + setUpClass(); + SignalPdusTest spt = new SignalPdusTest(); - - spt.setUp(); spt.testRoundTripNet(); spt.tearDown(); - - spt.setUp(); spt.testRoundTripLog(); - spt.tearDown(); } }