Esempio n. 1
0
        public void ToAmorphousRow_FromString_Double()
        {
            var str = @"{Double_1: 123.456, DoubleArray_1: [1.79769E+308, 0, -1.7976931E+308], DoubleNArray_1: [null, 0, 3.482347E+38]}";

            var row = new AmorphousRow(Schema.GetForTypedRow(typeof(RowWithArrays)));
            JSONReader.ToRow(row, str.JSONToDataObject() as JSONDataMap);

            Assert.AreEqual(123.456D, row.AmorphousData["Double_1"]);

            var array = row.AmorphousData["DoubleArray_1"] as JSONDataArray;
            Assert.IsNotNull(array);
            Assert.AreEqual(3, array.Count);
            Assert.AreEqual(1.79769E+308, array[0]);
            Assert.AreEqual(0, array[1]);
            Assert.AreEqual(-1.7976931E+308, array[2]);

            var narray = row.AmorphousData["DoubleNArray_1"] as JSONDataArray;
            Assert.IsNotNull(narray);
            Assert.AreEqual(3, narray.Count);
            Assert.AreEqual(null, narray[0]);
            Assert.AreEqual(0, narray[1]);
            Assert.AreEqual(3.482347E+38, narray[2]);
        }
Esempio n. 2
0
        public void ToAmorphousRow_FromString_Bytes()
        {
            var str = @"{UInt8_1: 255, UInt8Array_1: [1, 0, 255], UInt8NArray_1: [null, 0, 124]}";

            var row = new AmorphousRow(Schema.GetForTypedRow(typeof(RowWithArrays)));
            JSONReader.ToRow(row, str.JSONToDataObject() as JSONDataMap);

            Assert.AreEqual(255, row.AmorphousData["UInt8_1"]);

            var array = row.AmorphousData["UInt8Array_1"] as JSONDataArray;
            Assert.IsNotNull(array);
            Assert.AreEqual(3, array.Count);
            Assert.AreEqual(1, array[0]);
            Assert.AreEqual(0, array[1]);
            Assert.AreEqual(255, array[2]);

            var narray = row.AmorphousData["UInt8NArray_1"] as JSONDataArray;
            Assert.IsNotNull(narray);
            Assert.AreEqual(3, narray.Count);
            Assert.AreEqual(null, narray[0]);
            Assert.AreEqual(0, narray[1]);
            Assert.AreEqual(124, narray[2]);
        }
Esempio n. 3
0
        public void ToAmorphousRow_FromString_GDID()
        {
            var gdid1 = new GDID(4000000000, 8000000000);
            var gdid2 = new GDID(100002, 1, 8000000000);
            var gdid3 = new GDID(123, 123456789);
            var str = @"{" + @"GDID_1: ""{0}"", GDIDArray_1: [""{0}"", ""{1}"", ""{2}""], GDIDNArray_1: [""{0}"", null, ""{2}""]".Args(gdid1, gdid2, gdid3) + "}";

            var row = new AmorphousRow(Schema.GetForTypedRow(typeof(RowWithArrays)));
            JSONReader.ToRow(row, str.JSONToDataObject() as JSONDataMap);

            Assert.AreEqual(gdid1, row.AmorphousData["GDID_1"].AsGDID());

            var array = row.AmorphousData["GDIDArray_1"] as JSONDataArray;
            Assert.IsNotNull(array);
            Assert.AreEqual(3, array.Count);
            Assert.AreEqual(gdid1, array[0].AsGDID());
            Assert.AreEqual(gdid2, array[1].AsGDID());
            Assert.AreEqual(gdid3, array[2].AsGDID());

            var narray = row.AmorphousData["GDIDNArray_1"] as JSONDataArray;
            Assert.IsNotNull(narray);
            Assert.AreEqual(3, narray.Count);
            Assert.AreEqual(gdid1, narray[0].AsGDID());
            Assert.AreEqual(null, narray[1]);
            Assert.AreEqual(gdid3, narray[2].AsGDID());
        }
Esempio n. 4
0
        public void ToAmorphousRow_FromString_UShorts()
        {
            var str = @"{UInt16_1: 123, UInt16Array_1: [65535, 0, 12345], UInt16NArray_1: [null, 0, 65535]}";

            var row = new AmorphousRow(Schema.GetForTypedRow(typeof(RowWithArrays)));
            JSONReader.ToRow(row, str.JSONToDataObject() as JSONDataMap);

            Assert.AreEqual(123, row.AmorphousData["UInt16_1"]);

            var array = row.AmorphousData["UInt16Array_1"] as JSONDataArray;
            Assert.IsNotNull(array);
            Assert.AreEqual(3, array.Count);
            Assert.AreEqual(ushort.MaxValue, array[0]);
            Assert.AreEqual(0, array[1]);
            Assert.AreEqual(12345, array[2]);

            var narray = row.AmorphousData["UInt16NArray_1"] as JSONDataArray;
            Assert.IsNotNull(narray);
            Assert.AreEqual(3, narray.Count);
            Assert.AreEqual(null, narray[0]);
            Assert.AreEqual(0, narray[1]);
            Assert.AreEqual(ushort.MaxValue, narray[2]);
        }
