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); }
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"); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }