예제 #1
0
        public void CanConvertDataTableToEnumerableWithDependency()
        {
            var dt = DataTableExtensions.GetSchemaTable <TestClass>();

            dt.Rows.Add(dt.NewRow());
            dt.Rows[0]["Id"]         = Guid.NewGuid();
            dt.Rows[0]["Name"]       = "Lightning Bug";
            dt.Rows[0]["EmployeeId"] = 123456;
            dt.Rows.Add(dt.NewRow());
            dt.Rows[1]["Id"]         = Guid.NewGuid();
            dt.Rows[1]["Name"]       = "Firefly";
            dt.Rows[1]["EmployeeId"] = 234567;

            var dependency = new UriBuilder();
            var result     = dt.Convert(() => new TestClassWithDependency(dependency)).ToArray();

            result.Length.ShouldBe(2);
            result[0].Id.ShouldBe(dt.Rows[0]["Id"]);
            result[0].Name.ShouldBe(dt.Rows[0]["Name"]);
            result[0].EmployeeId.ShouldBe(dt.Rows[0]["EmployeeId"]);
            result[0].GetDependency().ShouldBeSameAs(dependency);
            result[1].Id.ShouldBe(dt.Rows[1]["Id"]);
            result[1].Name.ShouldBe(dt.Rows[1]["Name"]);
            result[1].EmployeeId.ShouldBe(dt.Rows[1]["EmployeeId"]);
            result[1].GetDependency().ShouldBeSameAs(dependency);
        }
예제 #2
0
        public void CanGetSchemaDataTable()
        {
            var dt = DataTableExtensions.GetSchemaTable <TestClass>();

            dt.Columns.Count.ShouldBe(3);
            dt.Columns["Id"].DataType.ShouldBe(typeof(Guid));
            dt.Columns["Name"].DataType.ShouldBe(typeof(string));
            dt.Columns["EmployeeId"].DataType.ShouldBe(typeof(int));
            dt.Rows.Count.ShouldBe(0);
        }
        public void CanConvertRowToInstance()
        {
            var dt         = DataTableExtensions.GetSchemaTable <TestClass>();
            var row        = dt.NewRow();
            var id         = Guid.NewGuid();
            var name       = "Lightning Bug";
            var employeeId = 123456;

            row["Id"]         = id;
            row["Name"]       = name;
            row["EmployeeId"] = employeeId;

            var instance = row.ToInstance <TestClass>();

            instance.ShouldNotBeNull();
            instance.Id.ShouldBe(id);
            instance.Name.ShouldBe(name);
            instance.EmployeeId.ShouldBe(employeeId);
        }
        public void CanConvertRowToInstanceWithConstructorDependency()
        {
            var dt         = DataTableExtensions.GetSchemaTable <TestClassWithDependency>();
            var row        = dt.NewRow();
            var id         = Guid.NewGuid();
            var name       = "Lightning Bug";
            var employeeId = 123456;

            row["Id"]         = id;
            row["Name"]       = name;
            row["EmployeeId"] = employeeId;

            var dependency = new UriBuilder();
            var instance   = row.ToInstance(() => new TestClassWithDependency(dependency));

            instance.ShouldNotBeNull();
            instance.Id.ShouldBe(id);
            instance.Name.ShouldBe(name);
            instance.EmployeeId.ShouldBe(employeeId);
            instance.GetDependency().ShouldBeSameAs(dependency);
        }
예제 #5
0
        public void CanConvertDataTableToEnumerable()
        {
            var dt = DataTableExtensions.GetSchemaTable <TestClass>();

            dt.Rows.Add(dt.NewRow());
            dt.Rows[0]["Id"]         = Guid.NewGuid();
            dt.Rows[0]["Name"]       = "Lightning Bug";
            dt.Rows[0]["EmployeeId"] = 123456;
            dt.Rows.Add(dt.NewRow());
            dt.Rows[1]["Id"]         = Guid.NewGuid();
            dt.Rows[1]["Name"]       = "Firefly";
            dt.Rows[1]["EmployeeId"] = 234567;

            var result = dt.Convert <TestClass>().ToArray();

            result.Length.ShouldBe(2);
            result[0].Id.ShouldBe(dt.Rows[0]["Id"]);
            result[0].Name.ShouldBe(dt.Rows[0]["Name"]);
            result[0].EmployeeId.ShouldBe(dt.Rows[0]["EmployeeId"]);
            result[1].Id.ShouldBe(dt.Rows[1]["Id"]);
            result[1].Name.ShouldBe(dt.Rows[1]["Name"]);
            result[1].EmployeeId.ShouldBe(dt.Rows[1]["EmployeeId"]);
        }
 public DataTable GetSchemaTable()
 {
     return(DataTableExtensions.GetSchemaTable <T>());
 }