Esempio n. 5
0
        public void ToAmorphousRow_FromString_Strings()
        {
            var str = @"{ Name_1: ""Orlov"", StringArray_1: [""a"", null, ""b""]}";

            var row = new AmorphousRow(Schema.GetForTypedRow(typeof(RowWithArrays)));
            JSONReader.ToRow(row, str.JSONToDataObject() as JSONDataMap);

            Assert.AreEqual("Orlov", row.AmorphousData["Name_1"]);

            var array = row.AmorphousData["StringArray_1"] as JSONDataArray;
            Assert.IsNotNull(array);
            Assert.AreEqual(3, array.Count);
            Assert.AreEqual("a", array[0]);
            Assert.AreEqual(null, array[1]);
            Assert.AreEqual("b", array[2]);
        }
Esempio n. 6
0
        public void ToAmorphousRow_FromString_ULong()
        {
            var str = @"{UInt64_1: 123, UInt64Array_1: [18446744073709551615, 0, 124], UInt64NArray_1: [null, 0, 18446744073709551615]}";

            var row = new AmorphousRow(Schema.GetForTypedRow(typeof(RowWithArrays)));
            JSONReader.ToRow(row, str.JSONToDataObject() as JSONDataMap);

            Assert.AreEqual(123, row.AmorphousData["UInt64_1"]);

            var array = row.AmorphousData["UInt64Array_1"] as JSONDataArray;
            Assert.IsNotNull(array);
            Assert.AreEqual(3, array.Count);
            Assert.AreEqual(ulong.MaxValue, array[0]);
            Assert.AreEqual(0, array[1]);
            Assert.AreEqual(124, array[2]);

            var narray = row.AmorphousData["UInt64NArray_1"] as JSONDataArray;
            Assert.IsNotNull(narray);
            Assert.AreEqual(3, narray.Count);
            Assert.AreEqual(null, narray[0]);
            Assert.AreEqual(0, narray[1]);
            Assert.AreEqual(ulong.MaxValue, narray[2]);
        }
Esempio n. 7
0
        public void ToAmorphousRow_FromString_Single()
        {
            var str = @"{Single_1: 123.456, SingleArray_1: [3.4028E+38, 0, -3.402E+38], SingleNArray_1: [null, 0, 3.4028]}";

            var row = new AmorphousRow(Schema.GetForTypedRow(typeof(RowWithArrays)));
            JSONReader.ToRow(row, str.JSONToDataObject() as JSONDataMap);

            Assert.AreEqual(123.456F, row.AmorphousData["Single_1"].AsFloat());

            var array = row.AmorphousData["SingleArray_1"] as JSONDataArray;
            Assert.IsNotNull(array);
            Assert.AreEqual(3, array.Count);
            Assert.AreEqual(3.4028E+38F, array[0].AsFloat());
            Assert.AreEqual(0, array[1]);
            Assert.AreEqual(-3.402E+38F, array[2].AsFloat());

            var narray = row.AmorphousData["SingleNArray_1"] as JSONDataArray;
            Assert.IsNotNull(narray);
            Assert.AreEqual(3, narray.Count);
            Assert.AreEqual(null, narray[0]);
            Assert.AreEqual(0, narray[1].AsFloat());
            Assert.AreEqual(3.4028F, narray[2].AsFloat());
        }
Esempio n. 8
0
        public void ToAmorphousRow_FromString_Row()
        {
            var str =
            @"{
                Row_1: { Name: ""Ivan"", Int32Array: [1, 0, -12345] },
                RowArray_1:
                    [
                        { Name: ""John"", Int8: 123 },
                        { Name: ""Anna"", Single: 123.567 }
                    ]
            }";

            var row = new AmorphousRow(Schema.GetForTypedRow(typeof(RowWithArrays)));
            JSONReader.ToRow(row, str.JSONToDataObject() as JSONDataMap);

            var innerRow = row.AmorphousData["Row_1"] as JSONDataMap;
            Assert.IsNotNull(innerRow);
            Assert.AreEqual("Ivan", innerRow["Name"]);

            var innerRowArray = innerRow["Int32Array"] as JSONDataArray;
            Assert.IsNotNull(innerRowArray);
            Assert.AreEqual(3, innerRowArray.Count);
            Assert.AreEqual(1, innerRowArray[0]);
            Assert.AreEqual(0, innerRowArray[1]);
            Assert.AreEqual(-12345, innerRowArray[2]);

            var innerArray = row.AmorphousData["RowArray_1"] as JSONDataArray;
            Assert.IsNotNull(innerArray);
            Assert.AreEqual(2, innerArray.Count);

            var innerArrayRow0 = innerArray[0] as JSONDataMap;
            Assert.IsNotNull(innerArrayRow0);
            Assert.AreEqual("John", innerArrayRow0["Name"]);
            Assert.AreEqual(123, innerArrayRow0["Int8"]);

            var innerArrayRow1 = innerArray[1] as JSONDataMap;
            Assert.IsNotNull(innerArrayRow1);
            Assert.AreEqual("Anna", innerArrayRow1["Name"]);
            Assert.AreEqual(123.567F, innerArrayRow1["Single"].AsFloat());
        }
