2007-05-27 Igor Zelmanovich <igorz@mainsoft.com>
authorIgor Zelmanovich <igorz@mono-cvs.ximian.com>
Sun, 27 May 2007 13:23:17 +0000 (13:23 -0000)
committerIgor Zelmanovich <igorz@mono-cvs.ximian.com>
Sun, 27 May 2007 13:23:17 +0000 (13:23 -0000)
* ObjectDataSourceView.cs: fixed SelectMethod and SelectCountMethod properties:
when changed, DataSourceViewChanged event is raised.

* SqlDataSourceView: fixed SelectCommand property:
when changed, DataSourceViewChanged event is raised.

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

mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
mcs/class/System.Web/System.Web.UI.WebControls/ObjectDataSourceView.cs
mcs/class/System.Web/System.Web.UI.WebControls/SqlDataSourceView.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangeLog
mcs/class/System.Web/Test/System.Web.UI.WebControls/ObjectDataSourceViewTest.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/SqlDataSourceViewTest.cs

index fc95114d82fdb20bc42691640783919317065554..5bbc65ffb1a7b326fdf250f890d4f975ff753c28 100644 (file)
@@ -1,3 +1,11 @@
+2007-05-27 Igor Zelmanovich <igorz@mainsoft.com>
+
+       * ObjectDataSourceView.cs: fixed SelectMethod and SelectCountMethod properties:
+       when changed, DataSourceViewChanged event is raised.
+       
+       * SqlDataSourceView: fixed SelectCommand property:
+       when changed, DataSourceViewChanged event is raised.
+
 2007-05-25  Marek Habersack  <mhabersack@novell.com>
 
        * ObjectDataSourceView.cs: CreateDataObject must pay attention to
index a7a285e4ab2718a2e55f2cd00e6f612d5e9bb506..fe18a7b7916a7442e1c967a91b2d8d82d1679106 100644 (file)
@@ -401,7 +401,10 @@ namespace System.Web.UI.WebControls
                                return selectCountMethod != null ? selectCountMethod : string.Empty;
                        }
                        set {
+                               if (SelectCountMethod == value)
+                                       return;
                                selectCountMethod = value;
+                               OnDataSourceViewChanged (EventArgs.Empty);
                        }
                }
 
@@ -410,7 +413,10 @@ namespace System.Web.UI.WebControls
                                return selectMethod != null ? selectMethod : string.Empty;
                        }
                        set {
+                               if (SelectMethod == value)
+                                       return;
                                selectMethod = value;
+                               OnDataSourceViewChanged (EventArgs.Empty);
                        }
                }
 
@@ -979,7 +985,7 @@ namespace System.Web.UI.WebControls
                                return null;
 
                        foreach (DictionaryEntry de in values) {
-                               string valueName = format == true ? FormatOldParameter (de.Key.ToString ()) : de.Key.ToString ();\r
+                               string valueName = format == true ? FormatOldParameter (de.Key.ToString ()) : de.Key.ToString ();
                                if (String.Compare (name, valueName, StringComparison.InvariantCultureIgnoreCase) == 0)
                                        return values [de.Key];
                        }
index 5dbb19e03aa619b4e9bfb9dc33fcaa7a38b68038..53d8b1e3bc0c2bd6d6916cc088e3a0f06505ad93 100644 (file)
@@ -642,10 +642,15 @@ namespace System.Web.UI.WebControls {
                }
 
                // LAME SPEC: MSDN says value should be saved in ViewState but tests show otherwise.
-               private string selectCommand = "";
+               private string selectCommand;
                public string SelectCommand {
-                       get { return selectCommand; }
-                       set { selectCommand = value; }
+                       get { return selectCommand != null ? selectCommand : string.Empty; }
+                       set {
+                               if (SelectCommand == value)
+                                       return;
+                               selectCommand = value;
+                               OnDataSourceViewChanged (EventArgs.Empty);
+                       }
                }
 
                // LAME SPEC: MSDN says value should be saved in ViewState but tests show otherwise.
index b786264c3d0e92714ec82a05cfe3718a1a775a30..aa2b876a16b98e06d07c4593b68f6c15687d4568 100644 (file)
@@ -1,3 +1,9 @@
+2007-05-27 Igor Zelmanovich <igorz@mainsoft.com>
+
+       * ObjectDataSourceViewTest.cs:
+       * SqlDataSourceViewTest.cs:
+       new tests were added.   
+
 2007-05-07 Igor Zelmanovich <igorz@mainsoft.com>
 
        * MenuTest.cs:
index 9e9fc64fb8196bd7e9449f5a760d33c9f9b9ce3d..ef3a4045543eada6a843afc047e70857c6cadc96 100644 (file)
@@ -931,6 +931,77 @@ namespace MonoTests.System.Web.UI.WebControls
                        }
                }
 
