public void TestAliasDictionary()
        {
            var d = Test123.GetTest123s2();

            var dt = d.ToDataReader().ApplyColumnsAliases(new Dictionary <string, string>()
            {
                { "Col1", "NewCol1" }
            }).ToDataTable();

            var cols = dt.GetDataColumns().Select(c => c.ColumnName).ToArray();

            Assert.AreEqual(cols[0], "NewCol1");
            Assert.AreEqual(cols[1], "Col2");
            Assert.AreEqual(cols[2], "Col3");

            var drow = dt.Rows[0]; //new Test123 {Col1 = 1, Col2 = 1.1m, Col3 = "TestCol3"},

            Assert.AreEqual(drow[0], 1);
            Assert.AreEqual(drow[1], 1.1m);
            Assert.AreEqual(drow[2], "TestCol3");

            Assert.AreEqual(drow["NewCol1"], 1);
            Assert.AreEqual(drow["Col2"], 1.1m);
            Assert.AreEqual(drow["Col3"], "TestCol3");
        }
        public void TestAliasDataAnnotationReverse()
        {
            var d = Test123.GetTest123s2();

            var dt = d.ToDataReader()
                     .ApplyColumnAlias("Col3", "NewCol3")
                     .ApplyColumnsAliasesReverse <Test123, IDataReader>()
                     .ToDataTable();

            var cols = dt.GetDataColumns().Select(c => c.ColumnName).ToArray();

            Assert.AreEqual(cols[0], "Col1");
            Assert.AreEqual(cols[1], "Col2");
            Assert.AreEqual(cols[2], "Col3");

            var drow = dt.Rows[0]; //new Test123 {Col1 = 1, Col2 = 1.1m, Col3 = "TestCol3"},

            Assert.AreEqual(drow[0], 1);
            Assert.AreEqual(drow[1], 1.1m);
            Assert.AreEqual(drow[2], "TestCol3");

            Assert.AreEqual(drow["Col1"], 1);
            Assert.AreEqual(drow["Col2"], 1.1m);
            Assert.AreEqual(drow["Col3"], "TestCol3");
        }
        public void TestCopy4()
        {
            var d = new Test1234
            {
                Col1 = 1,
                Col2 = 2,
                Col3 = "3",
                Col4 = "4"
            };

            var tt = new Test123
            {
                Col1 = 100,
                Col2 = 200,
                Col3 = "300"
            };

            tt.CopyTo(d);

            Assert.AreEqual(d.Col1, tt.Col1);
            Assert.AreEqual(d.Col1, 100);
            Assert.AreEqual(d.Col2, tt.Col2);
            Assert.AreEqual(d.Col2, 200);
            Assert.AreEqual(d.Col3, tt.Col3);
            Assert.AreEqual(d.Col3, "300");
            Assert.AreEqual(d.Col4, "4");
        }
Beispiel #4
0
        public void TestNullUtils()
        {
            var     a = (decimal?)3.0; //1
            var     b = "3";
            var     c = (float?)null;  //3
            var     d = (int?)null;
            var     e = new Test123(); //5
            Test123 f = null;

            var a1 = NullUtils.IsNullThen(a, val => val.Value + 1, 30);
            var a2 = NullUtils.IsNullThen(b, val => val + "1", "30");
            var a3 = NullUtils.IsNullThen(c, val => val.Value + 1, 30);
            var a4 = NullUtils.IsNullThen(d, val => val.Value + 1, 30);
            var a5 = NullUtils.IsNullThen(e, val => new Test123 {
                Col1 = 11
            }, new Test123 {
                Col1 = 30
            });
            var a6 = NullUtils.IsNullThen(f, val => new Test123 {
                Col1 = 11
            }, new Test123 {
                Col1 = 30
            });

            Assert.AreEqual(a1.Value, 4);
            Assert.AreEqual(a2, "31");
            Assert.AreEqual(a3.Value, 30);
            Assert.AreEqual(a4.Value, 30);
            Assert.AreEqual(a5.Col1, 11);
            Assert.AreEqual(a6.Col1, 30);
        }
        public void TestCopyWithFieldsSpecified()
        {
            var d = new Test123
            {
                Col1 = 1,
                Col2 = 2,
                Col3 = "3"
            };

            var tt = new Test123
            {
                Col1 = 100,
                Col2 = 200,
                Col3 = "300"
            };

            tt.CopyTo(d, new [] { nameof(Test123.Col2) });

            Assert.AreEqual(tt.Col1, 100);
            Assert.AreEqual(d.Col1, 1);

            Assert.AreEqual(tt.Col2, 200);
            Assert.AreEqual(d.Col2, 200);

            Assert.AreEqual(tt.Col3, "300");
            Assert.AreEqual(d.Col3, "3");
        }
        public void TestSmartDataReaderConversions()
        {
            var d = Test123.GetTest123s2();

            var clientId = Guid.NewGuid();
            var dt       = DateTime.Now;
            var dc       = "";
            var ga       = "0.02";

            var dr = d.ToDataReader()
                     .AddColumn("ClientId", row => clientId)
                     .AddColumn("Rd", row => dt)
                     .AddColumn("Dc", row => dc)
                     .AddColumn("Ga", row => ga);

            var destinationColumns = new TypedDataColumnInfo[]
            {
                new TypedDataColumnInfo
                {
                    DataType   = typeof(DateTime),
                    Ordinal    = 15,
                    ColumnName = "Rd"
                },
                new TypedDataColumnInfo
                {
                    DataType   = typeof(Guid),
                    Ordinal    = 4,
                    ColumnName = "ClientId"
                },
                new TypedDataColumnInfo
                {
                    DataType   = typeof(decimal),
                    Ordinal    = 8,
                    ColumnName = "Dc"
                },
                new TypedDataColumnInfo
                {
                    DataType   = typeof(decimal),
                    Ordinal    = 3,
                    ColumnName = "Ga"
                }
            };

            var s = new SmartDataReader <IDataReader>(dr, destinationColumns, DataTransformGroups.Default);

            var r = s.CountRows();

            r.ReadToEnd();

            Assert.AreEqual(clientId.ToString(), r["ClientId"].ToString());
            Assert.AreEqual(dt.ToString(), r["Rd"].ToString());
            Assert.AreEqual(null, r["Dc"]);
            Assert.AreEqual(0.02m, Convert.ToDecimal(r["Ga"].ToString()));
        }
        public void TestAddOneCol()
        {
            var d = Test123.GetTest123s2();

            var clientId = Guid.NewGuid();

            var dr = d.ToDataReader()
                     .AddColumn("ClientId", row => clientId);

            dr.Read();

            Assert.AreEqual(clientId.ToString(), dr["ClientId"].ToString());
        }
        public void TestAddTwoCol()
        {
            var d  = Test123.GetTest123s2();
            var dt = DateTime.Now;

            var clientId = Guid.NewGuid();

            var dr = d.ToDataReader()
                     .AddColumn("ClientId", row => clientId)
                     .AddColumn("Rd", row => dt);

            dr.Read();

            Assert.AreEqual(clientId.ToString(), dr["ClientId"].ToString());
            Assert.AreEqual(dt.ToString(), dr["Rd"].ToString());
        }
