public void SendHelloTest() { bool trigger1 = false; tunnelSocket.InterceptOutgoingPacket(p => { trigger1 = true; Assert.IsTrue(p.HasEPK); }); SecureTunnel t = new SecureTunnel(tunnelSocket); IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 5000); t.CommunicateWith(endpoint); Assert.IsTrue(trigger1); }
public void TestClientServerRaw() { Assert.Ignore("This test is going to be ignored until we really need to support multiple tunnel socket types"); //TunnelSocketRaw raw1 = new TunnelSocketRaw(10000); SecureTunnel st = new SecureTunnel(10000); st.ID = 1; TunnelSocket ts = new TunnelSocketRaw(10001); //this should create a tunnel ts.Start(); //to act as a server st.CommunicateWith(ts.LocalEndPoint); Thread.Sleep(350); UInt32 cid = 1000; DuplexPipe c = (DuplexPipe)st.ControlPipe.OpenNewPipe(PipeType.Duplex, cid); Thread.Sleep(350); IList <UInt64> ids = ts.mTunnelDirectory.GetIDs(); Assert.IsTrue(ids.Count > 0); Assert.IsTrue(st.ID == ids.First()); TunnelBase createdTunnel; Assert.True(ts.mTunnelDirectory.Get(ids.First(), out createdTunnel)); Assert.True(createdTunnel.PipeIDs.Contains(cid), "Tunnel should've had a duplex connection created"); String testMsg = "This is a basic message of greater the 50 charachters length to test the " + "the splitting and reforming of a message."; PipeBase c2; Assert.IsTrue(createdTunnel.Connections.Find(ref cid, out c2)); Assert.IsNotNull(c2); bool trigger1 = false; c.DataReceived += (sender, args) => { var ret = System.Text.Encoding.ASCII.GetString(args.Data); Assert.AreEqual(testMsg, ret); trigger1 = true; }; ((DuplexPipe)c2).Send(testMsg); Thread.Sleep(350); Assert.IsTrue(trigger1, "Message never received"); }