+               [Test]
+               public void SelectCountMethod_DataSourceViewChanged ()
+               {
+                       ObjectViewPoker view = new ObjectViewPoker (new ObjectDataSource (), "", null);
+                       view.DataSourceViewChanged += new EventHandler (view_DataSourceViewChanged);
+
+                       Assert.AreEqual ("", view.SelectCountMethod);
+                       view.SelectCountMethod = null;
+                       Assert.AreEqual (1, eventsCalled.Count);
+                       Assert.AreEqual ("view_DataSourceViewChanged", eventsCalled [0]);
+                       Assert.AreEqual ("", view.SelectCountMethod);
+
+                       view.SelectCountMethod = null;
+                       Assert.AreEqual (2, eventsCalled.Count);
+                       Assert.AreEqual ("view_DataSourceViewChanged", eventsCalled [1]);
+                       Assert.AreEqual ("", view.SelectCountMethod);
+
+                       view.SelectCountMethod = "";
+                       Assert.AreEqual (2, eventsCalled.Count);
+               }
+
+               [Test]
+               public void SelectMethod_DataSourceViewChanged2 ()
+               {
+                       ObjectViewPoker view = new ObjectViewPoker (new ObjectDataSource (), "", null);
+                       view.DataSourceViewChanged += new EventHandler (view_DataSourceViewChanged);
+
+                       Assert.AreEqual ("", view.SelectMethod);
+                       view.SelectMethod = null;
+                       Assert.AreEqual (1, eventsCalled.Count);
+                       Assert.AreEqual ("view_DataSourceViewChanged", eventsCalled [0]);
+                       Assert.AreEqual ("", view.SelectMethod);
+
+                       view.SelectMethod = null;
+                       Assert.AreEqual (2, eventsCalled.Count);
+                       Assert.AreEqual ("view_DataSourceViewChanged", eventsCalled [1]);
+                       Assert.AreEqual ("", view.SelectMethod);
+
+                       view.SelectMethod = "";
+                       Assert.AreEqual (2, eventsCalled.Count);
+               }
+
+               [Test]
+               public void SelectMethod_DataSourceViewChanged1 ()
+               {
+                       ObjectViewPoker view = new ObjectViewPoker (new ObjectDataSource (), "", null);
+                       view.DataSourceViewChanged+=new EventHandler(view_DataSourceViewChanged);
+
+                       view.SelectMethod = "select_1";
+                       Assert.AreEqual (1, eventsCalled.Count);
+                       Assert.AreEqual ("view_DataSourceViewChanged", eventsCalled [0]);
+
+                       view.SelectMethod = "select_2";
+                       Assert.AreEqual (2, eventsCalled.Count);
+                       Assert.AreEqual ("view_DataSourceViewChanged", eventsCalled [1]);
+
+                       view.SelectMethod = "select_2";
+                       Assert.AreEqual (2, eventsCalled.Count);
+
+                       view.SelectCountMethod = "selectCount_1";
+                       Assert.AreEqual (3, eventsCalled.Count);
+                       Assert.AreEqual ("view_DataSourceViewChanged", eventsCalled [2]);
+
+                       view.SelectCountMethod = "selectCount_2";
+                       Assert.AreEqual (4, eventsCalled.Count);
+                       Assert.AreEqual ("view_DataSourceViewChanged", eventsCalled [3]);
+
+                       view.SelectCountMethod = "selectCount_2";
+                       Assert.AreEqual (4, eventsCalled.Count);
+               }
+
                private static void InitializeView (ObjectViewPoker view, InitViewType initType, out Hashtable keys, out Hashtable old_value, out Hashtable new_value) 
                {
                        view.TypeName = typeof (DummyDataSourceObject).AssemblyQualifiedName;
index 44e3c862421584bdb597858d54ff650e1e6cca95..6877f9bf039f62f4d1f53eb61847bdbe1b4201ba 100644 (file)
@@ -375,6 +375,53 @@ namespace MonoTests.System.Web.UI.WebControls
                        DontMatchParams,
                }
 
+               [Test]
+               public void SelectCommand_DataSourceViewChanged2 ()
+               {
+                       SqlDataSource ds = new SqlDataSource ();
+                       SqlViewPoker view = new SqlViewPoker (ds, "DefaultView", null);
+                       view.DataSourceViewChanged += new EventHandler (view_DataSourceViewChanged);
+
+                       Assert.AreEqual ("", view.SelectCommand);
+                       view.SelectCommand = null;
+                       Assert.AreEqual (1, eventsCalled.Count);
+                       Assert.AreEqual ("view_DataSourceViewChanged", eventsCalled [0]);
+                       Assert.AreEqual ("", view.SelectCommand);
+
+                       view.SelectCommand = null;
+                       Assert.AreEqual (2, eventsCalled.Count);
+                       Assert.AreEqual ("view_DataSourceViewChanged", eventsCalled [1]);
+                       Assert.AreEqual ("", view.SelectCommand);
+
+                       view.SelectCommand = "";
+                       Assert.AreEqual (2, eventsCalled.Count);
+               }
+
+               [Test]
+               public void SelectCommand_DataSourceViewChanged1 ()
+               {
+                       SqlDataSource ds = new SqlDataSource ();
+                       SqlViewPoker view = new SqlViewPoker (ds, "DefaultView", null);
+                       view.DataSourceViewChanged+=new EventHandler(view_DataSourceViewChanged);
+
+                       view.SelectCommand = "select 1";
+                       Assert.AreEqual (1, eventsCalled.Count);
+                       Assert.AreEqual ("view_DataSourceViewChanged", eventsCalled[0]);
+                       
+                       view.SelectCommand = "select 2";
+                       Assert.AreEqual (2, eventsCalled.Count);
+                       Assert.AreEqual ("view_DataSourceViewChanged", eventsCalled [1]);
+
+                       view.SelectCommand = "select 2";
+                       Assert.AreEqual (2, eventsCalled.Count);
+
+                       view.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
+                       Assert.AreEqual (2, eventsCalled.Count);
+
+                       view.SelectCommandType = SqlDataSourceCommandType.Text;
+                       Assert.AreEqual (2, eventsCalled.Count);
+               }
+
                private static SqlViewPoker InitializeView (InitViewType initType, ConflictOptions conflictDetection, out Hashtable keys, out Hashtable old_value, out Hashtable new_value) 
                {
                        SqlDataSource ds = new SqlDataSource ();