Parcourir la source

new test added : DataSourceControlTest.cs and DataSourceViewTest.cs

svn path=/trunk/mcs/; revision=63806
Yoni Klain il y a 19 ans
Parent
commit
7f7fbe89be

+ 4 - 0
mcs/class/System.Web/ChangeLog

@@ -1,3 +1,7 @@
+2006-08-16 Yoni Klain <[email protected]>
+	
+	* System.Web_test.dll.sources:add new DataSourceViewTest.cs; DataSourceControlTest.cs		 
+		
 2006-08-10 Yoni Klain <[email protected]>
 	
 	* System.Web_test.dll.sources:add new CallBackTest.cs			 

+ 2 - 0
mcs/class/System.Web/System.Web_test.dll.sources

@@ -159,6 +159,8 @@ System.Web.UI.WebControls/DataKeyTest.cs
 System.Web.UI.WebControls/DataListItemCollectionTest.cs
 System.Web.UI.WebControls/DataListItemTest.cs
 System.Web.UI.WebControls/DataListTest.cs
+System.Web.UI.WebControls/DataSourceControlTest.cs
+System.Web.UI.WebControls/DataSourceViewTest.cs
 System.Web.UI.WebControls/DetailsViewTest.cs
 System.Web.UI.WebControls/DetailsViewRowTest.cs
 System.Web.UI.WebControls/DetailsViewRowCollectionTest.cs

+ 4 - 0
mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangeLog

@@ -1,3 +1,7 @@
+2006-08-16 Yoni Klain <[email protected]>
+
+	* DataSourceViewTest.cs; DataSourceControlTest.cs : new tests
+
 2006-08-15 Igor Zelmanovich <[email protected]>
 
 	* MenuTest.cs: new test was added, removed NotWorking attributes

+ 197 - 0
mcs/class/System.Web/Test/System.Web.UI.WebControls/DataSourceControlTest.cs

@@ -0,0 +1,197 @@
+//
+// Tests for System.Web.UI.WebControls.DataSourceControlTest.cs
+//
+// Author:
+//	Yoni Klein ([email protected])
+//
+//
+// 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.
+
+
+#if NET_2_0
+
+using System;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Collections;
+using System.ComponentModel;
+using NUnit.Framework;
+
+
+namespace MonoTests.System.Web.UI.WebControls
+{
+	public class PokerDataSource : DataSourceControl
+	{
+		// View state Stuff
+		public PokerDataSource ()
+			: base ()
+		{
+			TrackViewState ();
+		}
+
+		public ICollection  DoGetViewNames()
+		{
+ 			 return base.GetViewNames();
+		}
+		
+		public ControlCollection DoCreateControlCollection ()
+		{
+			return base.CreateControlCollection ();
+		}
+		public void DoRaiseDataSourceChangedEvent (EventArgs e)
+		{
+			base.RaiseDataSourceChangedEvent (e);
+		}
+
+		protected override DataSourceView GetView (string viewName)
+		{
+			throw new Exception ("The method or operation is not implemented.");
+		}
+	}
+
+	[TestFixture]
+	public class DataSourceControlTest
+	{
+		
+		[Test]
+		public void DataSourceControl_DefaultProperty ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			Assert.AreEqual (null, ds.ClientID, "ClientID");
+			Assert.IsNotNull (ds.Controls, "Controls#1");
+			Assert.AreEqual ( 0 , ds.Controls.Count , "Controls#2");
+			Assert.AreEqual (false, ds.Visible, "Visible");
+		}
+
+		[Test]
+		[NUnit.Framework.Category ("NotWorking")]
+		public void DataSourceControl_DefaultPropertyNotWorking ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			Assert.AreEqual (false, ds.EnableTheming, "EnableTheming");
+		}
+
+		[Test]
+		public void DataSourceControl_ApplyStyleSheetSkin ()
+		{
+		        // DataSourceControl EnableTheme property always set to false 
+	                // and have no render issue - this method would do nothing
+ 		}
+
+		[Test]
+		public void DataSourceControl_FindControl ()
+		{
+			// DataSourceControl cannot have child controls on ControlCollection
+			// this method cannot be applyed
+		}
+
+		[Test]
+		[NUnit.Framework.Category ("NotWorking")]
+		[ExpectedException (typeof (NotSupportedException))]
+		public void DataSourceControl_Focus ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			ds.Focus ();
+		}
+
+		[Test]
+		public void DataSourceControl_HasControls ()
+		{
+			//Always return false
+			PokerDataSource ds = new PokerDataSource ();
+			Assert.AreEqual (false, ds.HasControls (), "HasControls");
+		}
+
+		[Test]
+		public void DataSourceControl_CreateControlCollection ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			ControlCollection collection = ds.DoCreateControlCollection ();
+			Assert.IsNotNull (collection, "CreateControlCollection#1");
+			Assert.AreEqual (0, collection.Count ,"CreateControlCollection#2");
+		}
+
+		[Test]
+		public void DataSourceControl_GetViewNames ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			ICollection viewnames = ds.DoGetViewNames ();
+			Assert.IsNull (viewnames, "GetViewNames#1");
+		}
+		
+
+		[Test]
+		[ExpectedException (typeof (HttpException))]
+		public void DataSourceControl_Controls ()
+		{
+			Button bt = new Button ();
+			bt.ID = "bt";
+			PokerDataSource ds = new PokerDataSource ();
+			ds.Controls.Add (bt);
+		}
+
+
+		[Test]
+		[NUnit.Framework.Category ("NotWorking")]
+		[ExpectedException (typeof (NotSupportedException))]
+		public void DataSourceControl_EnableThemingException ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			ds.EnableTheming = true;
+		}
+
+		[Test]
+		[ExpectedException (typeof (NotSupportedException))]
+		public void DataSourceControl_VisibleException ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			ds.Visible = true;
+		}
+
+		//Events
+		[Test]
+		public void DataSourceControl_Events ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			((IDataSource) ds).DataSourceChanged += new EventHandler (Eventchecker);
+			ds.DoRaiseDataSourceChangedEvent (new EventArgs ());
+			Eventassert("RaiseDataSourceChangedEventFail");
+		}
+		
+		
+		// Helper for event checking
+		private bool event_checker;
+
+		private void Eventchecker (object o, EventArgs e)
+		{
+			event_checker = true;
+		}
+
+		private void Eventassert (string message)
+		{
+			Assert.IsTrue (event_checker, message);
+			event_checker = false;
+		}
+	}
+}
+#endif

