Exemplo n.º 1
0
        public NewPayLoad SendRequest(NewPayLoad payload)
        {
            // get stuck when Ginger close
            while (mProcessingStatus != eProcessingStatus.Ready && mProcessingStatus != eProcessingStatus.ResponseCompleted)
            {
                Thread.Sleep(1);  //TODO: add timeout!!! or??
            }

            OutgoingRequetsesCounter++;
            mRequestProcessingDone.Reset();
            mSendDone.Reset();

            Response = null;

            mProcessingStatus = eProcessingStatus.SendingRequest;

            byte[] b = payload.GetPackage();

            // This is where the actual Payload bytes start being sent
            mSocket.BeginSend(b, 0, b.Length, SocketFlags.None, SendCallback, this);
            bytesOut         += b.Length;
            mProcessingStatus = eProcessingStatus.WaitingForResponse;
            mSendDone.WaitOne();                                          // blocking until send completed

            bool bOK = mRequestProcessingDone.WaitOne(ResponseTimeoutMS); // wait for response - blocking

            if (!bOK)
            {
                throw new Exception("Timeout waiting for response, Payload-" + payload.Name);
            }
            mProcessingStatus = eProcessingStatus.ResponseCompleted;
            mSocket.Blocking  = false;
            return(Response);
        }
Exemplo n.º 2
0
        public void VeryLongString500000()
        {
            //Arrange

            string s0 = "Hello World";

            while (s0.Length < 500000)
            {
                s0 += s0;
            }

            NewPayLoad pl = new NewPayLoad("VeryLongString500000");

            pl.AddValue(s0);
            pl.ClosePackage();

            // Act
            byte[] b = pl.GetPackage();;


            NewPayLoad pl2 = new NewPayLoad(b);
            string     s1  = pl2.GetValueString();

            //Assert
            Assert.AreEqual(s0, s1);
        }
        public void NoStructTest()
        {
            string first = "fffffffffffffffffffffffffff";
            string last  = "lllllllllllllllllllllllllll";
            int    age   = 25;

            //Arrange

            NewPayLoad pl = new NewPayLoad("ppl");

            pl.AddValue(first);
            pl.AddValue(last);
            pl.AddValue(age);
            pl.ClosePackage();

            // Act
            byte[]     b      = pl.GetPackage();
            NewPayLoad pl2    = new NewPayLoad(b);
            string     first2 = pl2.GetValueString();
            string     last2  = pl2.GetValueString();
            int        age2   = pl2.GetValueInt();

            //Assert
            Assert.AreEqual(first, first2, "first");
            Assert.AreEqual(last, last2, "last");
            Assert.AreEqual(age, age2, "age");
        }
        public void StructTest()
        {
            string first = "fffffffffffffffffffffffffff";
            string last  = "lllllllllllllllllllllllllll";
            int    age   = 25;

            //Arrange
            ppl p1 = new ppl()
            {
                first = first, last = last, age = age
            };
            NewPayLoad pl = new NewPayLoad("ppl");

            pl.AddValue <ppl>(p1);
            pl.ClosePackage();

            // destroy the data as string is pointer to memory so we want to verify we didn't copy a pointer
            p1.first = "a";
            p1.last  = "b";
            p1.age   = 1;

            // Act
            byte[]     b   = pl.GetPackage();
            NewPayLoad pl2 = new NewPayLoad(b);
            ppl        p2  = pl2.GetValue <ppl>();

            //Assert
            Assert.AreEqual(first, p2.first, "first");
            Assert.AreEqual(last, p2.last, "last");
            Assert.AreEqual(age, p2.age, "age");
        }
Exemplo n.º 5
0
        public void SpeedTestSimpleStringX100()
        {
            //Arrange
            Stopwatch st = new Stopwatch();

            st.Start();
            string s0 = "ABCDEFGHIJ";

            // Act
            for (int i = 0; i < 100; i++)
            {
                NewPayLoad pl = new NewPayLoad("SpeedTestSimpleStringX100");
                pl.AddValue(s0);
                pl.ClosePackage();

                byte[] b = pl.GetPackage();

                NewPayLoad pl2 = new NewPayLoad(b);
                string     s1  = pl2.GetValueString();
            }

            st.Stop();

            //Assert
            Assert.IsTrue(st.ElapsedMilliseconds < 30);
        }
        public void ListsStructTestJSON()
        {
            //Arrange
            complexStructwithStrings s1 = new complexStructwithStrings()
            {
                a = "aaa", strings = new List <string>()
                {
                    "aaa", "bbb", "ccc"
                }, b = "ggg"
            };

            // Act
            NewPayLoad pl = new NewPayLoad("ll");

            pl.AddJSONValue(s1);
            pl.ClosePackage();

            string s123 = pl.BufferInfo;

            byte[]     b   = pl.GetPackage();
            NewPayLoad pl2 = new NewPayLoad(b);

            complexStructwithStrings s2 = pl2.GetJSONValue <complexStructwithStrings>();

            //Assert
            Assert.AreEqual(s1.a, s2.a);
            Assert.AreEqual(s2.strings.Count, s2.strings.Count);
            Assert.AreEqual(s2.strings[0], s2.strings[0]);
            Assert.AreEqual(s2.strings[1], s2.strings[1]);
            Assert.AreEqual(s2.strings[2], s2.strings[2]);
            Assert.AreEqual(s1.b, s2.b);
        }
