From 6fa24d765c9f121c42553f8ad999455cc4cf710f Mon Sep 17 00:00:00 2001
From: adfis <adfis@DESKTOP-1KB21H8>
Date: Fri, 3 Sep 2021 09:33:09 -0700
Subject: [PATCH] Commit of some old/test files for Homework 3 and Project. Not
 ready to be used yet.

---
 .../ExampleSimulationProgramFisher.java       |  23 ++-
 .../projects/Fisher/CommentPDUFisherTest.java | 131 ++++++++++++++++++
 2 files changed, 147 insertions(+), 7 deletions(-)
 create mode 100644 assignments/src/MV3500Cohort2021JulySeptember/projects/Fisher/CommentPDUFisherTest.java

diff --git a/assignments/src/MV3500Cohort2021JulySeptember/homework3/Fisher/ExampleSimulationProgramFisher.java b/assignments/src/MV3500Cohort2021JulySeptember/homework3/Fisher/ExampleSimulationProgramFisher.java
index 203500b18d..fb4b1ee95a 100644
--- a/assignments/src/MV3500Cohort2021JulySeptember/homework3/Fisher/ExampleSimulationProgramFisher.java
+++ b/assignments/src/MV3500Cohort2021JulySeptember/homework3/Fisher/ExampleSimulationProgramFisher.java
@@ -34,6 +34,13 @@ import java.util.logging.Logger;
  */
 public class ExampleSimulationProgramFisher
 {
+    
+    private      boolean verboseComments         = true;
+    static final String  NETWORK_ADDRESS_DEFAULT  = "239.1.2.3";
+    static final int     NETWORK_PORT_DEFAULT     = 3000;
+    static       String  networkAddress           = NETWORK_ADDRESS_DEFAULT;
+    static       int     networkPort              = NETWORK_PORT_DEFAULT;
+                 String  DEFAULT_OUTPUT_DIRECTORY = "./pduLog";
     /**
      * This runSimulation() method is for you, a
      * programmer-modifiable method for defining and running a new simulation of interest.
@@ -170,7 +177,7 @@ public class ExampleSimulationProgramFisher
     }
     /* **************************** infrastructure code, modification is seldom needed ************************* */
         
-    private boolean verboseComments = true;
+    //private boolean verboseComments = true;
     String narrativeMessage1 = new String();
     String narrativeMessage2 = new String();
     String narrativeMessage3 = new String();
@@ -194,11 +201,12 @@ public class ExampleSimulationProgramFisher
     DisThreadedNetworkInterface.PduListener pduListener;
     Pdu receivedPdu;
     
-    static final String NETWORK_ADDRESS_DEFAULT = "239.1.2.3";
-    static final int    NETWORK_PORT_DEFAULT    = 3000;
-    static       String networkAddress         = NETWORK_ADDRESS_DEFAULT;
-    static       int    networkPort            = NETWORK_PORT_DEFAULT;
-    
+    //static final String NETWORK_ADDRESS_DEFAULT = "239.1.2.3";
+    //static final int    NETWORK_PORT_DEFAULT    = 3000;
+    //static       String networkAddress         = NETWORK_ADDRESS_DEFAULT;
+    //static       int    networkPort            = NETWORK_PORT_DEFAULT;
+     //                String  DEFAULT_OUTPUT_DIRECTORY = "./pduLog";
+
     /**
      * Constructor design goal: additional built-in initialization conveniences can go here
      * to keep student efforts focused on the runSimulation() method.
@@ -403,9 +411,10 @@ public class ExampleSimulationProgramFisher
         System.out.println("Beginning pdu save to directory " + outputDirectory);
         PduRecorder pduRecorder = new PduRecorder(outputDirectory, networkAddress, networkPort); // assumes save
 
+        //
         thisProgram.runSimulation (); // ... your simulation execution code goes in there ...
         
-        //pduRecorder.end();
+        pduRecorder.stop();
 
         thisProgram.tearDownNetworkInterface(); // make sure no processes are left lingering
         
diff --git a/assignments/src/MV3500Cohort2021JulySeptember/projects/Fisher/CommentPDUFisherTest.java b/assignments/src/MV3500Cohort2021JulySeptember/projects/Fisher/CommentPDUFisherTest.java
new file mode 100644
index 0000000000..ff165032ef
--- /dev/null
+++ b/assignments/src/MV3500Cohort2021JulySeptember/projects/Fisher/CommentPDUFisherTest.java
@@ -0,0 +1,131 @@
+package MV3500Cohort2021JulySeptember.projects.Fisher;
+
+import edu.nps.moves.dis7.enumerations.VariableRecordType;
+import edu.nps.moves.dis7.pdus.Pdu;
+import edu.nps.moves.dis7.utilities.PduFactory;
+
+/**
+ *
+ * @author adfis
+ */
+public class CommentPDUFisherTest {
+
+  //BeforeAll
+  public static void setUpClass()
+  {
+    System.out.println("CommentPdusTest");
+  }
+
+  //AfterAll
+  public static void tearDownClass()
+  {
+  }
+
+  //BeforeEach
+  public void setUp()
+  {
+  }
+
+  //AfterEach
+  public void tearDown()
+  {
+  }
+
+  private Pdu receivedPdu;
+
+  //Test
+  public void testRoundTrip()
+  {
+    PduFactory factory = new PduFactory();
+    setUpReceiver();
+    
+    testOne(factory.makeCommentPdu());
+    testOne(factory.makeCommentPdu("123_test_string"));
+    testOne(factory.makeCommentPdu(VariableRecordType.MODEL_TYPE, "456_test with type = modeltype"));
+    testOne(factory.makeCommentPdu("xyz first message","mno second message", "jkl third message"));
+    
+    testOne(factory.makeCommentReliablePdu());
+    testOne(factory.makeCommentReliablePdu("789_test_string"));
+    testOne(factory.makeCommentReliablePdu(VariableRecordType.ACLS_AIRCRAFT_REPORT, "abc_test with type = acls_aircraft_report"));
+    testOne(factory.makeCommentReliablePdu("xyz R first message","mno R second message", "jkl R third message"));   
+  }
+  
+  private void testOne(Pdu pdu)
+  {
+     sendPdu(pdu); // will wait a while
+     assertTrue(receivedPdu != null, "No response from network receive");
+     assertTrue(compare(pdu,receivedPdu),"Comparison failed");
+     receivedPdu = null;
+  }
+  
+  private void sendPdu(Pdu pdu)
+  {
+    try {
+      Thread.sleep(250l); // make sure receiver is listening
+      DisNetworking disnet = new DisNetworking();
+      disnet.sendPdu(pdu);
+
+      Thread.sleep(1000l);
+    }
+    catch (InterruptedException ex) {
+      System.err.println("Error sending Multicast: " + ex.getLocalizedMessage());
+      System.exit(1);
+    }
+  }
+ 
+  private boolean compare(Pdu pdu1, Pdu pdu2)
+  {
+    return pdu1.equals(pdu2);
+  }
+  
+  private void setUpReceiver()
+  {
+    Thread rcvThread = new Thread(() -> {
+        while(true) {
+            receivedPdu = new DisNetworking().receivePdu();  // blocks
+        }
+    });
+
+    rcvThread.setPriority(Thread.NORM_PRIORITY);
+    rcvThread.setDaemon(true);
+    rcvThread.start();
+  }
+
+    /**
+     *
+     * @param args
+     */
+    public static void main(String[] args)
+  {
+    //new CommentPdusTest().testRoundTrip();
+  }
+
+    private void assertTrue(boolean b, String no_response_from_network_receive) {
+        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+    }
+
+    private static class CommentPdusTest {
+
+        public CommentPdusTest() {
+        }
+
+        //private void testRoundTrip() {
+        //    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+       // }
+    }
+
+    private static class DisNetworking {
+
+        public DisNetworking() {
+        }
+
+        private Pdu receivePdu() {
+            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+        }
+
+        private void sendPdu(Pdu pdu) {
+            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+        }
+    }
+}
+
-- 
GitLab