コード例 #1
0
        public void TestBag()
        {
            Variant v1 = new Variant(Variant.EnumType.Bag);
            v1.Add("key1", new Variant("value1"));
            v1.Add("key2", new Variant(1.0));

            byte[] bytes = BinaryWriter.ToBytes(v1);
            Variant v2 = BinaryReader.FromBytes(bytes);

            Assert.AreEqual(v2.Type, Variant.EnumType.Bag);
            Assert.IsTrue(v1.Equals(v2));
        }
コード例 #2
0
ファイル: TestXmlStreams.cs プロジェクト: proteanic/protean
        public void TestList()
        {
            Variant v1 = new Variant(Variant.EnumType.List);
            v1.Add(new Variant("value1"));
            v1.Add(new Variant(1.0));

            string xml = XmlWriter.ToString(v1);
            Variant v2 = XmlReader.FromString(xml);

            Assert.AreEqual(v2.Type, Variant.EnumType.List);
            Assert.IsTrue(v1.Equals(v2));
        }
コード例 #3
0
ファイル: TestXmlStreams.cs プロジェクト: proteanic/protean
        public void TestBuffer()
        {
            byte[] bytes = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };

            Variant v1 = new Variant(bytes);

            string xml = XmlWriter.ToString(v1);
            Variant v2 = XmlReader.FromString(xml);

            Assert.AreEqual(v2.Type, Variant.EnumType.Buffer);
            Assert.IsTrue(v1.Equals(v2));
        }
コード例 #4
0
        public void TestBuffer()
        {
            byte[] bytes = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };

            Variant v1 = new Variant(bytes);

            byte[] bin = BinaryWriter.ToBytes(v1);
            Variant v2 = BinaryReader.FromBytes(bin);

            Assert.AreEqual(v2.Type, Variant.EnumType.Buffer);
            Assert.IsTrue(v1.Equals(v2));
        }
コード例 #5
0
ファイル: TestPrimitives.cs プロジェクト: proteanic/protean
        public void TestDateTime()
        {
            DateTime arg = new DateTime(2010, 1, 2, 3, 4, 5, 6);
            Variant v1 = new Variant(arg);
            Assert.AreEqual(v1.Type, Variant.EnumType.DateTime);
            Assert.IsTrue(v1.Is(Variant.EnumType.DateTime));
            Assert.IsTrue(v1.Is<DateTime>());
            Assert.AreEqual(v1.As<DateTime>(), arg);
            Assert.AreEqual(Convert.ToDateTime(v1), arg);

            Assert.AreEqual(v1.ToString(), "2010-01-02T03:04:05.006");

            Variant v2 = new Variant(v1);
            Assert.IsTrue(v1.Equals(v2));
        }
コード例 #6
0
ファイル: TestPrimitives.cs プロジェクト: proteanic/protean
        public void TestAny()
        {
            Variant v1 = new Variant(Variant.EnumType.Any, "1.0");
            Assert.AreEqual(v1.Type, Variant.EnumType.Any);
            Assert.IsTrue(v1.Is(Variant.EnumType.Any));

            Assert.AreEqual(1.0, v1.As<double>());

            Variant v2 = new Variant(v1);
            Assert.IsTrue(v1.Equals(v2));

            // Enumerating an Any variant with content should throw an exception
            Assert.Throws<VariantException>(delegate { v1.GetEnumerator(); });

            // We should be able to enumerate an Any variant with no content as this is a common occurance when reading untyped XML
            Variant v3 = new Variant(Variant.EnumType.Any);
            IEnumerator<VariantItem> enumerator = v3.GetEnumerator();
            Assert.IsFalse(enumerator.MoveNext());
            Assert.Throws<VariantException>(delegate { VariantItem item = enumerator.Current; });
        }
