diff --git a/test/edu/nps/moves/dis7/BitFieldRoundTripTest.java b/test/edu/nps/moves/dis7/BitFieldRoundTripTest.java index 72747af9e8c8dfe28465b9d5432381e2e0641272..602e02052dd784a27d0b124d1489a49c6c75ade9 100644 --- a/test/edu/nps/moves/dis7/BitFieldRoundTripTest.java +++ b/test/edu/nps/moves/dis7/BitFieldRoundTripTest.java @@ -7,9 +7,8 @@ package edu.nps.moves.dis7; import edu.nps.moves.dis7.enumerations.AppearanceCamouflageType; import edu.nps.moves.dis7.enumerations.ForceID; import edu.nps.moves.dis7.enumerations.LandPlatformAppearance; -import edu.nps.moves.dis7.utilities.DisNetworking; +import edu.nps.moves.dis7.utilities.DisThreadedNetIF; import edu.nps.moves.dis7.utilities.PduFactory; -import java.io.IOException; import org.junit.jupiter.api.*; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -17,7 +16,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; public class BitFieldRoundTripTest { Pdu receivedPdu; - DisNetworking disnet; + DisThreadedNetIF netif; @BeforeAll public static void setUpClass() @@ -33,15 +32,15 @@ public class BitFieldRoundTripTest @BeforeEach public void setUp() { - disnet = new DisNetworking(); - setUpReceiver(); + netif = new DisThreadedNetIF(); + netif.addListener(pdu -> setUpReceiver(pdu)); } @AfterEach public void tearDown() { -// disnet.stop(); -// disnet = null; + netif.kill(); + netif = null; } @Test @@ -71,10 +70,10 @@ public class BitFieldRoundTripTest try { Thread.sleep(250l); // make sure receiver is listening - disnet.sendPdu(espdu); + netif.send(espdu); Thread.sleep(100l); } - catch (Exception ex) { + catch (InterruptedException ex) { System.err.println("Error sending Multicast: " + ex.getLocalizedMessage()); System.exit(1); } @@ -87,23 +86,11 @@ public class BitFieldRoundTripTest assertTrue(same, "Sent and received pdu not the same"); } - private void setUpReceiver() + private void setUpReceiver(Pdu pdu) { - Thread rcvThread = new Thread(() -> { - try { - receivedPdu = disnet.receivePdu(); // blocks - } - catch (IOException ex) { - System.err.println("Error receiving Multicast: " + ex.getLocalizedMessage()); - System.exit(1); - } - // waiter.notify(); - }); - - rcvThread.setPriority(Thread.NORM_PRIORITY); - rcvThread.setDaemon(true); - rcvThread.start(); + receivedPdu = pdu; } + private void dump(String s, EntityStatePdu espdu) { System.out.println(s); @@ -128,11 +115,12 @@ public class BitFieldRoundTripTest System.out.println("Variable Parameters: "+ espdu.getVariableParameters().toString()); System.out.println(); } + public static void main(String[] args) { BitFieldRoundTripTest brt = new BitFieldRoundTripTest(); brt.setUp(); brt.testRoundTrip(); -// brt.tearDown();.testRoundTrip(); + brt.tearDown(); } } diff --git a/test/edu/nps/moves/dis7/CommentPdusTest.java b/test/edu/nps/moves/dis7/CommentPdusTest.java index faeca71845d68e5d02e73ee9e6eb9dc8dd0e2000..daceed84eb8f577b2d3fcab8279277320fdef41c 100644 --- a/test/edu/nps/moves/dis7/CommentPdusTest.java +++ b/test/edu/nps/moves/dis7/CommentPdusTest.java @@ -5,16 +5,15 @@ package edu.nps.moves.dis7; import edu.nps.moves.dis7.enumerations.VariableRecordType; -import edu.nps.moves.dis7.utilities.DisNetworking; +import edu.nps.moves.dis7.utilities.DisThreadedNetIF; import edu.nps.moves.dis7.utilities.PduFactory; -import java.io.IOException; import org.junit.jupiter.api.*; import static org.junit.jupiter.api.Assertions.*; @DisplayName("Comment Pdus Test") public class CommentPdusTest { - DisNetworking disnet; + DisThreadedNetIF netif; Pdu receivedPdu; @BeforeAll @@ -31,15 +30,15 @@ public class CommentPdusTest @BeforeEach public void setUp() { - disnet = new DisNetworking(); - setUpReceiver(); + netif = new DisThreadedNetIF(); + netif.addListener(pdu -> setUpReceiver(pdu)); } @AfterEach public void tearDown() { -// disnet.stop(); -// disnet = null; + netif.kill(); + netif = null; } @Test @@ -62,7 +61,7 @@ public class CommentPdusTest { sendPdu(pdu); // will wait a while assertTrue(receivedPdu != null, "No response from network receive"); - assertTrue(compare(pdu,receivedPdu),"Comparison failed"); + assertTrue(compare(pdu,receivedPdu), "Comparison failed"); receivedPdu = null; } @@ -70,10 +69,10 @@ public class CommentPdusTest { try { Thread.sleep(250l); // make sure receiver is listening - disnet.sendPdu(pdu); + netif.send(pdu); Thread.sleep(100l); } - catch (Exception ex) { + catch (InterruptedException ex) { System.err.println("Error sending Multicast: " + ex.getLocalizedMessage()); System.exit(1); } @@ -84,23 +83,9 @@ public class CommentPdusTest return pdu1.equals(pdu2); } - private void setUpReceiver() + private void setUpReceiver(Pdu pdu) { - Thread rcvThread = new Thread(() -> { - try { - while(true) { - receivedPdu = disnet.receivePdu(); // blocks - } - } - catch (IOException ex) { - System.err.println("Error receiving Multicast: " + ex.getLocalizedMessage()); - System.exit(1); - } - }); - - rcvThread.setPriority(Thread.NORM_PRIORITY); - rcvThread.setDaemon(true); - rcvThread.start(); + receivedPdu = pdu; } public static void main(String[] args) @@ -108,6 +93,6 @@ public class CommentPdusTest CommentPdusTest cpt = new CommentPdusTest(); cpt.setUp(); cpt.testRoundTrip(); -// cpt.tearDown(); + cpt.tearDown(); } } diff --git a/test/edu/nps/moves/dis7/CreateAllObjectTypesTest.java b/test/edu/nps/moves/dis7/CreateAllObjectTypesTest.java index af90a1b6fd2b078f657c70ed25a7e1dab13bc345..b178ddf0d7bf220f7a4893e4414890f83d0a2d9b 100644 --- a/test/edu/nps/moves/dis7/CreateAllObjectTypesTest.java +++ b/test/edu/nps/moves/dis7/CreateAllObjectTypesTest.java @@ -4,17 +4,16 @@ */ package edu.nps.moves.dis7; +import org.junit.jupiter.api.*; +import static org.junit.jupiter.api.Assertions.assertNull; + /** * CreateAllObjectTypes()); created on May 20, 2019 MOVES Institute Naval Postgraduate School, Monterey, CA, USA www.nps.edu * * @author Mike Bailey, jmbailey@edu.nps.edu * @version $Id$ */ -import org.junit.jupiter.api.*; -import static org.junit.jupiter.api.Assertions.assertNull; - @DisplayName("All Object Types Create") - public class CreateAllObjectTypesTest { @BeforeAll diff --git a/test/edu/nps/moves/dis7/DataQueryPduRoundTripTest.java b/test/edu/nps/moves/dis7/DataQueryPduRoundTripTest.java index bd59556c8d037e2b0f19db3c98ec744740cf61db..84fafbb9a4ccd6a3f07aff28972601959dc2fd4d 100644 --- a/test/edu/nps/moves/dis7/DataQueryPduRoundTripTest.java +++ b/test/edu/nps/moves/dis7/DataQueryPduRoundTripTest.java @@ -5,9 +5,8 @@ package edu.nps.moves.dis7; import edu.nps.moves.dis7.enumerations.VariableRecordType; -import edu.nps.moves.dis7.utilities.DisNetworking; +import edu.nps.moves.dis7.utilities.DisThreadedNetIF; import edu.nps.moves.dis7.utilities.PduFactory; -import java.io.IOException; import org.junit.jupiter.api.*; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -15,9 +14,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue; public class DataQueryPduRoundTripTest { - public DataQueryPduRoundTripTest() - { - } + Pdu receivedPdu; + DisThreadedNetIF netif; @BeforeAll public static void setUpClass() @@ -33,11 +31,15 @@ public class DataQueryPduRoundTripTest @BeforeEach public void setUp() { + netif = new DisThreadedNetIF(); + netif.addListener(pdu -> setUpReceiver(pdu)); } @AfterEach public void tearDown() { + netif.kill(); + netif = null; } private static int REQUEST_ID = 0x00112233; @@ -80,8 +82,6 @@ public class DataQueryPduRoundTripTest // variableDatum2.setVariableDatumLength(variableDatum2Value.length); // should be done automatically } - private Pdu receivedPdu; - @Test public void testRoundTrip() { @@ -98,14 +98,12 @@ public class DataQueryPduRoundTripTest sendingPdu.getVariableDatums().add(variableDatum1); sendingPdu.getVariableDatums().add(variableDatum2); - setUpReceiver(); - try { Thread.sleep(250l); // make sure receiver is listening - new DisNetworking().sendPdu(sendingPdu); + netif.send(sendingPdu); Thread.sleep(1000l); } - catch (Exception ex) { + catch (InterruptedException ex) { System.err.println("Error sending Multicast: " + ex.getLocalizedMessage()); System.exit(1); } @@ -115,25 +113,16 @@ public class DataQueryPduRoundTripTest assertTrue(receivedPdu.equals(sendingPdu), "Sent and received pdu not the same"); } - private void setUpReceiver() + private void setUpReceiver(Pdu pdu) { - Thread rcvThread = new Thread(() -> { - try { - receivedPdu = new DisNetworking().receivePdu(); // blocks - } - catch (IOException ex) { - System.err.println("Error receiving Multicast: " + ex.getLocalizedMessage()); - System.exit(1); - } - }); - - rcvThread.setPriority(Thread.NORM_PRIORITY); - rcvThread.setDaemon(true); - rcvThread.start(); + receivedPdu = pdu; } public static void main(String[] args) { - new DataQueryPduRoundTripTest().testRoundTrip(); + DataQueryPduRoundTripTest drt = new DataQueryPduRoundTripTest(); + drt.setUp(); + drt.testRoundTrip(); + drt.tearDown(); } } diff --git a/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java b/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java index 8bd6b2faefc36155b90cc00a51fcf6bade63af13..6f4cc2c7ac18f1a91d1c9eb76ee199931bd51839 100644 --- a/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java +++ b/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java @@ -6,18 +6,16 @@ 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.DisNetworking; +import edu.nps.moves.dis7.utilities.DisThreadedNetIF; import edu.nps.moves.dis7.utilities.PduFactory; -import java.io.IOException; import org.junit.jupiter.api.*; import static org.junit.jupiter.api.Assertions.assertTrue; @DisplayName("Fixed and Variable Datum Round Trip Test") public class FixedAndVariableDatumRoundTripTest { - public FixedAndVariableDatumRoundTripTest() - { - } + Pdu receivedPdu; + DisThreadedNetIF netif; @BeforeAll public static void setUpClass() @@ -32,12 +30,16 @@ public class FixedAndVariableDatumRoundTripTest @BeforeEach public void setUp() - { + { + netif = new DisThreadedNetIF(); + netif.addListener(pdu -> setUpReceiver(pdu)); } @AfterEach public void tearDown() { + netif.kill(); + netif = null; } private static int REQUEST_ID = 0x00112233; @@ -61,7 +63,7 @@ public class FixedAndVariableDatumRoundTripTest private static VariableDatum variableDatum2 = new VariableDatum(); private static VariableRecordType variableDatum2Type = VariableRecordType.Z_ACCELERATION; - private static byte[] variableDatum2Value = new String("222varDatum1Value222").getBytes(); + private static byte[] variableDatum2Value = "222varDatum1Value222".getBytes(); static { fixedDatum1.setFixedDatumValue(fixedDatum1Value); @@ -82,9 +84,6 @@ public class FixedAndVariableDatumRoundTripTest //variableDatum2.setVariableDatumLength(variableDatum2Value.length * 8); //in bits } - private Pdu receivedPdu; - private Object waiter = new Object(); - @Test public void testRoundTrip() { @@ -98,14 +97,12 @@ public class FixedAndVariableDatumRoundTripTest sentPdu.getVariableDatums().add(variableDatum1); sentPdu.getVariableDatums().add(variableDatum2); - setUpReceiver(); - try { Thread.sleep(250l); // make sure receiver is listening - new DisNetworking().sendPdu(sentPdu); + netif.send(sentPdu); Thread.sleep(1000l); } - catch (Exception ex) { + catch (InterruptedException ex) { System.err.println("Error sending Multicast: " + ex.getLocalizedMessage()); System.exit(1); } @@ -116,26 +113,16 @@ public class FixedAndVariableDatumRoundTripTest assertTrue(receivedPdu.equals(sentPdu),"Sent and received pdus not identical"); } - private void setUpReceiver() + private void setUpReceiver(Pdu pdu) { - Thread rcvThread = new Thread(() -> { - try { - receivedPdu = new DisNetworking().receivePdu(); // blocks - } - catch (IOException ex) { - System.err.println("Error receiving Multicast: " + ex.getLocalizedMessage()); - System.exit(1); - } - // waiter.notify(); - }); - - rcvThread.setPriority(Thread.NORM_PRIORITY); - rcvThread.setDaemon(true); - rcvThread.start(); + receivedPdu = pdu; } public static void main(String[] args) { - new FixedAndVariableDatumRoundTripTest().testRoundTrip(); + FixedAndVariableDatumRoundTripTest frt = new FixedAndVariableDatumRoundTripTest(); + frt.setUp(); + frt.testRoundTrip(); + frt.tearDown(); } } diff --git a/test/edu/nps/moves/dis7/MarshalEnumsTest.java b/test/edu/nps/moves/dis7/MarshalEnumsTest.java index 0094789a48589933531c7b606095f02a88e1e0a4..87ba13c8a3db3753e7a94ccf18519f8b8eda5a08 100644 --- a/test/edu/nps/moves/dis7/MarshalEnumsTest.java +++ b/test/edu/nps/moves/dis7/MarshalEnumsTest.java @@ -46,10 +46,10 @@ public class MarshalEnumsTest // this is a simple enum, never marshalled marshalOne(Acronyms.values()[0]); marshalOne(ActionRequestActionID.values()[0]); marshalOne(ActionResponseRequestStatus.values()[0]); -// marshalOne(AddSpecificDimensionEnumerationsforSubsurfaceAreaSize.values()[0]); -// marshalOne(AddVariantsforAirCategory201Insect.values()[0]); -// marshalOne(AddVariantsforLandCategory200Mammal.values()[0]); -// marshalOne(AddVariantsforSubsurfaceCategoriesFishMolluskCrustaceanandInsect.values()[0]); + marshalOne(AddSpecificDimensionEnumerationsforSubsurfaceAreaSize.values()[0]); + marshalOne(AddVariantsforAirCategory201Insect.values()[0]); + marshalOne(AddVariantsforLandCategory200Mammal.values()[0]); + marshalOne(AddVariantsforSubsurfaceCategoriesFishMolluskCrustaceanandInsect.values()[0]); marshalOne(AggregateStateAggregateKind.values()[0]); marshalOne(AggregateStateAggregateState.values()[0]); marshalOne(AggregateStateFormation.values()[0]); @@ -60,7 +60,7 @@ public class MarshalEnumsTest marshalOne(AircraftIdentificationType.values()[0]); marshalOne(AircraftPresentDomain.values()[0]); marshalOne(AircraftTypeWake.values()[0]); -// marshalOne(AnimalLifeformGroupSizeRangeEnumerationforallDomains.values()[0]); + marshalOne(AnimalLifeformGroupSizeRangeEnumerationforallDomains.values()[0]); marshalOne(AntennaSelection.values()[0]); marshalOne(AntennaStatus.values()[0]); marshalOne(AppearanceAntiCollisionDayNight.values()[0]); @@ -77,15 +77,15 @@ public class MarshalEnumsTest marshalOne(AppearanceLifeFormPosture.values()[0]); marshalOne(AppearanceLifeFormWeaponImplement.values()[0]); marshalOne(AppearanceLifeformHealth.values()[0]); -// marshalOne(AppearanceLinearObjectLaneMarkerVisible.values()[0]); -// marshalOne(AppearanceLinearObjectTankDitchBreach.values()[0]); + marshalOne(AppearanceLinearObjectLaneMarkerVisible.values()[0]); + marshalOne(AppearanceLinearObjectTankDitchBreach.values()[0]); marshalOne(AppearanceNVGMode.values()[0]); marshalOne(AppearanceNavigationPositionBrightness.values()[0]); marshalOne(AppearanceObjectGeneralDamage.values()[0]); marshalOne(AppearanceObjectGeneralIEDPresent.values()[0]); marshalOne(AppearanceObjectGeneralPredistributed.values()[0]); -// marshalOne(AppearanceObjectSpecificBreachState.values()[0]); -// marshalOne(AppearanceObjectSpecificChemicalType.values()[0]); + marshalOne(AppearanceObjectSpecificBreachState.values()[0]); + marshalOne(AppearanceObjectSpecificChemicalType.values()[0]); marshalOne(AppearancePaintScheme.values()[0]); marshalOne(AppearanceSubsurfaceHatch.values()[0]); marshalOne(AppearanceSupplyDeployed.values()[0]); @@ -95,31 +95,31 @@ public class MarshalEnumsTest marshalOne(ArticulatedPartsTypeMetric.values()[0]); marshalOne(AttachedPartDetachedIndicator.values()[0]); marshalOne(AttachedParts.values()[0]); -// marshalOne(AustralianCategoryOverlay.values()[0]); + marshalOne(AustralianCategoryOverlay.values()[0]); marshalOne(BeamStatusBeamState.values()[0]); -// marshalOne(BuildingPaintScheme.values()[0]); + marshalOne(BuildingPaintScheme.values()[0]); marshalOne(CCTTSINCGARSClearChannel.values()[0]); marshalOne(CCTTSINCGARSStartofMessage.values()[0]); - // marshalOne(CIGIExtensionPacketID.values()[0]); + marshalOne(CIGIExtensionPacketID.values()[0]); marshalOne(CapabilityReport.values()[0]); -// marshalOne(Class10SupplyCategoryMaterialtoSupportNonMilitaryPrograms.values()[0]); -// marshalOne(Class11SupplyCategorySuppliesNonDoctrinal.values()[0]); -// marshalOne(Class12SupplyCategorySlingLoadsNonDoctrinal.values()[0]); -// marshalOne(Class1SupplyCategorySubsistence.values()[0]); -// marshalOne(Class2SupplyCategoryClothingIndividualEquipmentToolsAdminSupplies.values()[0]); -// marshalOne(Class3SupplyCategoryPetroleumOilsLubricants.values()[0]); -// marshalOne(Class4SupplyCategoryConstructionMaterials.values()[0]); -// marshalOne(Class6SupplyCategoryPersonnelDemandItems.values()[0]); -// marshalOne(Class7SupplyCategoryMajorItems.values()[0]); -// marshalOne(Class8SupplyCategoryMedicalMaterial.values()[0]); -// marshalOne(Class9SupplyCategoryRepairPartsandComponents.values()[0]); + marshalOne(Class10SupplyCategoryMaterialtoSupportNonMilitaryPrograms.values()[0]); + marshalOne(Class11SupplyCategorySuppliesNonDoctrinal.values()[0]); + marshalOne(Class12SupplyCategorySlingLoadsNonDoctrinal.values()[0]); + marshalOne(Class1SupplyCategorySubsistence.values()[0]); + marshalOne(Class2SupplyCategoryClothingIndividualEquipmentToolsAdminSupplies.values()[0]); + marshalOne(Class3SupplyCategoryPetroleumOilsLubricants.values()[0]); + marshalOne(Class4SupplyCategoryConstructionMaterials.values()[0]); + marshalOne(Class6SupplyCategoryPersonnelDemandItems.values()[0]); + marshalOne(Class7SupplyCategoryMajorItems.values()[0]); + marshalOne(Class8SupplyCategoryMedicalMaterial.values()[0]); + marshalOne(Class9SupplyCategoryRepairPartsandComponents.values()[0]); marshalOne(CollisionType.values()[0]); -// marshalOne(Color.values()[0]); + marshalOne(Color.values()[0]); marshalOne(ComponentVisualDamageStatusSmoke.values()[0]); marshalOne(ComponentVisualDamageStatusSurfaceDamage.values()[0]); marshalOne(Country.values()[0]); marshalOne(CoverShroudStatus.values()[0]); - // marshalOne(CryptoKeyIDCryptoMode.values()[0]); + marshalOne(CryptoKeyIDCryptoMode.values()[0]); marshalOne(DEDamageDescriptionComponentDamageStatus.values()[0]); @@ -152,7 +152,7 @@ public class MarshalEnumsTest marshalOne(EEAttributeStateIndicator.values()[0]); marshalOne(ElectromagneticEmissionBeamFunction.values()[0]); marshalOne(ElectromagneticEmissionStateUpdateIndicator.values()[0]); - // why won't compile? marshalOne(EmitterName.values()[0]); + marshalOne(EmitterName.values()[0]); marshalOne(EmitterSystemFunction.values()[0]); marshalOne(EntityAssociationAssociationStatus.values()[0]); marshalOne(EntityAssociationAssociationType.values()[0]); diff --git a/test/edu/nps/moves/dis7/NullFieldsEntityMarshallTest.java b/test/edu/nps/moves/dis7/NullFieldsEntityMarshallTest.java index 78ee6b470f2203a2ecbad5e9f4fc4f26185df4bb..4c99132da538f00feecfa56914341e9c28c0ac60 100644 --- a/test/edu/nps/moves/dis7/NullFieldsEntityMarshallTest.java +++ b/test/edu/nps/moves/dis7/NullFieldsEntityMarshallTest.java @@ -2,12 +2,6 @@ * Copyright (c) 2008-2020, MOVES Institute, Naval Postgraduate School (NPS). All rights reserved. * This work is provided under a BSD open-source license, see project license.html and license.txt */ -/** - * NullFieldsMarshallTest()); created on May 20, 2019 MOVES Institute Naval Postgraduate School, Monterey, CA, USA www.nps.edu - * - * @author Mike Bailey, jmbailey@edu.nps.edu - * @version $Id$ - */ package edu.nps.moves.dis7; import edu.nps.moves.dis7.entities.usa.platform.land.LAV_105; @@ -15,6 +9,12 @@ import java.nio.ByteBuffer; import org.junit.jupiter.api.*; import static org.junit.jupiter.api.Assertions.*; +/** + * NullFieldsMarshallTest()); created on May 20, 2019 MOVES Institute Naval Postgraduate School, Monterey, CA, USA www.nps.edu + * + * @author Mike Bailey, jmbailey@edu.nps.edu + * @version $Id$ + */ @DisplayName("Null Fields Entity Marshall Test") public class NullFieldsEntityMarshallTest { diff --git a/test/edu/nps/moves/dis7/ObjectTypeMarshallTest.java b/test/edu/nps/moves/dis7/ObjectTypeMarshallTest.java index fbeaa127f34cc6413a390a06c3b7fc3e2bedc724..694b0e19290502f2fec5f989143b967591dcd998 100644 --- a/test/edu/nps/moves/dis7/ObjectTypeMarshallTest.java +++ b/test/edu/nps/moves/dis7/ObjectTypeMarshallTest.java @@ -58,10 +58,10 @@ public class ObjectTypeMarshallTest { Exception ex = null; ByteBuffer bb = ByteBuffer.allocate(100); - //dumpOT(ot); + dumpOT(ot); ot.marshal(bb); assertEquals(4, bb.position(), "Marshalled array should be 4 bytes long"); - //dumpBb(bb); + dumpBb(bb); } private void dumpBb(ByteBuffer bb) @@ -73,11 +73,12 @@ public class ObjectTypeMarshallTest } private void dumpOT(ObjectType ot) - { - System.out.println("ObjectType domain: " + ot.getDomain()); - System.out.println("ObjectType object kind: " + ot.getObjectKind()); - System.out.println("ObjectType category: " + ot.getCategory()); - System.out.println("ObjectType subcategory: " + ot.getSubCategory()); + { + String formatStr = "Name: %s\tDomain: %s\tKind: %s\tCategory: %s\tSubcategory: %s"; + String dom = ot.getDomain().toString(); + String kind = ot.getObjectKind().toString(); + String nm = ot.getClass().getName(); + System.out.println(String.format(formatStr, nm, dom, kind, ot.getCategory(), ot.getSubCategory())); } public static void main(String[] args) diff --git a/test/edu/nps/moves/dis7/PduFactoryTest.java b/test/edu/nps/moves/dis7/PduFactoryTest.java index b39e6f459aab083d2f13c45a00400bb5a0f37454..b7b7efecd5357e0e7709e63f864037589a9ccfa2 100644 --- a/test/edu/nps/moves/dis7/PduFactoryTest.java +++ b/test/edu/nps/moves/dis7/PduFactoryTest.java @@ -4,19 +4,17 @@ */ package edu.nps.moves.dis7; -/** - * - * @author Mike Bailey, jmbailey@edu.nps.edu - * @version $Id$ - */ - import edu.nps.moves.dis7.enumerations.Country; import edu.nps.moves.dis7.utilities.PduFactory; import org.junit.jupiter.api.*; import static org.junit.jupiter.api.Assertions.assertNull; +/** + * + * @author Mike Bailey, jmbailey@edu.nps.edu + * @version $Id$ + */ @DisplayName("Pdu Factory Test") - public class PduFactoryTest { @BeforeAll @@ -129,20 +127,6 @@ public class PduFactoryTest assertNull(ex, "Exception should be null if successful creation of all objects"); } - - String formatStr = "Name: %s\tDomain: %s\tKind: %s\tCategory: %s\tSubcategory: %s"; - - private void dumpObjectType(ObjectType ot) - { - } - - private void actualDumpObjectType(ObjectType ot) - { - String dom = ot.getDomain().toString(); - String kind = ot.getObjectKind().toString(); - String nm = ot.getClass().getName(); - System.out.println(String.format(formatStr, nm, dom, kind, ot.getCategory(), ot.getSubCategory())); - } public static void main(String[] args) { diff --git a/test/edu/nps/moves/dis7/SignalPdusTest.java b/test/edu/nps/moves/dis7/SignalPdusTest.java index 9b87bf19b5c84069cc11a3189d9260dac10244a3..b5f1607dea5577a3e3c874d12bbe098deeefb2a7 100644 --- a/test/edu/nps/moves/dis7/SignalPdusTest.java +++ b/test/edu/nps/moves/dis7/SignalPdusTest.java @@ -13,6 +13,7 @@ import java.nio.ByteBuffer; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.Semaphore; import java.util.logging.Level; import java.util.logging.Logger; import org.junit.jupiter.api.*; @@ -26,10 +27,12 @@ import static org.junit.jupiter.api.Assertions.*; */ @DisplayName("Signal Pdus Test") public class SignalPdusTest { - - static DisThreadedNetIF netif; - static List<Pdu> receivedPdus; - static PduRecorder recorder; + + DisThreadedNetIF netif; + List<Pdu> receivedPdus; + PduRecorder recorder; + + Semaphore mutex; PduFactory pduFac; List<Pdu> sentPdus; byte[] buff; @@ -38,23 +41,21 @@ public class SignalPdusTest { @BeforeAll public static void setUpClass() throws IOException { System.out.println("SignalPdusTest"); - recorder = new PduRecorder(); // default dir - netif = recorder.getDisThreadedNetIF(); - netif.addListener(pdu -> handleReceivedPdu(pdu)); } @AfterAll public static void tearDownClass() throws IOException { - recorder.end(); // kills the netif as well - recorder = null; - netif = null; - - receivedPdus.clear(); - receivedPdus = null; } @BeforeEach - public void setUp() { + public void setUp() throws IOException, InterruptedException { + recorder = new PduRecorder(); // default dir + netif = recorder.getDisThreadedNetIF(); + netif.addListener(pdu -> handleReceivedPdu(pdu)); + + mutex = new Semaphore(1); + mutex.acquire(); + sentPdus = new ArrayList<>(); receivedPdus = new ArrayList<>(); pduFac = new PduFactory(); @@ -89,11 +90,18 @@ public class SignalPdusTest { } @AfterEach - public void tearDown() { + public void tearDown() throws IOException { pduFac = null; sentPdus.clear(); sentPdus = null; + receivedPdus.clear(); + receivedPdus = null; buff = null; + mutex.release(); + mutex = null; + recorder.end(); // kills the netif as well + netif = null; + recorder = null; } @Test @@ -116,37 +124,35 @@ public class SignalPdusTest { Logger.getLogger(SignalPdusTest.class.getName()).log(Level.SEVERE, null, ex); } }); - receivedPdus.clear(); System.out.println("testRoundTripNet finished"); } @Test - public void testRoundTripLog() throws IOException { - - PduPlayer player = new PduPlayer(netif.getMcastGroup(), netif.getDisPort(), Path.of(recorder.getLogFile())); + public void testRoundTripLog() throws IOException, InterruptedException { + + Path path = Path.of(recorder.getLogFile()).getParent(); + PduPlayer player = new PduPlayer(netif.getMcastGroup(), netif.getDisPort(), path); player.sendToNet(false); player.addRawListener(ba -> { - if (ba != null) { - Pdu pdu = pduFac.createPdu(ba); - receivedPdus.add(pdu); - } else { + if (ba != null) + assertNotNull(pduFac.createPdu(ba), "PDU creation failure"); + else { player.end(); - } + mutex.release(); + } }); - player.startResume(); - // Compare - assertEquals(sentPdus, receivedPdus, "Sent and received pdus not identical"); - + mutex.acquire(); System.out.println("testRoundTripLog finished"); } - static private void handleReceivedPdu(Pdu pdu) { - receivedPdus.add(pdu); + private void handleReceivedPdu(Pdu pdu) { + if (receivedPdus != null) + receivedPdus.add(pdu); } - public static void main(String[] args) throws IOException { + public static void main(String[] args) throws IOException, InterruptedException { SignalPdusTest.setUpClass(); SignalPdusTest spt = new SignalPdusTest();