@Test
	public void testStatusMessagesFromTwoConnectionsToDifferentPorts() throws ConnectionTimeout {
		IConnectionList connList = DefaultConnectionList.getSingleton();
		
		/****************************************************************************************************
		 *    F   I   R   S   T      C   O   N   N   E   C   T   I   O   N 
		 */
		DefaultCallback tc_1 = new DefaultCallback();
		HostPort hostPort_1 = new HostPort(ConnectionTestUtils.DEFAULT_HOST_1,ConnectionTestUtils.DEFAULT_PORT_1);
		
		try {
			IConnection returnValue_1 = connList.connect(tc_1, hostPort_1 , null /* no startup commands */);
			assertNotNull("Is the _first_ test program started?  Didn't get a connection. [" + DefaultFactory.getFactory().getMessages().getTestSetupInstructions() + "]");
			
			IConnection myConn_1 = connList.locateConnection(hostPort_1);
			assertNotNull("locateConnection was unable to find the recently-added connection, even though 'CONNECTED' was the last status", myConn_1 );
			
			assertEquals("Testing two different ways of getting the same connection...didn't work", returnValue_1, myConn_1);
			
			assertTrue("This is the first way of testing connection status.  isConnected() getter should be showing true", myConn_1.isConnected());
			assertEquals("But if you need to know more than a boolean, you can look at the exact state", ConnectState.CONNECTED, myConn_1.getMasterCallback().getConnectState());
			
			Assert.assertTrue("did not receive any connection status change events", tc_1.getConnectionStatusMsgs().size()>0 );
			boolean ynLocateMessage = ConnectionTestUtils.locateMessage( tc_1.getConnectionStatusMsgs(),ConnectState.CONNECTED.toString());
			Assert.assertTrue("did not receive a CONNECTED status message", ynLocateMessage );
			Assert.assertFalse(	
					"whoops...most recent message is DISCONNECTED...thought we were still connected.", 
					ConnectionTestUtils.mostRecentMessageIsDisconnect(tc_1.getConnectionStatusMsgs())
					);

			Assert.assertEquals("didn't find the single callback used for this test's single connection", 1, myConn_1.getConnCallbackSize());
			
			/****************************************************************************************************
			 *    S   E   C   O   N   D      C   O   N   N   E   C   T   I   O   N 
			 */

			DefaultCallback tc_2 = new DefaultCallback();
			HostPort hostPort_2 = new HostPort(ConnectionTestUtils.DEFAULT_HOST_2,ConnectionTestUtils.DEFAULT_PORT_2);
			
			IConnection returnValue_2 = connList.connect(tc_2, hostPort_2, null /* no startup commands */);
			IConnection myConn_2 = connList.locateConnection(hostPort_2);
			
			assertNotNull("locateConnection was unable to find the recently-added connection, even though 'CONNECTED' was the last status", myConn_2 );
			
			assertEquals("Testing two different ways of getting the same connection...didn't work", returnValue_2, myConn_2);
			
			
			assertTrue("This is the first way of testing connection status.  isConnected() getter should be showing true", myConn_2.isConnected());
			assertEquals("But if you need to know more than a boolean, you can look at the exact state", ConnectState.CONNECTED, myConn_1.getMasterCallback().getConnectState());
			
			assertTrue("Perhaps the example.*TraceExample isn't started yet?", myConn_2.isConnected());
			assertNotNull("locateConnection was unable to find the recently-added connection, even though 'CONNECTED' was the last status", myConn_2 );
			Assert.assertTrue("did not receive any connection status change events", tc_2.getConnectionStatusMsgs().size()>0 );
			ynLocateMessage = ConnectionTestUtils.locateMessage( tc_2.getConnectionStatusMsgs(),ConnectState.CONNECTED.toString());
			Assert.assertTrue("did not receive a CONNECTED status message", ynLocateMessage );
			Assert.assertFalse(	
					"whoops...most recent message is DISCONNECTED...thought we were still connected.", 
					ConnectionTestUtils.mostRecentMessageIsDisconnect(tc_2.getConnectionStatusMsgs())
					);

//			Assert.assertEquals("didn't find the single callback used for this test's single connection", 1, myConn_2.getConnCallbackSize());
//			assertEquals("2 connections have been established.  expected four synonyms, but didn't find them.  2 pointing to the first connection, 2 pointing to the second).", 4, connList.size());

			/****************************************************************************************************
			 *    D  I   S   C   O   N   N   E   C  T      S   E   C   O   N   D 
			 */
			
			if (myConn_2!=null) {
				connList.disconnect(myConn_2, tc_2);
				assertFalse("shouldn't have indicated that we've already disconnected", myConn_2.isConnected());

				IConnection myConn_2_after_discon = connList.locateConnection(hostPort_2);
				assertNull("After a disconnection, the connection should have been gone from the list", myConn_2_after_discon);
				
			} else {
				Assert.fail("Simple connection test, unable to locate connection in list");
			}

			Assert.assertEquals("Now that the disconnect has happend, all callbacks should have been removed", 0, myConn_2.getConnCallbackSize());
			
			//System.out.println("All connection messages: [" + tc_2.getConnectionStatusMsgs() + "]");
			
			/****************************************************************************************************
			 *    D  I   S   C   O   N   N   E   C  T      F   I   R   S   T
			 */
			if (myConn_1!=null) {
				connList.disconnect(myConn_1, tc_1);
				assertFalse("ConnectionPartTwo did not reflect that we just disconnected", myConn_1.isConnected());
				assertEquals("expected zero connections in the ConnectionList because we just disconnected.", 0, connList.size());
				IConnection myConn_1_after_discon = connList.locateConnection(hostPort_1);
				assertNull("After a disconnection, the connection should have been gone from the list", myConn_1_after_discon);
				
			} else {
				Assert.fail("Simple connection test, unable to locate connection in list");
			}

			Assert.assertEquals("Now that the disconnect has happend, all callbacks should have been removed", 0, myConn_2.getConnCallbackSize());
		} catch (Exception e) {
			e.printStackTrace();
			fail("Exception trying to connect [" + e.getMessage() + "]");
		}
		
		//System.out.println("All connection messages: [" + tc_1.getConnectionStatusMsgs() + "]");

		
	}