Beispiel #9
0
        public void TestAddFilter()
        {
            var d = Test123.GetTest123s2();

            var clientId = Guid.NewGuid();
            var dt       = DateTime.Now;

            var dr = d.ToDataReader()
                     .AddColumn("ClientId", row => clientId)
                     .AddColumn("Rd", row => dt)
                     .Where(row => row["Col1"].ToString() == "111");

            dr.ReadToEnd();

            Assert.AreEqual(clientId.ToString(), dr["ClientId"].ToString());
            Assert.AreEqual(dt.ToString(), dr["Rd"].ToString());
        }
        public void TestAliasRead()
        {
            var d = Test123.GetTest123s2();

            var dr = d.ToDataReader().ApplyColumnsAliases(new Dictionary <string, string>()
            {
                { "Col1", "NewCol1" }
            });

            dr.Read();

            Assert.AreEqual(dr.GetName(0), "NewCol1");
            Assert.AreEqual(dr.GetName(1), "Col2");
            Assert.AreEqual(dr.GetName(2), "Col3");

            Assert.AreEqual(dr[0], 1);
            Assert.AreEqual(dr[1], 1.1m);
            Assert.AreEqual(dr[2], "TestCol3");

            Assert.AreEqual(dr["NewCol1"], 1);
            Assert.AreEqual(dr["Col2"], 1.1m);
            Assert.AreEqual(dr["Col3"], "TestCol3");
        }
Beispiel #11
0
        public void Method(int a, double b)
        {
            // booleans
            bool m, n = false, @void = true;

            // numbers
            float   x = 101.2e10, y = 10, z = .1e-6;
            decimal d = 101.6m;
            long    l = 60lU;

            // characters
            char c = 'a', c2 = '@', c3 = '*';
            char c5 = '\x123', c6 = '\u1234', c7 = '\U12345678';
            char c10 = '\\', c11 = '\'';

            // some strings
            string simple = "this is a simple string";
            string txt    = "this is \r \n \t \b \a \v \" woooo";
            string vb1    = @"abc";
            string vb2    = @"abc ""def"" ghi";
            string vb     = @"
    ""a""
         ""verbatim""
                     ""string!""

       \r\n\t\b\a\v\";

            // arrays
            int[, , ][, ][] xs = null;

            // simple name
            var f = MyFunction <A, B, C>;

            // parens
            int z = (1);

            // member access
            var x = (Simple <T>).Member <T>;

            // invocation
            Test123 z = x.Property.Invoke().MethodCall <A, B>(a, ref b, out c);

            Lang.MyClass <int, B> x = AnotherMethod(true, 10.1m, 'x');

            // element access
            var z1 = xs[0];
            var z2 = x.GetArray()[x.BestIndex()];
            var z3 = x.Rank2Please()[abc, x.ElementAccess()];

            // this access
            var z3 = this;
            var z4 = this[10];

            // base access
            var b1 = base.MemberAccess();
            var b2 = base[123, z.ElementAccess];

            // post increment/decrement
            var inc = i++;
            var dec = d--;

            // object creation
            List <int> xs  = new List <int>(106, "whee");
            Person     obj = new Person {
                Name = "Fred"
            };
            Boat b = new Boat("yeah", 1)
            {
                ImOnIt = true,
                Nested = { Yes = { It = { Is = true } } }
            };
            List <int> xs = new List <int> {
                1, 2, 3
            };
            var d = new Dictionary <string, string> {
                { "A", "Alpha" },
                { "B", "Bravo" },
                { "C", "Charlie" }
            };
        }