static public void TestTunnelData() { // Test binary tunneling byte[] data = { 1, 2, 3 }; using (var hs = new HttpSocket( new EchoSocket(false, data).socket)) { // We tunnel data... to ourselves! hs.TunnelDataTo(hs, 3); uint r = hs.ReadBinary(); Assert.AreEqual(3, r); Assert.AreEqual(1, hs.Buffer[0]); Assert.AreEqual(2, hs.Buffer[1]); Assert.AreEqual(3, hs.Buffer[2]); } // Test the mixing of line-based and raw-based tunneling byte[] data2 = { (byte)'A', 13, 10, 42, 42, (byte)'B', 13, 10 }; using (var hs = new HttpSocket( new EchoSocket(false, data2).socket)) { // Ditto hs.TunnelDataTo(hs, (uint)data2.Length); string msgA = hs.ReadAsciiLine(); Assert.AreEqual("A", msgA); hs.TunnelDataTo(hs, 2); string msgB = hs.ReadAsciiLine(); Assert.AreEqual("B", msgB); } }
public static void TestTunnelData() { // Test binary tunneling byte[] data = { 1, 2, 3 }; using (var hs = new HttpSocket( new EchoSocket(false, data).socket)) { // We tunnel data... to ourselves! hs.TunnelDataTo(hs, 3); uint r = hs.ReadBinary(); Assert.AreEqual(3, r); Assert.AreEqual(1, hs.Buffer[0]); Assert.AreEqual(2, hs.Buffer[1]); Assert.AreEqual(3, hs.Buffer[2]); } // Test the mixing of line-based and raw-based tunneling byte[] data2 = { (byte)'A', 13, 10, 42, 42, (byte)'B', 13, 10 }; using (var hs = new HttpSocket( new EchoSocket(false, data2).socket)) { // Ditto hs.TunnelDataTo(hs, (uint)data2.Length); string msgA = hs.ReadAsciiLine(); Assert.AreEqual("A", msgA); hs.TunnelDataTo(hs, 2); string msgB = hs.ReadAsciiLine(); Assert.AreEqual("B", msgB); } }