Exemplo n.º 7
0
        public void ComplexEnumStringsInts()
        {
            //Arrange
            int       vala  = 123;
            int       valb  = 545;
            string    valsa = "String1";
            string    valsb = "ZXCVFDSW";
            eLocateBy loc   = eLocateBy.ByName;

            NewPayLoad pl = new NewPayLoad("ComplexEnumStringsInts");

            pl.AddValue(vala);
            pl.AddValue(valb);
            pl.AddValue(valsa);
            pl.AddValue(valsb);
            pl.AddEnumValue(loc);
            pl.ClosePackage();

            // Act
            byte[] b = pl.GetPackage();

            NewPayLoad pl2    = new NewPayLoad(b);
            int        vala2  = pl2.GetValueInt();
            int        valb2  = pl2.GetValueInt();
            string     valsa2 = pl2.GetValueString();
            string     valsb2 = pl2.GetValueString();
            string     Loc2   = pl2.GetValueEnum();

            //Assert
            Assert.AreEqual(vala, vala2);
            Assert.AreEqual(valb, valb2);
            Assert.AreEqual(valsa, valsa2);
            Assert.AreEqual(valsb, valsb2);
            Assert.AreEqual(loc.ToString(), Loc2);
        }
Exemplo n.º 8
0
        public void ComplexStringWith2Ints()
        {
            //Arrange
            int    vala = 1237435;
            int    valb = -185;
            string vals = "Not so long String";

            NewPayLoad pl = new NewPayLoad("ComplexStringWith2Ints");

            pl.AddValue(vala);
            pl.AddValue(valb);
            pl.AddValue(vals);
            pl.ClosePackage();

            // Act
            byte[] b = pl.GetPackage();

            NewPayLoad pl2   = new NewPayLoad(b);
            int        vala2 = pl2.GetValueInt();
            int        valb2 = pl2.GetValueInt();
            string     vals2 = pl2.GetValueString();

            //Assert
            Assert.AreEqual(vala, vala2);
            Assert.AreEqual(valb, valb2);
            Assert.AreEqual(vals, vals2);
        }
Exemplo n.º 9
0
        public void UTF16String()
        {
            //Arrange
            string s0 = "Hello World גךעחךגכ ■N╜ !@#$!@#$% ÜÑ├µΦ";

            NewPayLoad pl = new NewPayLoad("UTF16String");

            pl.AddStringUTF16(s0);
            pl.ClosePackage();

            // Act
            byte[] b = pl.GetPackage();

            NewPayLoad pl2 = new NewPayLoad(b);
            string     s1  = pl2.GetStringUTF16();

            //Assert
            Assert.AreEqual(s0, s1);
        }
Exemplo n.º 10
0
        public void IntMaxValue()
        {
            //Arrange
            int val = Int16.MaxValue;

            NewPayLoad pl = new NewPayLoad("IntMaxValue");

            pl.AddValue(val);
            pl.ClosePackage();

            // Act
            byte[] b = pl.GetPackage();

            NewPayLoad pl2  = new NewPayLoad(b);
            int        val2 = pl2.GetValueInt();

            //Assert
            Assert.AreEqual(val, val2);
        }
Exemplo n.º 11
0
        public void NegativeInt()
        {
            //Arrange
            int val = -123;

            NewPayLoad pl = new NewPayLoad("NegativeInt");

            pl.AddValue(val);
            pl.ClosePackage();

            // Act
            byte[] b = pl.GetPackage();

            NewPayLoad pl2  = new NewPayLoad(b);
            int        val2 = pl2.GetValueInt();

            //Assert
            Assert.AreEqual(val, val2);
        }
Exemplo n.º 12
0
        public void StringWithSpecialCharsUTF8()
        {
            //Arrange
            string s0 = @"ABC!@#$%^&*(){}[]~|\/<>,.~`XYZ";

            NewPayLoad pl = new NewPayLoad("StringWithSpecialChars");

            pl.AddValue(s0);
            pl.ClosePackage();

            // Act
            byte[] b = pl.GetPackage();


            NewPayLoad pl2 = new NewPayLoad(b);
            string     s1  = pl2.GetValueString();

            //Assert
            Assert.AreEqual(s0, s1);
        }
