System.Data.Tests.DataRelationTest2.ctor_ByNameDataColumnsArraysCreateConstraints C# (CSharp) Method

ctor_ByNameDataColumnsArraysCreateConstraints() private method

private ctor_ByNameDataColumnsArraysCreateConstraints ( ) : void
return void
        public void ctor_ByNameDataColumnsArraysCreateConstraints()
        {
            DataRelation dRel;
            DataTable dtChild = DataProvider.CreateChildDataTable();
            DataTable dtParent = DataProvider.CreateParentDataTable();

            var ds = new DataSet();
            ds.Tables.Add(dtParent);
            ds.Tables.Add(dtChild);

            //parameter createConstraints = true

            bool createConstraints = true;
            for (int i = 0; i <= 1; i++)
            {
                if (i == 0)
                    createConstraints = false;
                else
                    createConstraints = true;

                ds.Relations.Clear();
                dtParent.Constraints.Clear();
                dtChild.Constraints.Clear();

                //add duplicated row
                dtParent.Rows.Add(dtParent.Rows[0].ItemArray);
                dRel = new DataRelation("MyRelation", new DataColumn[] { dtParent.Columns[0] }, new DataColumn[] { dtChild.Columns[0] }, createConstraints);
                // Add relation which will create invalid constraint
                if (createConstraints == true)
                {
                    Assert.Throws<ArgumentException>(() => ds.Relations.Add(dRel));
                }
                else
                    ds.Relations.Add(dRel);

                ds.Relations.Clear();
                dtParent.Constraints.Clear();
                dtChild.Constraints.Clear();
                dtParent.Rows.Remove(dtParent.Rows[dtParent.Rows.Count - 1]);

                dRel = new DataRelation("MyRelation", new DataColumn[] { dtParent.Columns[0] }, new DataColumn[] { dtChild.Columns[0] }, createConstraints);
                ds.Relations.Add(dRel);

                // DataRelation - CTor,createConstraints=
                Assert.Equal(false, dRel == null);

                // DataRelation - parent Constraints,createConstraints=
                Assert.Equal(i, dtParent.Constraints.Count);

                // DataRelation - child Constraints,createConstraints=
                Assert.Equal(i, dtChild.Constraints.Count);

                // DataRelation - child relations,createConstraints=
                Assert.Equal(dRel, dtParent.ChildRelations[0]);

                // DataRelation - parent relations,createConstraints=
                Assert.Equal(dRel, dtChild.ParentRelations[0]);

                // DataRelation - name
                Assert.Equal("MyRelation", dRel.RelationName);
            }
        }