2005-01-24 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Mon, 24 Jan 2005 16:28:11 +0000 (16:28 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Mon, 24 Jan 2005 16:28:11 +0000 (16:28 -0000)
* System.Data_test.dll.sources : added DataRowViewTest.cs.

* DataRowView.cs : implemented CreateChildView().

* DataRowViewTest.cs : added new file.

svn path=/trunk/mcs/; revision=39422

mcs/class/System.Data/System.Data/ChangeLog
mcs/class/System.Data/System.Data/DataRowView.cs
mcs/class/System.Data/System.Data_test.dll.sources
mcs/class/System.Data/Test/System.Data/ChangeLog
mcs/class/System.Data/Test/System.Data/DataRowViewTest.cs [new file with mode: 0755]

index 22ec69532c2c3361c0deb2865c171ca339c336b9..2611c6add04604c82b1b5ed7beef94ea16cbe884 100644 (file)
@@ -1,3 +1,7 @@
+2005-01-24  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataRowView.cs : implemented CreateChildView().
+
 2005-01-24  Atsushi Enomoto  <atsushi@ximian.com>
 
        * DataTable.cs, DataView.cs :
index e471e5da6dcd8ae44e5a0a4b005bf85ee004ddd9..317f6ac1a29654dc0bda959b4889e2089ac3df59 100644 (file)
@@ -96,16 +96,17 @@ namespace System.Data
                        isEdit = false;
                }
 
-               [MonoTODO]
                public DataView CreateChildView (DataRelation relation)
                {
-                       throw new NotImplementedException ();
+                       if (relation == null)
+                               throw new ArgumentException ("The relation is not parented to the table.");
+                       return new DataView (relation.ChildTable);
                }
 
-               [MonoTODO]
                public DataView CreateChildView (string name)
                {
-                       throw new NotImplementedException ();
+                       return CreateChildView (
+                               dataRow.Table.ChildRelations [name]);
                }
 
                [MonoTODO]
index c8402ac2197257c823a6cea9967660ceffbb4965..ecd2c3c507ce6b4cbf77ccfef2942e5896279b1f 100644 (file)
@@ -20,6 +20,7 @@ System.Data/DataColumnTest.cs
 System.Data/DataRelationTest.cs
 System.Data/DataRowCollectionTest.cs
 System.Data/DataRowTest.cs
+System.Data/DataRowViewTest.cs
 System.Data/DataSetAssertion.cs
 System.Data/DataSetTest.cs
 System.Data/DataSetReadXmlTest.cs
index 1b5c72dd622e56bf1683f783feab0c23ae17d606..18c4d73b0efa2d0375fd06f0b89908842d8967ae 100644 (file)
@@ -1,3 +1,7 @@
+2005-01-24  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DataRowViewTest.cs : added new file.
+
 2005-01-24  Atsushi Enomoto  <atsushi@ximian.com>
 
        * DataSetReadXmlSchemaTest.cs : test labels were ambiguous.
diff --git a/mcs/class/System.Data/Test/System.Data/DataRowViewTest.cs b/mcs/class/System.Data/Test/System.Data/DataRowViewTest.cs
new file mode 100755 (executable)
index 0000000..9b653c5
--- /dev/null
@@ -0,0 +1,103 @@
+//
+// DataRowViewTest.cs
+//
+// Author:
+//     Atsushi Enomoto  <atsushi@ximian.com>
+//
+// (C) 2005 Novell Inc,
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using NUnit.Framework;
+using System;
+using System.Data;
+using System.ComponentModel;
+
+namespace MonoTests.System.Data
+{
+       [TestFixture]
+       public class DataRowViewTest : Assertion
+       {
+               private DataView CreateTestView ()
+               {
+                       DataTable dt1 = new DataTable ("table1");
+                       DataColumn c1 = new DataColumn ("col");
+                       dt1.Columns.Add (c1);
+                       dt1.Rows.Add (new object [] {"1"});
+                       return new DataView (dt1);
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentException))]
+               public void CreateChildViewNullStringArg ()
+               {
+                       DataView dv = CreateTestView ();
+                       DataRowView dvr = dv [0];
+                       dvr.CreateChildView ((string) null);
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentException))]
+               public void CreateChildViewNullDataRelationArg ()
+               {
+                       DataView dv = CreateTestView ();
+                       DataRowView dvr = dv [0];
+                       dvr.CreateChildView ((DataRelation) null);
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentException))]
+               public void CreateChildViewNonExistentName ()
+               {
+                       DataView dv = CreateTestView ();
+                       DataRowView dvr = dv [0];
+                       dvr.CreateChildView ("nothing");
+               }
+
+               [Test]
+               public void CreateChildViewSimple ()
+               {
+                       DataSet ds = new DataSet ();
+
+                       DataTable dt1 = new DataTable ("table1");
+                       ds.Tables.Add (dt1);
+                       DataColumn c1 = new DataColumn ("col");
+                       dt1.Columns.Add (c1);
+                       dt1.Rows.Add (new object [] {"1"});
+
+                       DataTable dt2 = new DataTable ("table2");
+                       ds.Tables.Add (dt2);
+                       DataColumn c2 = new DataColumn ("col");
+                       dt2.Columns.Add (c2);
+                       dt2.Rows.Add (new object [] {"1"});
+
+                       DataRelation dr = new DataRelation ("dr", c1, c2);
+
+                       DataView dv = new DataView (dt1);
+                       DataRowView dvr = dv [0];
+                       DataView v = dvr.CreateChildView (dr);
+                       AssertEquals ("RowFilter", "", v.RowFilter);
+                       AssertEquals ("Sort", "", v.Sort);
+               }
+       }
+}