示例#1
0
    public void TestGetSingleTypes()
    {
      var emptyIpcData = new IpcData();
      emptyIpcData.Add( "Hello" );
      emptyIpcData.Add( "World" );

      // check the values.
      Assert.AreEqual( "Hello", emptyIpcData.Get<string>(0));
      Assert.AreEqual( "World", emptyIpcData.Get<string>(1));
    }
示例#2
0
    public void TestTheArgumentCountIsValid()
    {
      var emptyIpcData = new IpcData();

      Assert.AreEqual( (uint)0, emptyIpcData.ArgumentsCount);
      emptyIpcData.Add("Hello");
      emptyIpcData.Add("World");
      Assert.AreEqual( (uint)2 , emptyIpcData.ArgumentsCount );
      emptyIpcData.Add(42);
      Assert.AreEqual( (uint)3, emptyIpcData.ArgumentsCount);
    }
示例#3
0
    public void TestGetDifferentTypes()
    {
      var emptyIpcData = new IpcData();
      emptyIpcData.Add("Hello");
      emptyIpcData.Add("World");
      emptyIpcData.Add( 42 );
      emptyIpcData.Add( "Something", false );

      // check the values.
      Assert.AreEqual("Hello", emptyIpcData.Get<string>(0));
      Assert.AreEqual("World", emptyIpcData.Get<string>(1));
      Assert.AreEqual(42, emptyIpcData.Get<int>(2));
      Assert.AreEqual("Something", emptyIpcData.Get<string>(3));
    }
示例#4
0
    public void TestTryingToGetANonEmptyItemOutOfRange()
    {
      var emptyIpcData = new IpcData();
      emptyIpcData.Add(42);

      Assert.AreEqual(42, emptyIpcData.Get<int>(0));

      //  out of range
      emptyIpcData.Get<object>(1);
    }
示例#5
0
 public void TestGetBooleanNeitherTrueNorFalseString()
 {
   var emptyIpcData = new IpcData();
   emptyIpcData.Add("NotAValidString");
   emptyIpcData.Get<bool>(0);
 }
示例#6
0
    public void TestIsNumericPastGuidAndInteger()
    {
      var random = new Random();
      var r1 = random.Next(0, Int32.MaxValue);

      var emptyIpcData = new IpcData();
      emptyIpcData.Add("Hello1");
      emptyIpcData.Add(r1);
      emptyIpcData.Add("Hello2");

      Assert.IsTrue(emptyIpcData.IsString(0));
      Assert.IsFalse(emptyIpcData.IsString(1));
      Assert.IsTrue(emptyIpcData.IsString(2));

      Assert.AreEqual("Hello1", emptyIpcData.Get<string>(0));
      Assert.AreEqual("Hello2", emptyIpcData.Get<string>(2));
    }
示例#7
0
 public void TestGetBooleanTrueString()
 {
   var emptyIpcData = new IpcData();
   emptyIpcData.Add("True");
   Assert.IsTrue(emptyIpcData.Get<bool>(0));
 }
示例#8
0
 public void TestGetBooleanFalseString()
 {
   var emptyIpcData = new IpcData();
   emptyIpcData.Add("False");
   Assert.IsFalse(emptyIpcData.Get<bool>(0));
 }
示例#9
0
 public void TestGetBooleanFromIntegerEqualOne()
 {
   var emptyIpcData = new IpcData();
   emptyIpcData.Add(1);
   Assert.IsTrue(emptyIpcData.Get<bool>(0)); 
 }
示例#10
0
    public void TestGetBooleanFromIntegerNotEqualOne()
    {
      var random = new Random();
      var r = random.Next(2, Int32.MaxValue);
      if(random.Next(0, 1) == 1)
      {
        r *= -1;
      }

      var emptyIpcData = new IpcData();
      emptyIpcData.Add(1);
      Assert.IsTrue(emptyIpcData.Get<bool>(0));
    }
示例#11
0
    public void TestFromInt32CanBeConvertedToInt64()
    {
      var ipc = new IpcData();

      var random = new Random();
      var m = (int)(random.NextDouble() * int.MaxValue);
      var n = (long)(random.NextDouble() * long.MaxValue);

      ipc.Add(m);
      ipc.Add(n);

      Assert.AreEqual(m, ipc.Get<int>(0));
      Assert.AreEqual(m, ipc.Get<long>(0)); // as a long
      Assert.AreEqual(n, ipc.Get<long>(1));
    }
示例#12
0
    public void TestTryingtogetANumberWhenTheArgumentIsAString()
    {
      var emptyIpcData = new IpcData();
      emptyIpcData.Add("Hello");

      // this is not a number.
      emptyIpcData.Get<long>(0);
    }