Esempio n. 9
0
        public void ToAmorphousRow_FromString_Long()
        {
            var str = @"{Int64_1: 123, Int64Array_1: [9223372036854775807, 0, -9223372036854775808], Int64NArray_1: [null, 0, 9223372036854775807]}";

            var row = new AmorphousRow(Schema.GetForTypedRow(typeof(RowWithArrays)));
            JSONReader.ToRow(row, str.JSONToDataObject() as JSONDataMap);

            Assert.AreEqual(123, row.AmorphousData["Int64_1"]);

            var array = row.AmorphousData["Int64Array_1"] as JSONDataArray;
            Assert.IsNotNull(array);
            Assert.AreEqual(3, array.Count);
            Assert.AreEqual(long.MaxValue, array[0]);
            Assert.AreEqual(0, array[1]);
            Assert.AreEqual(long.MinValue, array[2]);

            var narray = row.AmorphousData["Int64NArray_1"] as JSONDataArray;
            Assert.IsNotNull(narray);
            Assert.AreEqual(3, narray.Count);
            Assert.AreEqual(null, narray[0]);
            Assert.AreEqual(0, narray[1]);
            Assert.AreEqual(long.MaxValue, narray[2]);
        }
Esempio n. 10
0
        public void ToAmorphousRow_FromString_Int()
        {
            var str = @"{Int32_1: 123, Int32Array_1: [2147483647, 0, -2147483648], Int32NArray_1: [null, 0, 2147483647]}";

            var row = new AmorphousRow(Schema.GetForTypedRow(typeof(RowWithArrays)));
            JSONReader.ToRow(row, str.JSONToDataObject() as JSONDataMap);

            Assert.AreEqual(123, row.AmorphousData["Int32_1"]);

            var array = row.AmorphousData["Int32Array_1"] as JSONDataArray;
            Assert.IsNotNull(array);
            Assert.AreEqual(3, array.Count);
            Assert.AreEqual(int.MaxValue, array[0]);
            Assert.AreEqual(0, array[1]);
            Assert.AreEqual(int.MinValue, array[2]);

            var narray = row.AmorphousData["Int32NArray_1"] as JSONDataArray;
            Assert.IsNotNull(narray);
            Assert.AreEqual(3, narray.Count);
            Assert.AreEqual(null, narray[0]);
            Assert.AreEqual(0, narray[1]);
            Assert.AreEqual(int.MaxValue, narray[2]);
        }
Esempio n. 11
0
        public void ToAmorphousRow_FromString_Guid()
        {
            var guid1 = Guid.NewGuid();
            var guid2 = Guid.NewGuid();
            var guid3 = Guid.NewGuid();
            var str = "{" + @"Guid_1: ""{0}"", GuidArray_1: [""{0}"", ""{1}"", ""{2}""], GuidNArray_1: [""{0}"", null, ""{2}""]".Args(guid1, guid2, guid3) + "}";

            var row = new AmorphousRow(Schema.GetForTypedRow(typeof(RowWithArrays)));
            JSONReader.ToRow(row, str.JSONToDataObject() as JSONDataMap);

            Assert.AreEqual(guid1, row.AmorphousData["Guid_1"].AsGUID(Guid.Empty));

            var array = row.AmorphousData["GuidArray_1"] as JSONDataArray;
            Assert.IsNotNull(array);
            Assert.AreEqual(3, array.Count);
            Assert.AreEqual(guid1, array[0].AsGUID(Guid.Empty));
            Assert.AreEqual(guid2, array[1].AsGUID(Guid.Empty));
            Assert.AreEqual(guid3, array[2].AsGUID(Guid.Empty));

            var narray = row.AmorphousData["GuidNArray_1"] as JSONDataArray;
            Assert.IsNotNull(narray);
            Assert.AreEqual(3, narray.Count);
            Assert.AreEqual(guid1, narray[0].AsGUID(Guid.Empty));
            Assert.AreEqual(null, narray[1].AsNullableGUID());
            Assert.AreEqual(guid3, narray[2].AsGUID(Guid.Empty));
        }