+ 261 - 0
mcs/class/System.Web/Test/System.Web.UI.WebControls/DataSourceViewTest.cs

@@ -0,0 +1,261 @@
+//
+// Tests for System.Web.UI.WebControls.DataSourceViewTest.cs
+//
+// Author:
+//	Yoni Klein ([email protected])
+//
+//
+// 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.
+
+
+#if NET_2_0
+
+using System;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Collections;
+using System.ComponentModel;
+using NUnit.Framework;
+
+namespace MonoTests.System.Web.UI.WebControls
+{
+	public class PokerDataSourceView : DataSourceView
+	{
+		// View state Stuff
+		public PokerDataSourceView (IDataSource owner , string name)
+			: base(owner, name)
+		{
+			
+		}
+
+		public EventHandlerList events {
+			get{
+				return base.Events;
+			}
+		}
+
+		public int DoExecuteDelete (IDictionary keys, IDictionary oldValues)
+		{
+			return base.ExecuteDelete (keys, oldValues);
+		}
+
+		public int DoExecuteInsert (IDictionary values)
+		{
+			return base.ExecuteInsert (values);
+		}
+
+		public int DoExecuteUpdate (IDictionary keys, IDictionary values, IDictionary oldValues)
+		{
+			return base.ExecuteUpdate (keys, values, oldValues);
+		}
+
+		public void DoOnDataSourceViewChanged (EventArgs e)
+		{
+			base.OnDataSourceViewChanged (e);
+		}
+
+		protected override IEnumerable ExecuteSelect (DataSourceSelectArguments arguments)
+		{
+			throw new Exception ("The method or operation is not implemented.");
+		}
+
+		public void DoRaiseUnsupportedCapabilityError (DataSourceCapabilities capability)
+		{
+			base.RaiseUnsupportedCapabilityError (capability);
+		}
+	}
+
+	[TestFixture]
+	public class DataSourceViewTest
+	{
+		
+		[Test]
+		public void DataSourceView_DefaultProperty ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			PokerDataSourceView view = new PokerDataSourceView (ds, "View");
+			Assert.AreEqual (false, view.CanDelete, "CanDelete");
+			Assert.AreEqual (false, view.CanInsert, "CanInsert");
+			Assert.AreEqual (false, view.CanPage, "CanPage");
+			Assert.AreEqual (false, view.CanRetrieveTotalRowCount, "CanRetrieveTotalRowCount");
+			Assert.AreEqual (false, view.CanSort, "CanSort");
+			Assert.AreEqual (false, view.CanUpdate, "CanUpdate");
+			Assert.AreEqual ("View", view.Name, "Name");
+
+			//protected properties
+			EventHandlerList list = view.events;
+			Assert.IsNotNull (list, "Events");
+		}
+
+		//Events
+
+		[Test]
+		public void DataSourceView_Events ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			PokerDataSourceView view = new PokerDataSourceView (ds, "View");
+			view.DataSourceViewChanged += new EventHandler (Eventchecker);
+			view.DoOnDataSourceViewChanged (new EventArgs ());
+			Eventassert ("DataSourceViewChanged");
+		}
+
+		[Test]
+		public void DataSourceView_RaiseUnsupportedCapabilityError1 ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			PokerDataSourceView view = new PokerDataSourceView (ds, "View");
+			view.DoRaiseUnsupportedCapabilityError (DataSourceCapabilities.None);
+		}
+		
+
+
+		//Exceptions
+
+		[Test]
+		[ExpectedException(typeof(NotSupportedException))]
+		public void DataSourceView_RaiseUnsupportedCapabilityError2 ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			PokerDataSourceView view = new PokerDataSourceView (ds, "View");
+			view.DoRaiseUnsupportedCapabilityError (DataSourceCapabilities.Page);
+		}
+
+		[Test]
+		[ExpectedException (typeof (NotSupportedException))]
+		public void DataSourceView_RaiseUnsupportedCapabilityError3 ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			PokerDataSourceView view = new PokerDataSourceView (ds, "View");
+			view.DoRaiseUnsupportedCapabilityError (DataSourceCapabilities.RetrieveTotalRowCount);
+		}
+
+		[Test]
+		[ExpectedException (typeof (NotSupportedException))]
+		public void DataSourceView_RaiseUnsupportedCapabilityError4 ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			PokerDataSourceView view = new PokerDataSourceView (ds, "View");
+			view.DoRaiseUnsupportedCapabilityError (DataSourceCapabilities.Sort);
+		}
+		
+	
+		[Test]
+		[ExpectedException(typeof(ArgumentNullException))]
+		public void DataSourceView_Insert ()
+		{
+			// ExecuteInsert must be implemented at first 
+			Hashtable table = new Hashtable ();
+			PokerDataSource ds = new PokerDataSource ();
+			PokerDataSourceView view = new PokerDataSourceView (ds, "View");
+			table.Add ("ID", "1000");
+			view.Insert (table, null);
+		}
+
+		[Test]
+		[ExpectedException (typeof (ArgumentNullException))]
+		public void DataSourceView_Update ()
+		{
+			// ExecuteUpdate must be implemented at first 
+			Hashtable table = new Hashtable ();
+			PokerDataSource ds = new PokerDataSource ();
+			PokerDataSourceView view = new PokerDataSourceView (ds, "View");
+			table.Add ("ID", "1000");
+			view.Update (table, table, null, null);
+		}
+
+		[Test]
+		[ExpectedException (typeof (ArgumentNullException))]
+		public void DataSourceView_Delete()
+		{
+			// ExecuteDelete must be implemented at first
+			Hashtable table = new Hashtable ();
+			PokerDataSource ds = new PokerDataSource ();
+			PokerDataSourceView view = new PokerDataSourceView (ds, "View");
+			table.Add ("ID", "1000");
+			view.Delete(table, table,  null);
+		}
+
+		[Test]
+		[ExpectedException (typeof (ArgumentNullException))]
+		public void DataSourceView_Select ()
+		{
+			// ExecuteSelect must be implemented at first
+			Hashtable table = new Hashtable ();
+			PokerDataSource ds = new PokerDataSource ();
+			PokerDataSourceView view = new PokerDataSourceView (ds, "View");
+			table.Add ("ID", "1000");
+			view.Select(new DataSourceSelectArguments(), null);
+		}
+
+		[Test]
+		[NUnit.Framework.Category ("NotWorking")]
+		[ExpectedException (typeof (ArgumentNullException))]
+		public void DataSourceView_ConstractorException ()
+		{
+			PokerDataSourceView view = new PokerDataSourceView (null, "View");
+		}
+
+		[Test]
+		[ExpectedException (typeof (NotSupportedException))]
+		public void DataSourceView_ExecuteDelete ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			PokerDataSourceView view = new PokerDataSourceView (ds, "View");
+			view.DoExecuteDelete (null, null);
+		}
+
+		[Test]
+		[ExpectedException (typeof (NotSupportedException))]
+		public void DataSourceView_ExecuteInsert ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			PokerDataSourceView view = new PokerDataSourceView (ds, "View");
+			view.DoExecuteInsert (null);
+		}
+
+		[Test]
+		[ExpectedException (typeof (NotSupportedException))]
+		public void DataSourceView_ExecuteUpdate ()
+		{
+			PokerDataSource ds = new PokerDataSource ();
+			PokerDataSourceView view = new PokerDataSourceView (ds, "View");
+			view.DoExecuteUpdate (null, null, null);
+		}
+
+		
+		// Helper for event checking
+		private bool event_checker;
+
+		private void Eventchecker (object o, EventArgs e)
+		{
+			event_checker = true;
+		}
+
+		private void Eventassert (string message)
+		{
+			Assert.IsTrue (event_checker, message);
+			event_checker = false;
+		}
+	}
+}
+#endif