示例#13
0
    public void TestFromInt32ToPtrAndBack()
    {
      var ipc = new IpcData();

      var uuid = ipc.Guid;
      var random = new Random();
      var n = (Int32)random.Next(0, Int32.MaxValue);

      ipc.Add(Int32.MaxValue);
      ipc.Add(n);

      var payload = ipc.GetPtr();
      var dataBlockSize = ipc.GetSize();
      var byteArray = new byte[dataBlockSize];

      System.Runtime.InteropServices.Marshal.Copy(payload, byteArray, 0, dataBlockSize);
      var ipc2 = new IpcData(byteArray);

      Assert.AreEqual(uuid, ipc2.Guid);
      Assert.AreEqual(Int32.MaxValue, ipc2.Get<Int32>(0));
      Assert.AreEqual(n, ipc2.Get<Int32>(1));
    }
示例#14
0
    public void TestIsNumericPastGuidAndStrings()
    {
      var random = new Random();
      var r1 = random.Next(0, int.MaxValue);
      var r2 = random.Next(0, int.MaxValue);

      var emptyIpcData = new IpcData();
      emptyIpcData.Add(r1);
      emptyIpcData.Add("Hello");
      emptyIpcData.Add(r2);

      Assert.IsTrue(emptyIpcData.IsInt(0));
      Assert.IsFalse(emptyIpcData.IsInt(1));
      Assert.IsTrue(emptyIpcData.IsInt(2));

      Assert.AreEqual(r1, emptyIpcData.Get<int>(0));
      Assert.AreEqual(r2, emptyIpcData.Get<int>(2));
    }
示例#15
0
    public void TestIsStringPastGuid()
    {
      var emptyIpcData = new IpcData();
      emptyIpcData.Add("Hello");

      Assert.IsFalse(emptyIpcData.IsInt(0));
      Assert.IsTrue(emptyIpcData.IsString(0));
    }
示例#16
0
    public void TestIsNumericPastGuid()
    {
      var emptyIpcData = new IpcData();
      emptyIpcData.Add(12);

      Assert.IsTrue(emptyIpcData.IsInt(0));
      Assert.IsFalse(emptyIpcData.IsString(0));
    }
示例#17
0
    public void TestANumberCanBeCastToAString()
    {
      var emptyIpcData = new IpcData();
      emptyIpcData.Add( 12 );

      // we can cast the number to a string.
      Assert.AreEqual( "12", emptyIpcData.Get<string>(0) );
    }
示例#18
0
    public void TestFromInt64And32ToPtrAndBack()
    {
      var ipc = new IpcData();

      var random = new Random();
      var m = (int)(random.NextDouble() * int.MaxValue);
      var n = (long)(random.NextDouble() * long.MaxValue);

      var uuid = ipc.Guid;
      ipc.Add(m);
      ipc.Add(n);

      var payload = ipc.GetPtr();
      var dataBlockSize = ipc.GetSize();
      var byteArray = new byte[dataBlockSize];

      System.Runtime.InteropServices.Marshal.Copy(payload, byteArray, 0, dataBlockSize);
      var ipc2 = new IpcData(byteArray);

      Assert.AreEqual(uuid, ipc2.Guid);
      Assert.AreEqual(m, ipc2.Get<int>(0));
      Assert.AreEqual(n, ipc2.Get<long>(1));
    }
示例#19
0
    public void TestIsNumericInvalidIndex()
    {
      var emptyIpcData = new IpcData();
      emptyIpcData.Add(12);
      emptyIpcData.Add("Hello");

      emptyIpcData.IsInt(2);
    }
示例#20
0
    public void TestIsStringInvalidIndex()
    {
      var emptyIpcData = new IpcData();
      emptyIpcData.Add(12);
      emptyIpcData.Add("Hello");

      emptyIpcData.IsString(2);
    }
示例#21
0
    public void TestCastingToDifferentNumbers()
    {
      var emptyIpcData = new IpcData();
      emptyIpcData.Add(42);
      emptyIpcData.Add(52);
      emptyIpcData.Add(67);

      // check the values.
      Assert.AreEqual((long)42, emptyIpcData.Get<long>(0));
      Assert.AreEqual((uint)52, emptyIpcData.Get<uint>(1));
      Assert.AreEqual((int)67, emptyIpcData.Get<int>(2));
      Assert.AreEqual((short)67, emptyIpcData.Get<short>(2));

      Assert.AreEqual((double)67, emptyIpcData.Get<double>(2));
      Assert.AreEqual((float)67, emptyIpcData.Get<float>(2));
    }