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"); }
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()); }
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"); }
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" } }; }