<29/05/07 by:yoni yonik@mainsoft.com>
[mono.git] / mcs / class / System.Web / Test / System.Web.UI.WebControls / SqlDataSourceTest.cs
index 87e1b70a7b0c4239faaa1db341394922e6bd6be7..9c2e62598fd40b8a2cb1e736322c7d751c60d8b3 100644 (file)
@@ -42,6 +42,7 @@ using System.Web.UI;
 using System.Web.UI.WebControls;\r
 using System.Collections;\r
 using System.Text;\r
+using System.Data;\r
 \r
 namespace MonoTests.System.Web.UI.WebControls\r
 {\r
@@ -61,6 +62,11 @@ namespace MonoTests.System.Web.UI.WebControls
                {\r
                        LoadViewState (savedState);\r
                }\r
+\r
+               public void DoRaiseDataSourceChangedEvent ()\r
+               {\r
+                       base.RaiseDataSourceChangedEvent(new EventArgs());\r
+               }\r
        }\r
 \r
        class CustomSqlDataSourceView : SqlDataSourceView\r
@@ -224,6 +230,30 @@ namespace MonoTests.System.Web.UI.WebControls
                // Help parameter for Asserts\r
                private static SqlParameterCollection CustomEventParameterCollection;\r
                private static string PassedParameters;\r
+\r
+               [Test]\r
+               public void ReturnValueParameter ()\r
+               {\r
+                       SqlPoker sql = new SqlPoker ();\r
+                       sql.ConnectionString = "Data Source=fake\\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa";\r
+                       sql.ProviderName = "System.Data.SqlClient";\r
+                       CustomSqlDataSourceView view = new CustomSqlDataSourceView (sql, "TestView", null);\r
+                       view.SelectCommandType = SqlDataSourceCommandType.Text;\r
+                       view.SelectCommand = "SELECT * FROM products WHERE ProductID = @ProductID;";\r
+                       view.OldValuesParameterFormatString = "origin_{0}";\r
+\r
+                       view.SelectParameters.Add (new Parameter ("ProductID", TypeCode.Int32, "10"));\r
+                       Parameter myReturn = new Parameter ("myReturn", TypeCode.Int32);\r
+                       myReturn.Direction = ParameterDirection.ReturnValue;\r
+                       view.SelectParameters.Add (myReturn);\r
+                       \r
+                       view.Selecting += new SqlDataSourceSelectingEventHandler (view_Selecting);\r
+                       view.Select (new DataSourceSelectArguments ());\r
+                       \r
+                       Assert.IsNotNull (CustomEventParameterCollection, "Select event not fired");\r
+                       Assert.AreEqual (2, CustomEventParameterCollection.Count, "Parameter count");\r
+                       Assert.IsNotNull (CustomEventParameterCollection ["@myReturn"], "Parameter name");\r
+               }\r
                \r
                [Test]\r
                public void ExecuteSelect ()\r
@@ -749,6 +779,103 @@ namespace MonoTests.System.Web.UI.WebControls
                        return sb.ToString ();\r
                }\r
 \r
+               #region help_results\r
+               class eventAssert\r
+               {\r
+                       private static int _testcounter;\r
+                       private static bool _eventChecker;\r
+                       private eventAssert ()\r
+                       {\r
+                               _testcounter = 0;\r
+                       }\r
+\r
+                       public static bool eventChecker\r
+                       {\r
+                               get\r
+                               {\r
+                                       throw new NotImplementedException ();\r
+                               }\r
+                               set\r
+                               {\r
+                                       _eventChecker = value;\r
+                               }\r
+                       }\r
+\r
+                       static private void testAdded ()\r
+                       {\r
+                               _testcounter++;\r
+                               _eventChecker = false;\r
+                       }\r
+\r
+                       public static void IsTrue (string msg)\r
+                       {\r
+                               Assert.IsTrue (_eventChecker, msg + "#" + _testcounter);\r
+                               testAdded ();\r
+\r
+                       }\r
+\r
+                       public static void IsFalse (string msg)\r
+                       {\r
+                               Assert.IsFalse (_eventChecker, msg + "#" + _testcounter);\r
+                               testAdded ();\r
+                       }\r
+               }\r
+               #endregion\r
+\r
+               [Test]\r
+               [Category ("NotWorking")]\r
+               public void SqlDataSource_DataSourceViewChanged ()\r
+               {\r
+                       SqlPoker sql = new SqlPoker ();\r
+                       ((IDataSource) sql).DataSourceChanged += new EventHandler (SqlDataSourceTest_DataSourceChanged);\r
+\r
+                       sql.DoRaiseDataSourceChangedEvent ();\r
+                       eventAssert.IsTrue ("SqlDataSourceView"); // Assert include counter the first is zero\r
+                       sql.CacheKeyDependency = "hi";\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.CancelSelectOnNullParameter = false;\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.ConflictDetection = ConflictOptions.CompareAllValues;\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.DeleteCommandType = SqlDataSourceCommandType.StoredProcedure;\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.InsertCommandType = SqlDataSourceCommandType.StoredProcedure;\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.UpdateCommandType = SqlDataSourceCommandType.StoredProcedure;\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.OldValuesParameterFormatString = "{1}";\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.SqlCacheDependency = "hi";\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.SortParameterName = "hi";\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.CacheDuration = 1;\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.CacheExpirationPolicy = DataSourceCacheExpiry.Sliding;\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.EnableCaching = true;\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.DataSourceMode = SqlDataSourceMode.DataReader;\r
+                       eventAssert.IsTrue ("SqlDataSourceView");\r
+                       sql.DeleteCommand = "DELETE foo";\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.InsertCommand = "INSERT foo";\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.SelectCommand = "SELECT foo";\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.UpdateCommand = "UPDATE foo";\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+                       sql.FilterExpression = "hi";\r
+                       eventAssert.IsFalse ("SqlDataSourceView");\r
+               }\r
+\r
+               void SqlDataSourceTest_DataSourceChanged (object sender, EventArgs e)\r
+               {\r
+                       eventAssert.eventChecker = true;\r
+               }\r
+\r
                //exceptions \r
                [Test]\r
                [ExpectedException (typeof (NotSupportedException))]\r