コード例 #7
0
ファイル: TestPrimitives.cs プロジェクト: proteanic/protean
        public void TestBoolean()
        {
            Variant vTrue = new Variant(true);
            Assert.AreEqual(vTrue.Type, Variant.EnumType.Boolean);
            Assert.IsTrue(vTrue.Is(Variant.EnumType.Boolean));
            Assert.IsTrue(vTrue.Is<bool>());
            Assert.IsTrue(vTrue.As<bool>());
            Assert.IsTrue(Convert.ToBoolean(vTrue));
            Assert.AreEqual(vTrue.ToString(), "true");

            Variant vFalse = new Variant(false);
            Assert.AreEqual(vFalse.Type, Variant.EnumType.Boolean);
            Assert.IsTrue(vFalse.Is(Variant.EnumType.Boolean));
            Assert.IsTrue(vFalse.Is<bool>());
            Assert.IsFalse(vFalse.As<bool>());
            Assert.IsFalse(Convert.ToBoolean(vFalse));
            Assert.AreEqual(vFalse.ToString(), "false");

            Variant v1 = new Variant(vTrue);
            Assert.IsTrue(v1.Equals(vTrue));

            Variant v2 = new Variant(vFalse);
            Assert.IsTrue(v2.Equals(vFalse));
        }
コード例 #8
0
ファイル: TestXmlStreams.cs プロジェクト: proteanic/protean
        public void TestTimeSeries()
        {
            Variant v1 = new Variant(Variant.EnumType.TimeSeries);
            v1.Add(new DateTime(2010, 1, 2, 3, 4, 5, 6), new Variant("value1"));
            v1.Add(new DateTime(2010, 1, 3, 3, 4, 5, 6), new Variant("value2"));

            string xml = XmlWriter.ToString(v1);
            Variant v2 = XmlReader.FromString(xml);

            Assert.AreEqual(v2.Type, Variant.EnumType.TimeSeries);
            Assert.IsTrue(v1.Equals(v2));
        }
コード例 #9
0
        public void TestTuple()
        {
            Variant v1 = new Variant(Variant.EnumType.Tuple, 2);
            v1[0] = new Variant("value");
            v1[1] = new Variant(1.0);

            byte[] bytes = BinaryWriter.ToBytes(v1);
            Variant v2 = BinaryReader.FromBytes(bytes);

            Assert.AreEqual(v2.Type, Variant.EnumType.Tuple);
            Assert.IsTrue(v1.Equals(v2));
        }
コード例 #10
0
        public void TestTimeSeries()
        {
            Variant v1 = new Variant(Variant.EnumType.TimeSeries);
            v1.Add(new DateTime(2010, 1, 2, 3, 4, 5, 6), new Variant("value1"));
            v1.Add(new DateTime(2010, 1, 3, 3, 4, 5, 6), new Variant("value2"));

            byte[] bytes = BinaryWriter.ToBytes(v1);
            Variant v2 = BinaryReader.FromBytes(bytes);

            Assert.AreEqual(v2.Type, Variant.EnumType.TimeSeries);
            Assert.IsTrue(v1.Equals(v2));
        }
コード例 #11
0
ファイル: TestXmlStreams.cs プロジェクト: proteanic/protean
        public void TestPrimitives()
        {
            Int32 argInt32 = -1;
            UInt32 argUInt32 = 0xffffffff;
            Int64 argInt64 = -1;
            UInt64 argUInt64 = 0xffffffffffffffff;
            bool argBoolean = true;
            double argDouble = 2.0;
            string argString = "test string";
            DateTime argDateTime = new DateTime(2010, 1, 2, 3, 4, 5, 6);
            TimeSpan argTime = new TimeSpan(0, 1, 2, 3, 4);

            Variant v1 = new Variant(Variant.EnumType.Dictionary);
            v1.Add("Int32", new Variant(argInt32));
            v1.Add("UInt32", new Variant(argUInt32));
            v1.Add("Int64", new Variant(argInt64));
            v1.Add("UInt64", new Variant(argUInt64));
            v1.Add("Boolean", new Variant(argBoolean));
            v1.Add("Double", new Variant(argDouble));
            v1.Add("String", new Variant(argString));
            v1.Add("DateTime", new Variant(argDateTime));
            v1.Add("Time", new Variant(argTime));
            v1.Add("None", new Variant(Variant.EnumType.None));

            string xml = XmlWriter.ToString(v1);
            Variant v2 = XmlReader.FromString(xml);

            Assert.IsTrue(v1.Equals(v2));
        }
