Esempio n. 1
0
        public void DoTest()
        {
            int i = 0;

start:

            NetworkSwitchRequest request = new NetworkSwitchRequest();

            request.ESP_SuccessFlag = (i == 0) ? EaseSuccessFlag.SuccessExpress : EaseSuccessFlag.Success;
            request.ESP_CustomeCode = 0;

            request.ESP_TransferData = Encoding.UTF8.GetBytes("123456");

            if (request.ESP_SuccessFlag == EaseSuccessFlag.Success)
            {
                byte[] testLinkBytes = Encoding.UTF8.GetBytes("http://118.123.205.218:888/images/testpic.gif");
                #region 设置完整参数
                request.ESP_SocketParamCount = 3;
                request.ESP_EncodeType       = EaseEncode.UTF8;
                request.ESP_DataIndex        = 0;
                request.ESP_DateEndIndex     = 0;
                request.ESP_AppServerID      = 1;
                request.ESP_Link             = new EaseString {
                    ESP_Data = testLinkBytes, ESP_Length = (ushort)testLinkBytes.Length
                };
                request.ESP_TransferLength = request.ESP_TransferData.Length;
                #endregion
            }

            if (request.ESP_SuccessFlag == EaseSuccessFlag.SuccessExpress)
            {
                request.ESP_LeaveLength = request.ESP_TransferData.Length;
            }
            else
            {
                request.ESP_LeaveLength = 2 + 1 + 4 + 4 + 2 + 4 + (int)request.ESP_Link.GetContentLength(); //后续长度
            }
            //Console.WriteLine("后续长度:{0}", request.ESP_LeaveLength);

            byte[] networkBytes = request.GetNetworkBytes();

            //Console.WriteLine("Total:{0}\r\n{1}", networkBytes.ESP_Length, networkBytes.GetHexViewString());

            NetworkSwitchRequest request2 = new NetworkSwitchRequest();
            MemoryStream         ms       = new MemoryStream(networkBytes);
            ms.Position = 0;
            request2.BindFromNetworkStream(ms, 0, false);

            //Console.WriteLine("########################################");
            //Console.WriteLine(request2.GetNetworkBytes().GetHexViewString());
            //Console.WriteLine("########################################");

            ms.Dispose();

            Assert.That(SpecUtil.AreEqual(request2.GetNetworkBytes(), networkBytes));

            i++;

            if (i < 2)
            {
                //Console.WriteLine("\r\n下一次测试:\r\n");
                goto start;
            }
        }