public void Test1()

in rd-net/Test.Lifetimes/Serialization/UnsafeMarshallersTest.cs [19:82]


    public void Test1()
    {
      UnsafeReader reader;
      using (var cookie = UnsafeWriter.NewThreadLocalWriter())
      {
        cookie.Writer.WriteBoolean(false);
        cookie.Writer.WriteBoolean(true);
        cookie.Writer.WriteByte(0);
        cookie.Writer.WriteByte(10);
        cookie.Writer.WriteChar('y');
        cookie.Writer.WriteChar('й');
        cookie.Writer.WriteDecimal(1234.5678m);
        cookie.Writer.WriteDouble(1234.5678d);
        cookie.Writer.WriteInt16(1000);
        cookie.Writer.WriteInt32(1001);
        cookie.Writer.WriteInt64(-1002);

        cookie.Writer.WriteString(null);
        cookie.Writer.WriteString("");
        cookie.Writer.WriteString("abcd = yй");

        cookie.Writer.WriteArray((int[]) (null));
        cookie.Writer.WriteArray(new int[0]);
        cookie.Writer.WriteArray(new[] {1, 2, 3});

        cookie.Writer.WriteCollection(UnsafeWriter.StringDelegate, (string[])null);
        cookie.Writer.WriteCollection(UnsafeWriter.StringDelegate, new string[0]);
        cookie.Writer.WriteCollection(UnsafeWriter.StringDelegate, new[] { "a", "b", "c" });

        cookie.Writer.WriteCollection(UnsafeWriter.StringDelegate, (List<string>)null);
        cookie.Writer.WriteCollection(UnsafeWriter.StringDelegate, new List<string>());
        cookie.Writer.WriteCollection(UnsafeWriter.StringDelegate, new List<string> { "d", "e" });

        reader = UnsafeReader.CreateReader(cookie.Data, cookie.Count);
      }

      Assert.False(reader.ReadBoolean());
      Assert.True(reader.ReadBoolean());
      Assert.AreEqual(0, reader.ReadByte());
      Assert.AreEqual(10, reader.ReadByte());
      Assert.AreEqual('y', reader.ReadChar());
      Assert.AreEqual('й', reader.ReadChar());
      Assert.AreEqual(1234.5678m, reader.ReadDecimal());
      Assert.AreEqual(1234.5678d, reader.ReadDouble(), 1e-6);
      Assert.AreEqual(1000, reader.ReadInt16());
      Assert.AreEqual(1001, reader.ReadInt32());
      Assert.AreEqual(-1002, reader.ReadInt64());

      Assert.Null(reader.ReadString());
      Assert.AreEqual("", reader.ReadString());
      Assert.AreEqual("abcd = yй", reader.ReadString());

      Assert.Null(reader.ReadIntArray());
      Assert.AreEqual(new int[0], reader.ReadIntArray());
      Assert.AreEqual(new[] {1, 2, 3}, reader.ReadIntArray());

      Assert.Null(reader.ReadArray(UnsafeReader.StringDelegate));
      Assert.AreEqual(new string[0], reader.ReadArray(UnsafeReader.StringDelegate));
      Assert.AreEqual(new[] {"a", "b", "c"}, reader.ReadArray(UnsafeReader.StringDelegate));

      Assert.Null(reader.ReadCollection(UnsafeReader.StringDelegate, n => new List<string>(n)));
      CollectionAssert.AreEqual(new List<string>(), reader.ReadCollection(UnsafeReader.StringDelegate, n => new List<string>(n)));
      CollectionAssert.AreEqual(new List<string> {"d", "e"}, reader.ReadCollection(UnsafeReader.StringDelegate, n => new List<string>(n)));
    }