コード例 #12
0
ファイル: TestDataTable.cs プロジェクト: rokstrnisa/protean
        public void TestComparison()
        {
            System.Data.DataTable dt1 = new DataTable();
            dt1.Columns.Add(new DataColumn("Double", typeof(double)));
            dt1.Columns.Add(new DataColumn("String", typeof(string)));

            DataRow dr1 = dt1.NewRow();
            dr1[0] = 1.0;
            dr1[1] = "value";

            dt1.Rows.Add(dr1);

            Variant v1 = new Variant(dt1);

            System.Data.DataTable dt2 = new DataTable();
            dt2.Columns.Add(new DataColumn("Double", typeof(double)));
            dt2.Columns.Add(new DataColumn("String", typeof(string)));

            DataRow dr2 = dt2.NewRow();
            dr2[0] = 1.0;
            dr2[1] = "value";

            dt2.Rows.Add(dr2);

            Variant v2 = new Variant(dt2);

            System.Data.DataTable dt3 = new DataTable();
            dt3.Columns.Add(new DataColumn("Double", typeof(double)));
            dt3.Columns.Add(new DataColumn("String", typeof(string)));

            DataRow dr3 = dt3.NewRow();
            dr3[0] = 2.0;
            dr3[1] = "value";

            dt3.Rows.Add(dr3);

            Variant v3 = new Variant(dt3);

            Assert.IsTrue(v1.Equals(v2));
            Assert.IsFalse(v1.Equals(v3));

            Assert.AreEqual(0, v1.CompareTo(v2));
            Assert.AreEqual(-1, v2.CompareTo(v3));
            Assert.AreEqual(1, v3.CompareTo(v2));
        }
コード例 #13
0
ファイル: TestPrimitives.cs プロジェクト: proteanic/protean
        public void TestDouble()
        {
            Variant v1 = new Variant((double)5.0);
            Assert.AreEqual(v1.Type, Variant.EnumType.Double);
            Assert.IsTrue(v1.Is(Variant.EnumType.Double));
            Assert.IsTrue(v1.Is<double>());
            Assert.AreEqual(v1.As<double>(), 5.0);
            Assert.AreEqual(Convert.ToDouble(v1), 5.0);
            Assert.AreEqual(v1.ToString(), "5");

            Variant vNaN = new Variant(double.NaN);
            Assert.AreEqual(vNaN.ToString(), "NaN");

            Variant vINF = new Variant(double.PositiveInfinity);
            Assert.AreEqual(vINF.ToString(), "INF");

            Variant vNEGINF = new Variant(double.NegativeInfinity);
            Assert.AreEqual(vNEGINF.ToString(), "-INF");

            Variant v2 = new Variant(v1);
            Assert.IsTrue(v1.Equals(v2));
        }
コード例 #14
0
ファイル: TestPrimitives.cs プロジェクト: proteanic/protean
        public void TestInt32()
        {
            Variant v1 = new Variant((Int32)1);
            Assert.AreEqual(v1.Type, Variant.EnumType.Int32);
            Assert.IsTrue(v1.Is(Variant.EnumType.Int32));
            Assert.IsTrue(v1.Is<Int32>());
            Assert.AreEqual(v1.As<Int32>(), 1);
            Assert.AreEqual(Convert.ToInt32(v1), 1);
            Assert.AreEqual(v1.ToString(), "1");

            Variant v2 = new Variant(v1);
            Assert.IsTrue(v1.Equals(v2));
        }