Exemplo n.º 13
0
        public void NullTest()
        {
            //Arrange
            string s0 = null;

            NewPayLoad pl = new NewPayLoad("NullString");

            pl.AddValue(s0);
            pl.ClosePackage();

            // Act
            byte[] b = pl.GetPackage();

            NewPayLoad pl2 = new NewPayLoad(b);
            string     s1  = pl2.GetValueString();

            //Assert
            Assert.AreEqual(s0, s1);
            Assert.AreEqual(pl.Name, pl2.Name);
        }
Exemplo n.º 14
0
        public void GuidTest()
        {
            //Arrange
            Guid guid = System.Guid.NewGuid();


            NewPayLoad pl = new NewPayLoad("SimpleGuid");

            pl.AddValue(guid);
            pl.ClosePackage();

            // Act
            byte[] b = pl.GetPackage();

            NewPayLoad pl2 = new NewPayLoad(b);
            Guid       g1  = pl2.GetGuid();

            //Assert
            Assert.AreEqual(guid.ToString(), g1.ToString());
            Assert.AreEqual(pl.Name, pl2.Name);
        }
Exemplo n.º 15
0
        public void SimpleString()
        {
            //Arrange
            string s0 = "Hello World";

            NewPayLoad pl = new NewPayLoad("SimpleString");

            pl.AddValue(s0);
            pl.ClosePackage();

            // Act
            byte[] b = pl.GetPackage();


            NewPayLoad pl2 = new NewPayLoad(b);
            string     s1  = pl2.GetValueString();

            //Assert
            Assert.AreEqual(s0, s1);
            Assert.AreEqual(pl.Name, pl2.Name);
        }
Exemplo n.º 16
0
        public void PayLoadList()
        {
            //Arrange
            NewPayLoad pl = new NewPayLoad("Package wth list of Payloads");

            List <NewPayLoad> list = new List <NewPayLoad>();

            NewPayLoad pl1 = new NewPayLoad("PL1");

            pl1.AddValue("ABC");
            pl1.AddValue("DEF");
            pl1.ClosePackage();
            list.Add(pl1);

            NewPayLoad pl2 = new NewPayLoad("PL2");

            pl2.AddValue("GHI");
            pl2.AddValue("JKL");
            pl2.ClosePackage();
            list.Add(pl2);

            pl.AddListPayLoad(list);
            pl.ClosePackage();


            // Act
            byte[]            b     = pl.GetPackage();
            NewPayLoad        plc   = new NewPayLoad(b);
            List <NewPayLoad> list2 = plc.GetListPayLoad();

            //Assert
            Assert.AreEqual(2, list2.Count, "list2.Count=2");

            Assert.AreEqual("PL1", list2[0].Name, "list2[0].Name =PL1");
            Assert.AreEqual("PL2", list2[1].Name, "list2[1].Name =PL2");

            //Assert.AreEqual(pl1.Name, pl2.Name);
        }
Exemplo n.º 17
0
        public void PayloadinPayload()
        {
            //Arrange
            NewPayLoad plin = new NewPayLoad("plin", "AAA", "BBB", "CCC");

            // Act
            NewPayLoad pl = new NewPayLoad("master", "123", plin);

            byte[]     b   = pl.GetPackage();
            NewPayLoad pl2 = new NewPayLoad(b);

            // Extract
            string     v123  = pl2.GetValueString();
            NewPayLoad plin2 = pl2.ReadPayload();

            string aaa = plin2.GetValueString();
            string bbb = plin2.GetValueString();
            string ccc = plin2.GetValueString();

            //Assert
            Assert.AreEqual("plin", plin2.Name);
            Assert.AreEqual("AAA", aaa);
        }
        public void NumsStructTest()
        {
            //Arrange
            nums p1 = new nums()
            {
                num1 = 7, num2 = 5.123F, num3 = 7.344F
            };
            NewPayLoad pl = new NewPayLoad("ppl");

            pl.AddValue <nums>(p1);
            pl.ClosePackage();

            string s134 = pl.BufferInfo;

            // Act
            byte[]     b   = pl.GetPackage();
            NewPayLoad pl2 = new NewPayLoad(b);
            nums       p2  = pl2.GetValue <nums>();

            //Assert
            Assert.AreEqual(p1.num1, p2.num1);
            Assert.AreEqual(p1.num2, p2.num2);
            Assert.AreEqual(p1.num3, p2.num3);
        }