From: Atsushi Eno Date: Mon, 24 Jan 2005 16:28:11 +0000 (-0000) Subject: 2005-01-24 Atsushi Enomoto X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=f1bd168d0ed0012937043b2920d703e75dc7aa31;p=mono.git 2005-01-24 Atsushi Enomoto * System.Data_test.dll.sources : added DataRowViewTest.cs. * DataRowView.cs : implemented CreateChildView(). * DataRowViewTest.cs : added new file. svn path=/trunk/mcs/; revision=39422 --- diff --git a/mcs/class/System.Data/System.Data/ChangeLog b/mcs/class/System.Data/System.Data/ChangeLog index 22ec69532c2..2611c6add04 100644 --- a/mcs/class/System.Data/System.Data/ChangeLog +++ b/mcs/class/System.Data/System.Data/ChangeLog @@ -1,3 +1,7 @@ +2005-01-24 Atsushi Enomoto + + * DataRowView.cs : implemented CreateChildView(). + 2005-01-24 Atsushi Enomoto * DataTable.cs, DataView.cs : diff --git a/mcs/class/System.Data/System.Data/DataRowView.cs b/mcs/class/System.Data/System.Data/DataRowView.cs index e471e5da6dc..317f6ac1a29 100644 --- a/mcs/class/System.Data/System.Data/DataRowView.cs +++ b/mcs/class/System.Data/System.Data/DataRowView.cs @@ -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] diff --git a/mcs/class/System.Data/System.Data_test.dll.sources b/mcs/class/System.Data/System.Data_test.dll.sources index c8402ac2197..ecd2c3c507c 100644 --- a/mcs/class/System.Data/System.Data_test.dll.sources +++ b/mcs/class/System.Data/System.Data_test.dll.sources @@ -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 diff --git a/mcs/class/System.Data/Test/System.Data/ChangeLog b/mcs/class/System.Data/Test/System.Data/ChangeLog index 1b5c72dd622..18c4d73b0ef 100644 --- a/mcs/class/System.Data/Test/System.Data/ChangeLog +++ b/mcs/class/System.Data/Test/System.Data/ChangeLog @@ -1,3 +1,7 @@ +2005-01-24 Atsushi Enomoto + + * DataRowViewTest.cs : added new file. + 2005-01-24 Atsushi Enomoto * 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 index 00000000000..9b653c58ecd --- /dev/null +++ b/mcs/class/System.Data/Test/System.Data/DataRowViewTest.cs @@ -0,0 +1,103 @@ +// +// DataRowViewTest.cs +// +// Author: +// Atsushi Enomoto +// +// (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); + } + } +}