コード例 #15
0
ファイル: TestPrimitives.cs プロジェクト: proteanic/protean
        public void TestUInt64()
        {
            Variant v1 = new Variant((UInt64)4);
            Assert.AreEqual(v1.Type, Variant.EnumType.UInt64);
            Assert.IsTrue(v1.Is(Variant.EnumType.UInt64));
            Assert.IsTrue(v1.Is<UInt64>());
            Assert.AreEqual(v1.As<UInt64>(), 4);
            Assert.AreEqual(Convert.ToUInt64(v1), 4);
            Assert.AreEqual(v1.ToString(), "4");

            Variant v2 = new Variant(v1);
            Assert.IsTrue(v1.Equals(v2));
        }
コード例 #16
0
ファイル: TestXmlStreams.cs プロジェクト: proteanic/protean
        public void TestTuple()
        {
            Variant v1 = new Variant(Variant.EnumType.Tuple, 2);
            v1[0] = new Variant("value");
            v1[1] = new Variant(1.0);

            string xml = XmlWriter.ToString(v1);
            Variant v2 = XmlReader.FromString(xml);

            Assert.AreEqual(v2.Type, Variant.EnumType.Tuple);
            Assert.IsTrue(v1.Equals(v2));
        }
コード例 #17
0
ファイル: TestPrimitives.cs プロジェクト: proteanic/protean
        public void TestTime()
        {
            TimeSpan arg = new TimeSpan(0, 2, 3, 4, 5);
            Variant v1 = new Variant(arg);
            Assert.AreEqual(v1.Type, Variant.EnumType.Time);
            Assert.IsTrue(v1.Is(Variant.EnumType.Time));
            Assert.IsTrue(v1.Is<TimeSpan>());
            Assert.AreEqual(v1.As<TimeSpan>(), arg);

            Assert.AreEqual(v1.ToString(), "02:03:04.005");

            Variant v2 = new Variant(v1);
            Assert.IsTrue(v1.Equals(v2));
        }
コード例 #18
0
ファイル: TestPrimitives.cs プロジェクト: proteanic/protean
        public void TestString()
        {
            Variant v1 = new Variant("test string");
            Assert.AreEqual(v1.Type, Variant.EnumType.String);
            Assert.IsTrue(v1.Is(Variant.EnumType.String));
            Assert.IsTrue(v1.Is<string>());
            Assert.AreEqual(v1.As<string>(), "test string");
            Assert.AreEqual(Convert.ToString(v1), "test string");

            Variant v2 = new Variant(v1);
            Assert.IsTrue(v1.Equals(v2));
        }
コード例 #19
0
ファイル: TestPrimitives.cs プロジェクト: proteanic/protean
        public void TestNone()
        {
            Variant v1 = new Variant();
            Assert.AreEqual(v1.Type, Variant.EnumType.None);
            Assert.IsTrue(v1.Is(Variant.EnumType.None));

            Variant v2 = new Variant(Variant.EnumType.None);
            Assert.AreEqual(v2.Type, Variant.EnumType.None);
            Assert.IsTrue(v2.Is(Variant.EnumType.None));

            Variant v3 = new Variant(v1);
            Assert.IsTrue(v1.Equals(v3));
        }
コード例 #20
0
ファイル: TestPrimitives.cs プロジェクト: proteanic/protean
        public void TestInt64()
        {
            Variant v1 = new Variant((Int64)3);
            Assert.AreEqual(v1.Type, Variant.EnumType.Int64);
            Assert.IsTrue(v1.Is(Variant.EnumType.Int64));
            Assert.IsTrue(v1.Is<Int64>());
            Assert.AreEqual(v1.As<Int64>(), 3);
            Assert.AreEqual(Convert.ToInt64(v1), 3);
            Assert.AreEqual(v1.ToString(), "3");

            Variant v2 = new Variant(v1);
            Assert.IsTrue(v1.Equals(v2));
        }