ForeignKeyConstraint.IsConstraintViolated() should check for Table.EnforceConstraints.
authorBoris Kirzner <borisk@mono-cvs.ximian.com>
Thu, 21 Jul 2005 07:06:25 +0000 (07:06 -0000)
committerBoris Kirzner <borisk@mono-cvs.ximian.com>
Thu, 21 Jul 2005 07:06:25 +0000 (07:06 -0000)
svn path=/trunk/mcs/; revision=47493

mcs/class/System.Data/ChangeLog
mcs/class/System.Data/System.Data/DataTable.cs
mcs/class/System.Data/System.Data/ForeignKeyConstraint.cs
mcs/class/System.Data/Test/System.Data/DataRowTest2.cs

index e9e320b2f09e10a4ab919b040ed879dedda4ad80..64c78af4efa937977d234e6bbc5717d817ade8cf 100644 (file)
@@ -1,3 +1,8 @@
+2005-07-21 Boris Kirzner <borisk@mainsoft.com>
+       * ForeignKeyConstraint.cs - IsConstraintViolated() should check also for Table.EnforceConstraints.
+       * DataTable.cs - EnforceConstraints becomes internal so it can be used by ForeignKeyConstraint.
+       * DataRowTest2.cs - Added RowError testcases.
+
 2005-07-12  Eyal Alalouf  <eyala@mainsoft.com>
        * System.Data_tests.dll.sources:
          Removed use of obsolete System.Data.Tests.Mainsoft/GHTUtils
index 6ac66e0cdf3603417f722db8f34d7006ea159d6b..3911335330e0230c38e98e09c290affec45d38c2 100644 (file)
@@ -559,7 +559,7 @@ namespace System.Data {
                        }\r
                }\r
                \r
-               private bool EnforceConstraints {\r
+               internal bool EnforceConstraints {\r
                        get { return enforceConstraints; }\r
                        set {\r
                                if (value != enforceConstraints) {\r
index 5a6232eb283798495719e9c2a3522e165a0a6dc0..a191a00758687ba660067855551c42cfc5a5da1f 100644 (file)
@@ -478,7 +478,7 @@ namespace System.Data {
                        if (Table.DataSet == null || RelatedTable.DataSet == null) 
                                return false;
                        
-                       if (!Table.DataSet.EnforceConstraints)
+                       if (!Table.DataSet.EnforceConstraints && !Table.EnforceConstraints)
                                return false;
                                
                        bool hasErrors = false;
index 18e7aca53e5f050fd2370424300b540a1a44f91a..fda1bcf7d53f17ab5764e1451beffe3493cd1459 100644 (file)
@@ -1283,5 +1283,40 @@ namespace MonoTests.System.Data
                        // ToString
                        Assert.AreEqual(true, dr.ToString().ToLower().StartsWith("system.data.datarow") , "DRW123");
                }
+               
+               [Test] public void DataRow_RowError()
+               {
+                       DataTable dt = new DataTable ("myTable"); \r
+                       DataRow dr = dt.NewRow ();\r
+       \r
+                       Assert.AreEqual ( dr.RowError, string.Empty );\r
+                                               \r
+                       dr.RowError = "Err";
+                       Assert.AreEqual ( dr.RowError , "Err" );
+               }
+               
+               [Test] 
+               [ExpectedException (typeof (ConstraintException))]
+               public void DataRow_RowError2()
+               {
+                       DataTable dt1 = DataProvider.CreateUniqueConstraint();\r
+\r
+                       dt1.BeginLoadData();\r
+\r
+                       DataRow  dr = dt1.NewRow();\r
+                       dr[0] = 3;\r
+                       dt1.Rows.Add(dr);\r
+                       dt1.EndLoadData();
+               }
+               
+               [Test] 
+               [ExpectedException (typeof (ConstraintException))]
+               public void DataRow_RowError3()
+               {
+                       DataSet ds= DataProvider.CreateForigenConstraint();\r
+                       ds.Tables[0].BeginLoadData();\r
+                       ds.Tables[0].Rows[0][0] = 10; \r
+                       ds.Tables[0].EndLoadData(); //Foreign constraint violation
+               }
        }
 }