namespace MonoTests.System.Web.UI.WebControls
-{\r
+{
public class ObjectDataSourcePoker : ObjectDataSource
{
public ObjectDataSourcePoker () // constructor
public void DoLoadControlState (object savedState)
{
base.LoadControlState (savedState);
- }\r
-\r
- public new DataSourceView GetView (string viewName)\r
- {\r
- return base.GetView (viewName);\r
- }
- }\r
-\r
- #region Hellp_class_view\r
- public class CustomObjectDataSourceView : ObjectDataSourceView\r
- {\r
- public CustomObjectDataSourceView (ObjectDataSource owner, string name, HttpContext context)\r
- : base (owner, name, context)\r
- {\r
- }\r
-\r
- public new int ExecuteUpdate (IDictionary keys, IDictionary values, IDictionary oldValues)\r
- {\r
- return base.ExecuteUpdate (keys, values, oldValues);\r
- }\r
-\r
- public new int ExecuteDelete (IDictionary keys, IDictionary oldValues)\r
- {\r
- return base.ExecuteDelete (keys, oldValues);\r
- }\r
-\r
- public new IEnumerable ExecuteSelect (DataSourceSelectArguments arguments)\r
- {\r
- return base.ExecuteSelect (arguments);\r
- }\r
-\r
- public new int ExecuteInsert (IDictionary values)\r
- {\r
- return base.ExecuteInsert (values);\r
- }\r
-\r
- }\r
+ }
+
+ public new DataSourceView GetView (string viewName)
+ {
+ return base.GetView (viewName);
+ }
+ }
+
+ #region Hellp_class_view
+ public class CustomObjectDataSourceView : ObjectDataSourceView
+ {
+ public CustomObjectDataSourceView (ObjectDataSource owner, string name, HttpContext context)
+ : base (owner, name, context)
+ {
+ }
+
+ public new int ExecuteUpdate (IDictionary keys, IDictionary values, IDictionary oldValues)
+ {
+ return base.ExecuteUpdate (keys, values, oldValues);
+ }
+
+ public new int ExecuteDelete (IDictionary keys, IDictionary oldValues)
+ {
+ return base.ExecuteDelete (keys, oldValues);
+ }
+
+ public new IEnumerable ExecuteSelect (DataSourceSelectArguments arguments)
+ {
+ return base.ExecuteSelect (arguments);
+ }
+
+ public new int ExecuteInsert (IDictionary values)
+ {
+ return base.ExecuteInsert (values);
+ }
+
+ }
#endregion
[TestFixture]
- public class ObjectDataSourceTest\r
- {\r
- \r
-\r
-\r
+ public class ObjectDataSourceTest
+ {
+
+
+
[TestFixtureTearDown]
public void TearDown ()
{
WebTest.Unload ();
- }\r
-\r
+ }
+
public static void InitObjectDataSource (ObjectDataSourcePoker ds, string action)
{
Parameter p1, p2, p3;
ds.UpdateParameters.Add (p1);
ds.UpdateParameters.Add (p2);
ds.UpdateParameters.Add (p3);
- ds.ID = "MyObject";\r
- ds.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject"; //,MonoTests.System.Web
- \r
-\r
+ ds.ID = "MyObject";
+ ds.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+
+
}
- //Default properties\r
+ //Default properties
[Test]
Assert.AreEqual ("sortExpression", ods.SortParameterName, "SortParameterName");
ods.StartRowIndexParameterName = "ID";
Assert.AreEqual ("ID", ods.StartRowIndexParameterName, "StartRowIndexParameterName");
- Assert.AreEqual ("MonoTests.System.Web.UI.WebControls.MyTableObject", ods.TypeName, "TypeName");
+ Assert.AreEqual (typeof (MyTableObject).AssemblyQualifiedName, ods.TypeName, "TypeName");
Assert.AreEqual ("Update", ods.UpdateMethod, "UpdateMethod ");
- Assert.AreEqual ("FName", ods.UpdateParameters[1].Name, "UpdateParameters");
-
- }
-
- [Test]
- public void ObjectDataSource_NotWorkingAssignToDefaultProperties ()
- {
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ Assert.AreEqual ("FName", ods.UpdateParameters[1].Name, "UpdateParameters");
ods.CacheDuration = 1000;
Assert.AreEqual (1000, ods.CacheDuration, "CacheDuration");
ods.CacheExpirationPolicy = DataSourceCacheExpiry.Sliding;
Assert.AreEqual (true, ods.EnableCaching, "EnableCaching ");
ods.SqlCacheDependency = "Northwind:Employees";
Assert.AreEqual ("Northwind:Employees", ods.SqlCacheDependency, "SqlCacheDependency");
+
}
//ViewState
}
[Test]
- [Category("NotWorking")]
[Category ("NunitWeb")]
public void ObjectDataSource_ConvertNullToDBNull ()
{
catch (Exception ex) {
Assert.AreEqual (true,
ex.Message.Contains ("type 'System.DBNull' cannot be converted to type 'System.String'") || // dotnet
- ex.Message.Contains ("Value cannot be null."), "ConvertNullToDBNull"); // mono
+ ex.Message.Equals ("parameters"), "ConvertNullToDBNull"); // mono
dbnull = true;
}
Assert.AreEqual (true, dbnull, "ConvertNullToDBNull2");
[Test]
[Category ("NunitWeb")]
- [Category ("NotWorking")]
public void ObjectDataSource_EnablePaging ()
{
string html = new WebTest (PageInvoker.CreateOnLoad (
GridView gv = new GridView ();
ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
ods.ID = "ObjectDataSource1";
- ods.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject";
+ ods.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
ods.SelectMethod = "SelectForPaging";
ods.EnablePaging = true;
ods.SelectCountMethod = "SelectCount";
static void odc_Deleted (object sender, ObjectDataSourceStatusEventArgs e)
{
deleted = true;
- }\r
-\r
- [Test]\r
- public void ObjectDataSource_SelectExecute ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.SelectMethod = "GetMyData";\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectParameters.Add (new Parameter ("Fname", TypeCode.String, "TestSelect"));\r
- ArrayList ls =(ArrayList) view.ExecuteSelect (new DataSourceSelectArguments (""));\r
- Assert.AreEqual ("TestSelect", ls[0], "SelectExecute");\r
- }\r
-\r
- [Test]\r
- public void ObjectDataSource_SelectExecuteCaseSensitive ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.SelectMethod = "GetMyData";\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectParameters.Add (new Parameter ("fname", TypeCode.String, "TestSelect"));\r
- ArrayList ls = (ArrayList) view.ExecuteSelect (new DataSourceSelectArguments (""));\r
- Assert.AreEqual ("TestSelect", ls[0], "SelectExecuteCaseSensitive");\r
- }\r
-\r
- [Test]\r
- public void ObjectDataSource_DeleteExecute ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectMethod = "GetMyData";\r
- view.DeleteMethod = "Delete";\r
- Parameter p1, p2, p3;\r
- p1 = new Parameter ("ID", TypeCode.String, "1001");\r
- p2 = new Parameter ("FName", TypeCode.String, "Mahesh");\r
- p3 = new Parameter ("LName", TypeCode.String, "chand");\r
- view.DeleteParameters.Add (p1);\r
- view.DeleteParameters.Add (p2);\r
- view.DeleteParameters.Add (p3);\r
- view.OldValuesParameterFormatString = "oldvalue_{0}";\r
- \r
- Hashtable value = new Hashtable();\r
- value.Add("ID","test_id");\r
- view.ExecuteDelete (value, null);\r
- Assert.AreEqual (true, MyTableObject.DeleteWithOldValueCollection, "DeleteExecute");\r
- }\r
-\r
- [Test]\r
- public void ObjectDataSource_DeleteExecuteParameterCaseSensitive_1 ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectMethod = "GetMyData";\r
- view.DeleteMethod = "Delete";\r
- Parameter p1, p2, p3;\r
- p1 = new Parameter ("id", TypeCode.String, "1001");\r
- p2 = new Parameter ("fname", TypeCode.String, "Mahesh");\r
- p3 = new Parameter ("lname", TypeCode.String, "chand");\r
- view.DeleteParameters.Add (p1);\r
- view.DeleteParameters.Add (p2);\r
- view.DeleteParameters.Add (p3);\r
- view.OldValuesParameterFormatString = "oldvalue_{0}";\r
-\r
- Hashtable value = new Hashtable ();\r
- value.Add ("ID", "test_id");\r
- view.ExecuteDelete (value, null);\r
- Assert.AreEqual (true, MyTableObject.DeleteWithOldValueCollection, "DeleteExecuteParameterCaseSensitive");\r
- }\r
-\r
- [Test]\r
- [Category("NotWorking")]\r
- public void ObjectDataSource_DeleteExecuteMethodCaseSensitive ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectMethod = "GetMyData";\r
- view.DeleteMethod = "delete";\r
- Parameter p1, p2, p3;\r
- p1 = new Parameter ("ID", TypeCode.String, "1001");\r
- p2 = new Parameter ("FName", TypeCode.String, "Mahesh");\r
- p3 = new Parameter ("LName", TypeCode.String, "chand");\r
- view.DeleteParameters.Add (p1);\r
- view.DeleteParameters.Add (p2);\r
- view.DeleteParameters.Add (p3);\r
- view.OldValuesParameterFormatString = "oldvalue_{0}";\r
-\r
- Hashtable value = new Hashtable ();\r
- value.Add ("ID", "test_id");\r
- view.ExecuteDelete (value, null);\r
- Assert.AreEqual (true, MyTableObject.DeleteWithOldValueCollection, "DeleteExecuteMethodCaseSensitive");\r
- }\r
-\r
- [Test]\r
- public void ObjectDataSource_InsertExecute_1 ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectMethod = "GetMyData";\r
- view.InsertMethod = "Insert";\r
-\r
- //This hashtable ovveride \r
- Hashtable value = new Hashtable ();\r
- value.Add ("ID", "test_id");\r
- view.ExecuteInsert (value);\r
- Assert.AreEqual (true, MyTableObject.InsertWithParameters, "InsertExecute#1");\r
- }\r
-\r
- [Test]\r
- public void ObjectDataSource_InsertExecute_2 ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectMethod = "GetMyData";\r
- view.InsertMethod = "Insert";\r
-\r
- Parameter p1, p2, p3;\r
- p1 = new Parameter ("ID", TypeCode.String, "1001");\r
- p2 = new Parameter ("FName", TypeCode.String, "Mahesh");\r
- p3 = new Parameter ("LName", TypeCode.String, "chand");\r
- view.InsertParameters.Add (p1);\r
- view.InsertParameters.Add (p2);\r
- view.InsertParameters.Add (p3);\r
-\r
- //This hashtable ovveride \r
- Hashtable value = new Hashtable ();\r
- value.Add ("T", "test_id");\r
-\r
- //Merge parameters\r
- view.ExecuteInsert (value);\r
- Assert.AreEqual (true, MyTableObject.InsertWithMergedParameters, "InsertExecute#2");\r
- }\r
-\r
- [Test]\r
- public void ObjectDataSource_InsertParametersCaseSensitive ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectMethod = "GetMyData";\r
- view.InsertMethod = "Insert";\r
-\r
- Parameter p1, p2, p3;\r
- p1 = new Parameter ("id", TypeCode.String, "1001");\r
- p2 = new Parameter ("fname", TypeCode.String, "Mahesh");\r
- p3 = new Parameter ("lname", TypeCode.String, "chand");\r
- view.InsertParameters.Add (p1);\r
- view.InsertParameters.Add (p2);\r
- view.InsertParameters.Add (p3);\r
-\r
- //This hashtable ovveride \r
- Hashtable value = new Hashtable ();\r
- value.Add ("t", "test_id");\r
-\r
- //Merge parameters\r
- view.ExecuteInsert (value);\r
- Assert.AreEqual (true, MyTableObject.InsertWithMergedParameters, "InsertParametersCaseSensitive");\r
- }\r
-\r
- [Test]\r
- public void ObjectDataSource_UpdateExecute_1()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectMethod = "GetMyData";\r
- view.UpdateMethod = "Update";\r
- Parameter p1, p2, p3;\r
- p1 = new Parameter ("ID", TypeCode.String, "1001");\r
- p2 = new Parameter ("FName", TypeCode.String, "Mahesh");\r
- p3 = new Parameter ("LName", TypeCode.String, "chand");\r
- view.UpdateParameters.Add (p1);\r
- view.UpdateParameters.Add (p2);\r
- view.UpdateParameters.Add (p3);\r
- \r
- view.OldValuesParameterFormatString = "oldvalue_{0}";\r
- Hashtable value = new Hashtable ();\r
- value.Add ("P", "1000");\r
- view.ExecuteUpdate (value, null, null);\r
- Assert.AreEqual (true, MyTableObject.UpdateWithOldValueCollection, "UpdateExecute#1");\r
- }\r
-\r
- [Test]\r
- public void ObjectDataSource_UpdateExecute_2 ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectMethod = "GetMyData";\r
- view.UpdateMethod = "TryUpdate";\r
- Parameter p1, p2, p3;\r
- p1 = new Parameter ("ID", TypeCode.String, "1001");\r
- p2 = new Parameter ("FName", TypeCode.String, "Mahesh");\r
- p3 = new Parameter ("LName", TypeCode.String, "chand");\r
- view.UpdateParameters.Add (p1);\r
- view.UpdateParameters.Add (p2);\r
- view.UpdateParameters.Add (p3);\r
-\r
- view.OldValuesParameterFormatString = "oldvalue_{0}";\r
- Hashtable value = new Hashtable ();\r
- value.Add ("P", "1001");\r
- \r
- view.ExecuteUpdate (null, value, null);\r
- Assert.AreEqual (true, MyTableObject.UpdateWithMergedCollection, "UpdateExecute#2");\r
- }\r
-\r
- [Test]\r
- [Category ("NotWorking")]\r
- public void ObjectDataSource_UpdateExecute_CompareAllValues ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectMethod = "GetMyData";\r
- view.UpdateMethod = "TryUpdate_1";\r
- Parameter p1, p2, p3;\r
- p1 = new Parameter ("ID", TypeCode.String, "1001");\r
- p2 = new Parameter ("FName", TypeCode.String, "Mahesh");\r
- p3 = new Parameter ("LName", TypeCode.String, "chand");\r
- view.UpdateParameters.Add (p1);\r
- view.UpdateParameters.Add (p2);\r
- view.UpdateParameters.Add (p3);\r
-\r
- view.OldValuesParameterFormatString = "oldvalue_{0}";\r
- view.ConflictDetection = ConflictOptions.CompareAllValues;\r
- \r
- \r
- Hashtable value = new Hashtable ();\r
- value.Add ("ID", "1001");\r
-\r
- view.ConflictDetection = ConflictOptions.CompareAllValues;\r
- view.ExecuteUpdate (null,null, value);\r
- Assert.AreEqual (true, MyTableObject.UpdateWithCompareAllValues, "CompareAllValues");\r
- }\r
-\r
- [Test]\r
- [Category ("NotWorking")]\r
- public void ObjectDataSource_UpdateExecute_DataObjectTypeName ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.DataObjectTypeName = "MonoTests.System.Web.UI.WebControls.NewData,MonoTests.System.Web";\r
- \r
- view.SelectMethod = "GetMyData";\r
- view.UpdateMethod = "Update";\r
- view.OldValuesParameterFormatString = "oldvalue_{0}";\r
- view.ExecuteUpdate (null, null, null);\r
- Assert.AreEqual (true, MyTableObject.UpdateWithDataObjectTypeName, "UpdateExecute_DataObjectTypeName");\r
- }\r
-\r
-\r
- //Excpetions\r
- [Test] // Note: on ConflictOptions.CompareAllValues old values cannot be null;\r
- [Category ("NotWorking")]\r
- [ExpectedException (typeof (InvalidOperationException))]\r
- public void ObjectDataSource_UpdateExecute_CompareAllValues_Exception ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectMethod = "GetMyData";\r
- view.UpdateMethod = "TryUpdate_1";\r
- Parameter p1, p2, p3;\r
- p1 = new Parameter ("ID", TypeCode.String, "1001");\r
- p2 = new Parameter ("FName", TypeCode.String, "Mahesh");\r
- p3 = new Parameter ("LName", TypeCode.String, "chand");\r
- view.UpdateParameters.Add (p1);\r
- view.UpdateParameters.Add (p2);\r
- view.UpdateParameters.Add (p3);\r
-\r
- view.OldValuesParameterFormatString = "oldvalue_{0}";\r
- view.ConflictDetection = ConflictOptions.CompareAllValues;\r
- view.ExecuteUpdate (null, null, null);\r
- }\r
-\r
- [Test]\r
- [ExpectedException (typeof (InvalidOperationException))]\r
- public void ObjectDataSource_UpdateExecute_3 ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectMethod = "GetMyData";\r
- view.UpdateMethod = "Update";\r
- Parameter p1, p2, p3;\r
- p1 = new Parameter ("ID", TypeCode.String, "1001");\r
- p2 = new Parameter ("FName", TypeCode.String, "Mahesh");\r
- p3 = new Parameter ("LName", TypeCode.String, "chand");\r
- view.UpdateParameters.Add (p1);\r
- view.UpdateParameters.Add (p2);\r
- view.UpdateParameters.Add (p3);\r
-\r
- view.OldValuesParameterFormatString = "oldvalue_{0}";\r
- Hashtable value = new Hashtable ();\r
- value.Add ("ID", "1000");\r
- view.ExecuteUpdate (value, null, null);\r
- }\r
-\r
- [Test]\r
- [ExpectedException (typeof (InvalidOperationException))]\r
- public void ObjectDataSource_InsertParameterException ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectMethod = "GetMyData";\r
- view.InsertMethod = "Insert";\r
-\r
- Parameter p1, p2, p3;\r
- p1 = new Parameter ("id", TypeCode.String, "1001");\r
- p2 = new Parameter ("fname", TypeCode.String, "Mahesh");\r
- p3 = new Parameter ("lname", TypeCode.String, "chand");\r
- view.InsertParameters.Add (p1);\r
- view.InsertParameters.Add (p2);\r
- view.InsertParameters.Add (p3);\r
-\r
- //This hashtable ovveride \r
- Hashtable value = new Hashtable ();\r
- value.Add ("z", "test_id");\r
-\r
- //Merge parameters\r
- view.ExecuteInsert (value);\r
- Assert.AreEqual (true, MyTableObject.InsertWithMergedParameters, "InsertExecute");\r
- }\r
- \r
- [Test]\r
- [ExpectedException (typeof (InvalidOperationException))]\r
- public void ObjectDataSource_DeleteExecuteMethodParameterException()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectMethod = "GetMyData";\r
- view.DeleteMethod = "delete";\r
- Parameter p1, p2, p3;\r
- p1 = new Parameter ("ID", TypeCode.String, "1001");\r
- view.DeleteParameters.Add (p1);\r
- view.OldValuesParameterFormatString = "oldvalue_{0}";\r
- Hashtable value = new Hashtable ();\r
- value.Add ("ID", "test_id");\r
- view.ExecuteDelete (value, null);\r
- }\r
-\r
- [Test]\r
- [ExpectedException (typeof (InvalidOperationException))]\r
- public void ObjectDataSource_DeleteExecuteOldValueException ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectMethod = "GetMyData";\r
- view.DeleteMethod = "Delete";\r
- Parameter p1, p2, p3;\r
- p1 = new Parameter ("ID", TypeCode.String, "1001");\r
- p2 = new Parameter ("FName", TypeCode.String, "Mahesh");\r
- p3 = new Parameter ("LName", TypeCode.String, "chand");\r
- view.DeleteParameters.Add (p1);\r
- view.DeleteParameters.Add (p2);\r
- view.DeleteParameters.Add (p3);\r
- view.OldValuesParameterFormatString = "oldvalue_{0}";\r
-\r
- Hashtable value = new Hashtable ();\r
- value.Add ("ID", "test_id");\r
- value.Add ("FName", "test_FName");\r
- view.ExecuteDelete (value, null);\r
- Assert.AreEqual (true, MyTableObject.DeleteWithOldValueCollection, "DeleteExecute");\r
- }\r
-\r
- [Test]\r
- [ExpectedException (typeof (InvalidOperationException))]\r
- public void ObjectDataSource_SelectExecuteException_1 ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.SelectMethod = "GetMyData";\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectParameters.Add (new Parameter ("Name", TypeCode.String, "TestSelect"));\r
- IEnumerable res = view.ExecuteSelect (new DataSourceSelectArguments (""));\r
- }\r
-\r
- [ExpectedException (typeof (InvalidOperationException))]\r
- public void ObjectDataSource_SelectExecuteException_2 ()\r
- {\r
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();\r
- InitObjectDataSource (ods, "");\r
- CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);\r
- view.SelectMethod = "Fake";\r
- view.TypeName = "MonoTests.System.Web.UI.WebControls.MyTableObject,MonoTests.System.Web";\r
- view.SelectParameters.Add (new Parameter ("Fname", TypeCode.String, "TestSelect"));\r
- IEnumerable res = view.ExecuteSelect (new DataSourceSelectArguments (""));\r
+ }
+
+ [Test]
+ public void ObjectDataSource_SelectExecute ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.SelectMethod = "GetMyData";
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectParameters.Add (new Parameter ("Fname", TypeCode.String, "TestSelect"));
+ ArrayList ls =(ArrayList) view.ExecuteSelect (new DataSourceSelectArguments (""));
+ Assert.AreEqual ("TestSelect", ls[0], "SelectExecute");
+ }
+
+ [Test]
+ public void ObjectDataSource_SelectExecuteCaseSensitive ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.SelectMethod = "GetMyData";
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectParameters.Add (new Parameter ("fname", TypeCode.String, "TestSelect"));
+ ArrayList ls = (ArrayList) view.ExecuteSelect (new DataSourceSelectArguments (""));
+ Assert.AreEqual ("TestSelect", ls[0], "SelectExecuteCaseSensitive");
+ }
+
+ [Test]
+ public void ObjectDataSource_DeleteExecute ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.DeleteMethod = "Delete";
+ Parameter p1, p2, p3;
+ p1 = new Parameter ("ID", TypeCode.String, "1001");
+ p2 = new Parameter ("FName", TypeCode.String, "p_Mahesh");
+ p3 = new Parameter ("LName", TypeCode.String, "p_chand");
+ view.DeleteParameters.Add (p1);
+ view.DeleteParameters.Add (p2);
+ view.DeleteParameters.Add (p3);
+ view.OldValuesParameterFormatString = "oldvalue_{0}";
+
+ Hashtable keys = new Hashtable();
+ keys.Add("ID","k_test_id");
+ view.ExecuteDelete (keys, null);
+ Assert.AreEqual (true, MyTableObject.DeleteWithParamsAndKeys, "DeleteExecute");
+ Assert.AreEqual ("1001, p_Mahesh, p_chand, k_test_id", MyTableObject.UpdatePassedValues, "DeleteExecute Values");
+ }
+
+ [Test]
+ public void ObjectDataSource_DeleteExecuteParameterCaseSensitive_1 ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.DeleteMethod = "Delete";
+ Parameter p1, p2, p3;
+ p1 = new Parameter ("id", TypeCode.String, "1001");
+ p2 = new Parameter ("fname", TypeCode.String, "Mahesh");
+ p3 = new Parameter ("lname", TypeCode.String, "chand");
+ view.DeleteParameters.Add (p1);
+ view.DeleteParameters.Add (p2);
+ view.DeleteParameters.Add (p3);
+ view.OldValuesParameterFormatString = "oldvalue_{0}";
+
+ Hashtable value = new Hashtable ();
+ value.Add ("ID", "test_id");
+ view.ExecuteDelete (value, null);
+ Assert.AreEqual (true, MyTableObject.DeleteWithParamsAndKeys, "DeleteExecuteParameterCaseSensitive");
+ }
+
+ [Test]
+ public void ObjectDataSource_DeleteExecuteMethodCaseSensitive ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.DeleteMethod = "delete";
+ Parameter p1, p2, p3;
+ p1 = new Parameter ("ID", TypeCode.String, "1001");
+ p2 = new Parameter ("FName", TypeCode.String, "Mahesh");
+ p3 = new Parameter ("LName", TypeCode.String, "chand");
+ view.DeleteParameters.Add (p1);
+ view.DeleteParameters.Add (p2);
+ view.DeleteParameters.Add (p3);
+ view.OldValuesParameterFormatString = "oldvalue_{0}";
+
+ Hashtable value = new Hashtable ();
+ value.Add ("ID", "test_id");
+ view.ExecuteDelete (value, null);
+ Assert.AreEqual (true, MyTableObject.DeleteWithParamsAndKeys, "DeleteExecuteMethodCaseSensitive");
+ }
+
+ [Test]
+ public void ObjectDataSource_DeleteExecuteCompareAllValues ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.DeleteMethod = "DeleteOldValues";
+ view.ConflictDetection = ConflictOptions.CompareAllValues;
+ Hashtable keys;
+ Hashtable old_value;
+ Hashtable new_value;
+ InitializeView (view, out keys, out old_value, out new_value);
+
+ view.ExecuteDelete (keys, old_value);
+ Assert.AreEqual (true, MyTableObject.DeleteWithOldValuesCompareAllValues, "DeleteExecuteCompareAllValues");
+ Assert.AreEqual ("ov_1001, ov_Mahesh, ov_chand", MyTableObject.UpdatePassedValues, "DeleteExecuteCompareAllValues Values");
+ }
+
+ [Test]
+ public void ObjectDataSource_DeleteExecuteDataType ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.DataObjectTypeName = typeof (NewData).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.DeleteMethod = "Delete";
+ view.ConflictDetection = ConflictOptions.OverwriteChanges;
+ Hashtable keys;
+ Hashtable old_value;
+ Hashtable new_value;
+ InitializeView (view, out keys, out old_value, out new_value);
+
+ view.ExecuteDelete (keys, old_value);
+ Assert.AreEqual (true, MyTableObject.DeleteWithDataObjectTypeName, "DeleteExecuteDataType");
+ Assert.AreEqual ("k_1001, , ", MyTableObject.UpdatePassedValues, "DeleteExecuteDataType Values");
+ }
+
+ [Test]
+ public void ObjectDataSource_DeleteExecuteDataTypeCompareAllValues ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.DataObjectTypeName = typeof (NewData).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.DeleteMethod = "Delete";
+ view.ConflictDetection = ConflictOptions.CompareAllValues;
+ Hashtable keys;
+ Hashtable old_value;
+ Hashtable new_value;
+ InitializeView (view, out keys, out old_value, out new_value);
+
+ view.ExecuteDelete (keys, old_value);
+ Assert.AreEqual (true, MyTableObject.DeleteWithDataObjectTypeName, "DeleteExecuteDataTypeCompareAllValues");
+ Assert.AreEqual ("ov_1001, ov_Mahesh, ov_chand", MyTableObject.UpdatePassedValues, "DeleteExecuteDataTypeCompareAllValues Values");
+ }
+
+ [Test]
+ public void ObjectDataSource_InsertExecute_1 ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.InsertMethod = "Insert";
+
+ //This hashtable ovveride
+ Hashtable value = new Hashtable ();
+ value.Add ("ID", "test_id");
+ view.ExecuteInsert (value);
+ Assert.AreEqual (true, MyTableObject.InsertWithParameters, "InsertExecute#1");
+ }
+
+ [Test]
+ public void ObjectDataSource_InsertExecute_2 ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.InsertMethod = "Insert";
+
+ Parameter p1, p2, p3;
+ p1 = new Parameter ("ID", TypeCode.String, "1001");
+ p2 = new Parameter ("FName", TypeCode.String, "Mahesh");
+ p3 = new Parameter ("LName", TypeCode.String, "chand");
+ view.InsertParameters.Add (p1);
+ view.InsertParameters.Add (p2);
+ view.InsertParameters.Add (p3);
+
+ //This hashtable ovveride
+ Hashtable value = new Hashtable ();
+ value.Add ("T", "test_id");
+
+ //Merge parameters
+ view.ExecuteInsert (value);
+ Assert.AreEqual (true, MyTableObject.InsertWithMergedParameters, "InsertExecute#2");
+ }
+
+ [Test]
+ public void ObjectDataSource_InsertParametersCaseSensitive ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.InsertMethod = "Insert";
+
+ Parameter p1, p2, p3;
+ p1 = new Parameter ("id", TypeCode.String, "1001");
+ p2 = new Parameter ("fname", TypeCode.String, "Mahesh");
+ p3 = new Parameter ("lname", TypeCode.String, "chand");
+ view.InsertParameters.Add (p1);
+ view.InsertParameters.Add (p2);
+ view.InsertParameters.Add (p3);
+
+ //This hashtable ovveride
+ Hashtable value = new Hashtable ();
+ value.Add ("t", "test_id");
+
+ //Merge parameters
+ view.ExecuteInsert (value);
+ Assert.AreEqual (true, MyTableObject.InsertWithMergedParameters, "InsertParametersCaseSensitive");
+ }
+
+ [Test]
+ public void ObjectDataSource_UpdateExecute_1()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.UpdateMethod = "Update";
+ Parameter p1, p2, p3;
+ p1 = new Parameter ("ID", TypeCode.String, "1001");
+ p2 = new Parameter ("FName", TypeCode.String, "Mahesh");
+ p3 = new Parameter ("LName", TypeCode.String, "chand");
+ view.UpdateParameters.Add (p1);
+ view.UpdateParameters.Add (p2);
+ view.UpdateParameters.Add (p3);
+
+ view.OldValuesParameterFormatString = "oldvalue_{0}";
+ Hashtable value = new Hashtable ();
+ value.Add ("P", "1000");
+ view.ExecuteUpdate (value, null, null);
+ Assert.AreEqual (true, MyTableObject.UpdateWithOldValueCollection, "UpdateExecute#1");
+ }
+
+ [Test]
+ public void ObjectDataSource_UpdateExecute_2 ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.UpdateMethod = "TryUpdate";
+ Parameter p1, p2, p3;
+ p1 = new Parameter ("ID", TypeCode.String, "1001");
+ p2 = new Parameter ("FName", TypeCode.String, "Mahesh");
+ p3 = new Parameter ("LName", TypeCode.String, "chand");
+ view.UpdateParameters.Add (p1);
+ view.UpdateParameters.Add (p2);
+ view.UpdateParameters.Add (p3);
+
+ view.OldValuesParameterFormatString = "oldvalue_{0}";
+ Hashtable value = new Hashtable ();
+ value.Add ("P", "1001");
+
+ view.ExecuteUpdate (null, value, null);
+ Assert.AreEqual (true, MyTableObject.UpdateWithMergedCollection, "UpdateExecute#2");
+ }
+
+ [Test]
+ public void ObjectDataSource_UpdateExecute_CompareAllValues ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.UpdateMethod = "TryUpdate_1";
+ Parameter p1, p2, p3;
+ p1 = new Parameter ("ID", TypeCode.String, "1001");
+ p2 = new Parameter ("FName", TypeCode.String, "Mahesh");
+ p3 = new Parameter ("LName", TypeCode.String, "chand");
+ view.UpdateParameters.Add (p1);
+ view.UpdateParameters.Add (p2);
+ view.UpdateParameters.Add (p3);
+
+ view.OldValuesParameterFormatString = "oldvalue_{0}";
+ view.ConflictDetection = ConflictOptions.CompareAllValues;
+
+
+ Hashtable value = new Hashtable ();
+ value.Add ("ID", "1001");
+
+ view.ConflictDetection = ConflictOptions.CompareAllValues;
+ view.ExecuteUpdate (null,null, value);
+ Assert.AreEqual (true, MyTableObject.UpdateWithCompareAllValues, "CompareAllValues");
+ }
+
+ private static void InitializeView (CustomObjectDataSourceView view, out Hashtable keys, out Hashtable old_value, out Hashtable new_value)
+ {
+ Parameter p1, p2, p3, p4;
+ p1 = new Parameter ("oldvalue_ID", TypeCode.String, "p_1001");
+ p2 = new Parameter ("FName", TypeCode.String, "p_Mahesh");
+ p3 = new Parameter ("LName", TypeCode.String, "p_chand");
+ view.UpdateParameters.Add (p1);
+ view.UpdateParameters.Add (p2);
+ view.UpdateParameters.Add (p3);
+
+ p4 = new Parameter ("oldvalue_ID", TypeCode.String, "p_1001");
+ view.DeleteParameters.Add (p4);
+
+ view.OldValuesParameterFormatString = "oldvalue_{0}";
+
+ keys = new Hashtable ();
+ keys.Add ("ID", "k_1001");
+
+ old_value = new Hashtable ();
+ old_value.Add ("ID", "ov_1001");
+ old_value.Add ("FName", "ov_Mahesh");
+ old_value.Add ("LName", "ov_chand");
+
+ new_value = new Hashtable ();
+ new_value.Add ("ID", "n_1001");
+ new_value.Add ("FName", "n_Mahesh");
+ new_value.Add ("LName", "n_chand");
+ }
+
+ [Test]
+ public void ObjectDataSource_UpdateExecute_CompareAllValues2 ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.UpdateMethod = "UpdateCompareAllValues";
+ view.ConflictDetection = ConflictOptions.CompareAllValues;
+ Hashtable keys;
+ Hashtable old_value;
+ Hashtable new_value;
+ InitializeView (view, out keys, out old_value, out new_value);
+
+ view.ExecuteUpdate (keys, new_value, old_value);
+ Assert.AreEqual (true, MyTableObject.UpdateCompareAllValuesCalled, "CompareAllValues2");
+ Assert.AreEqual ("n_1001, n_Mahesh, n_chand, k_1001, ov_Mahesh, ov_chand", MyTableObject.UpdatePassedValues, "CompareAllValues2 Values");
+ }
+
+ [Test]
+ public void ObjectDataSource_UpdateExecute_OverwriteChanges ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.UpdateMethod = "UpdateOverwriteChanges";
+ view.ConflictDetection = ConflictOptions.OverwriteChanges;
+ Hashtable keys;
+ Hashtable old_value;
+ Hashtable new_value;
+ InitializeView (view, out keys, out old_value, out new_value);
+
+ view.ExecuteUpdate (keys, new_value, old_value);
+ Assert.AreEqual (true, MyTableObject.UpdateOverwriteChangesCalled, "OverwriteChanges");
+ Assert.AreEqual ("n_1001, n_Mahesh, n_chand, k_1001", MyTableObject.UpdatePassedValues, "OverwriteChanges Values");
+ }
+
+ [Test]
+ public void ObjectDataSource_UpdateExecute_DataObjectTypeName ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.DataObjectTypeName = typeof (NewData).AssemblyQualifiedName;
+
+ view.SelectMethod = "GetMyData";
+ view.UpdateMethod = "Update";
+ view.OldValuesParameterFormatString = "oldvalue_{0}";
+ view.ExecuteUpdate (null, null, null);
+ Assert.AreEqual (true, MyTableObject.UpdateWithDataObjectTypeName, "UpdateExecute_DataObjectTypeName");
+ Assert.AreEqual (", , ", MyTableObject.UpdatePassedValues, "UpdateExecute_DataObjectTypeName Values");
+ }
+ [Test]
+ public void ObjectDataSource_UpdateExecute_DataObjectTypeName2 ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.DataObjectTypeName = typeof (NewData).AssemblyQualifiedName;
+
+ view.SelectMethod = "GetMyData";
+ view.UpdateMethod = "Update";
+ view.OldValuesParameterFormatString = "oldvalue_{0}";
+ view.ConflictDetection = ConflictOptions.OverwriteChanges;
+ Hashtable keys;
+ Hashtable old_value;
+ Hashtable new_value;
+ InitializeView (view, out keys, out old_value, out new_value);
+
+ view.ExecuteUpdate (keys, new_value, old_value);
+ Assert.AreEqual (true, MyTableObject.UpdateWithDataObjectTypeName, "UpdateExecute_DataObjectTypeName2");
+ Assert.AreEqual ("n_1001, n_Mahesh, n_chand", MyTableObject.UpdatePassedValues, "UpdateExecute_DataObjectTypeName Values");
+ }
+
+
+ [Test]
+ public void ObjectDataSource_UpdateExecute_DataObjectTypeNameCompareAllValues ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.DataObjectTypeName = typeof (NewData).AssemblyQualifiedName;
+
+ view.SelectMethod = "GetMyData";
+ view.UpdateMethod = "Update";
+ view.OldValuesParameterFormatString = "oldvalue_{0}";
+ view.ConflictDetection = ConflictOptions.CompareAllValues;
+ Hashtable keys;
+ Hashtable old_value;
+ Hashtable new_value;
+ InitializeView (view, out keys, out old_value, out new_value);
+
+ view.ExecuteUpdate (keys, new_value, old_value);
+ Assert.AreEqual (true, MyTableObject.UpdateWithDataObjectTypeNameAllValues, "UpdateExecute_DataObjectTypeNameCompareAllValues");
+ Assert.AreEqual ("n_1001, n_Mahesh, n_chand, k_1001, ov_Mahesh, ov_chand", MyTableObject.UpdatePassedValues, "UpdateExecute_DataObjectTypeName Values");
+ }
+
+ //Excpetions
+ [Test] // Note: on ConflictOptions.CompareAllValues old values cannot be null;
+ [ExpectedException (typeof (InvalidOperationException))]
+ public void ObjectDataSource_UpdateExecute_CompareAllValues_Exception ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.UpdateMethod = "TryUpdate_1";
+ Parameter p1, p2, p3;
+ p1 = new Parameter ("ID", TypeCode.String, "1001");
+ p2 = new Parameter ("FName", TypeCode.String, "Mahesh");
+ p3 = new Parameter ("LName", TypeCode.String, "chand");
+ view.UpdateParameters.Add (p1);
+ view.UpdateParameters.Add (p2);
+ view.UpdateParameters.Add (p3);
+
+ view.OldValuesParameterFormatString = "oldvalue_{0}";
+ view.ConflictDetection = ConflictOptions.CompareAllValues;
+ view.ExecuteUpdate (null, null, null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (InvalidOperationException))]
+ public void ObjectDataSource_UpdateExecute_3 ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.UpdateMethod = "Update";
+ Parameter p1, p2, p3;
+ p1 = new Parameter ("ID", TypeCode.String, "1001");
+ p2 = new Parameter ("FName", TypeCode.String, "Mahesh");
+ p3 = new Parameter ("LName", TypeCode.String, "chand");
+ view.UpdateParameters.Add (p1);
+ view.UpdateParameters.Add (p2);
+ view.UpdateParameters.Add (p3);
+
+ view.OldValuesParameterFormatString = "oldvalue_{0}";
+ Hashtable value = new Hashtable ();
+ value.Add ("ID", "1000");
+ view.ExecuteUpdate (value, null, null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (InvalidOperationException))]
+ public void ObjectDataSource_InsertParameterException ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.InsertMethod = "Insert";
+
+ Parameter p1, p2, p3;
+ p1 = new Parameter ("id", TypeCode.String, "1001");
+ p2 = new Parameter ("fname", TypeCode.String, "Mahesh");
+ p3 = new Parameter ("lname", TypeCode.String, "chand");
+ view.InsertParameters.Add (p1);
+ view.InsertParameters.Add (p2);
+ view.InsertParameters.Add (p3);
+
+ //This hashtable ovveride
+ Hashtable value = new Hashtable ();
+ value.Add ("z", "test_id");
+
+ //Merge parameters
+ view.ExecuteInsert (value);
+ Assert.AreEqual (true, MyTableObject.InsertWithMergedParameters, "InsertExecute");
+ }
+
+ [Test]
+ [ExpectedException (typeof (InvalidOperationException))]
+ public void ObjectDataSource_DeleteExecuteMethodParameterException()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.DeleteMethod = "delete";
+ Parameter p1, p2, p3;
+ p1 = new Parameter ("ID", TypeCode.String, "1001");
+ view.DeleteParameters.Add (p1);
+ view.OldValuesParameterFormatString = "oldvalue_{0}";
+ Hashtable value = new Hashtable ();
+ value.Add ("ID", "test_id");
+ view.ExecuteDelete (value, null);
+ }
+
+ [Test]
+ [ExpectedException (typeof (InvalidOperationException))]
+ public void ObjectDataSource_DeleteExecuteOldValueException ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectMethod = "GetMyData";
+ view.DeleteMethod = "Delete";
+ Parameter p1, p2, p3;
+ p1 = new Parameter ("ID", TypeCode.String, "1001");
+ p2 = new Parameter ("FName", TypeCode.String, "Mahesh");
+ p3 = new Parameter ("LName", TypeCode.String, "chand");
+ view.DeleteParameters.Add (p1);
+ view.DeleteParameters.Add (p2);
+ view.DeleteParameters.Add (p3);
+ view.OldValuesParameterFormatString = "oldvalue_{0}";
+
+ Hashtable value = new Hashtable ();
+ value.Add ("ID", "test_id");
+ value.Add ("FName", "test_FName");
+ view.ExecuteDelete (value, null);
+ Assert.AreEqual (true, MyTableObject.DeleteWithParamsAndKeys, "DeleteExecute");
+ }
+
+ [Test]
+ [ExpectedException (typeof (InvalidOperationException))]
+ public void ObjectDataSource_SelectExecuteException_1 ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.SelectMethod = "GetMyData";
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectParameters.Add (new Parameter ("Name", TypeCode.String, "TestSelect"));
+ IEnumerable res = view.ExecuteSelect (new DataSourceSelectArguments (""));
+ }
+
+ [ExpectedException (typeof (InvalidOperationException))]
+ public void ObjectDataSource_SelectExecuteException_2 ()
+ {
+ ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
+ InitObjectDataSource (ods, "");
+ CustomObjectDataSourceView view = new CustomObjectDataSourceView (ods, "CustomView", null);
+ view.SelectMethod = "Fake";
+ view.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
+ view.SelectParameters.Add (new Parameter ("Fname", TypeCode.String, "TestSelect"));
+ IEnumerable res = view.ExecuteSelect (new DataSourceSelectArguments (""));
}
[Test]
ods.FilterExpression = "ID='1001'";
p.Controls.Add (ods);
IEnumerable table = (IEnumerable) ods.Select ();
- }\r
- }\r
-\r
- # region Object_Data_Source_DAL\r
+ }
+ }
+
+ # region Object_Data_Source_DAL
public class MyTableObject
{
- public static DataTable ds = CreateDataTable ();\r
- public MyTableObject ()\r
- {\r
- ResetEventCheckers ();\r
+ public static DataTable ds = CreateDataTable ();
+ public MyTableObject ()
+ {
+ ResetEventCheckers ();
}
public static DataTable GetMyData ()
{
return ds;
- }\r
-\r
- public static ArrayList GetMyData (string Fname)\r
- {\r
- ArrayList ar = new ArrayList ();\r
- ar.Add (Fname);\r
- return ar; \r
+ }
+
+ public static ArrayList GetMyData (string Fname)
+ {
+ ArrayList ar = new ArrayList ();
+ ar.Add (Fname);
+ return ar;
}
public static DbDataReader SelectException ()
ds.Rows.Remove (dr);
return ds;
- }\r
-\r
- public static DataTable Delete (string ID, string FName, string LName, string oldvalue_ID)\r
- {\r
- DeleteWithOldValueCollection = true;\r
- DataRow dr = ds.Rows.Find (ID);\r
- try {\r
- ds.Rows.Remove (dr); }\r
- catch{}\r
- return ds;\r
- }\r
-\r
- public static bool DeleteWithOldValueCollection;\r
- public static bool UpdateWithOldValueCollection;\r
- public static bool UpdateWithMergedCollection;\r
- public static bool InsertWithParameters;\r
- public static bool InsertWithMergedParameters;\r
- public static bool UpdateWithCompareAllValues;\r
+ }
+
+ public static DataTable Delete (string ID, string FName, string LName, string oldvalue_ID)
+ {
+ DeleteWithParamsAndKeys = true;
+ UpdatePassedValues = String.Join (", ", new string [] { ID, FName, LName, oldvalue_ID });
+ DataRow dr = ds.Rows.Find (ID);
+ try {
+ ds.Rows.Remove (dr); }
+ catch{}
+ return ds;
+ }
+
+ public static DataTable DeleteOldValues (string oldvalue_ID, string oldvalue_FName, string oldvalue_LName)
+ {
+ DeleteWithOldValuesCompareAllValues = true;
+ UpdatePassedValues = String.Join (", ", new string [] { oldvalue_ID, oldvalue_FName, oldvalue_LName });
+ return ds;
+ }
+
+ public static DataTable Delete (NewData anyName)
+ {
+ UpdatePassedValues = String.Join (", ", new string [] { anyName.ID, anyName.FName, anyName.LName });
+ DeleteWithDataObjectTypeName = true;
+ return ds;
+ }
+
+ public static bool DeleteWithParamsAndKeys;
+ public static bool DeleteWithOldValuesCompareAllValues;
+ public static bool DeleteWithDataObjectTypeName;
+ public static bool UpdateWithOldValueCollection;
+ public static bool UpdateWithMergedCollection;
+ public static bool InsertWithParameters;
+ public static bool InsertWithMergedParameters;
+ public static bool UpdateWithCompareAllValues;
public static bool UpdateWithDataObjectTypeName;
+ public static bool UpdateWithDataObjectTypeNameAllValues;
+ public static bool UpdateCompareAllValuesCalled;
+ public static bool UpdateOverwriteChangesCalled;
+ public static string UpdatePassedValues;
private void ResetEventCheckers()
- {\r
- DeleteWithOldValueCollection = false;\r
- InsertWithParameters = false;\r
- InsertWithMergedParameters = false;\r
- UpdateWithOldValueCollection = false;\r
- UpdateWithMergedCollection = false;\r
- UpdateWithCompareAllValues = false;\r
+ {
+ DeleteWithParamsAndKeys = false;
+ DeleteWithOldValuesCompareAllValues = false;
+ DeleteWithDataObjectTypeName = false;
+ InsertWithParameters = false;
+ InsertWithMergedParameters = false;
+ UpdateWithOldValueCollection = false;
+ UpdateWithMergedCollection = false;
+ UpdateWithCompareAllValues = false;
UpdateWithDataObjectTypeName = false;
+ UpdateWithDataObjectTypeNameAllValues = false;
+ UpdateCompareAllValuesCalled = false;
+ UpdateOverwriteChangesCalled = false;
+ UpdatePassedValues = "";
}
public static DataTable Update (string ID, string FName, string LName)
dr["LName"] = LName;
return ds;
- }\r
-\r
- public static DataTable TryUpdate_1 (string ID, string FName, string LName, string oldvalue_ID)\r
- {\r
- UpdateWithCompareAllValues = true;\r
- return ds;\r
- }\r
-\r
- \r
- public static DataTable TryUpdate (string ID, string FName, string LName, string P)\r
- {\r
- UpdateWithMergedCollection = true;\r
- return ds;\r
- }\r
-\r
- public static DataTable Update (string ID, string FName, string LName, string oldvalue_P )\r
- {\r
- UpdateWithOldValueCollection = true;\r
- return ds;\r
- }\r
-\r
- public static DataTable Update (NewData data)\r
- {\r
- UpdateWithDataObjectTypeName = true;\r
- return ds;\r
- }\r
-\r
- public static DataTable Insert (string ID)\r
- {\r
- InsertWithParameters = true;\r
- return ds;\r
- }\r
-\r
- public static DataTable Insert (string ID, string FName, string LName,string T)\r
- {\r
- InsertWithMergedParameters = true;\r
- return ds;\r
+ }
+
+ public static DataTable TryUpdate_1 (string ID, string FName, string LName, string oldvalue_ID)
+ {
+ UpdateWithCompareAllValues = true;
+ return ds;
+ }
+
+
+ public static DataTable TryUpdate (string ID, string FName, string LName, string P)
+ {
+ UpdateWithMergedCollection = true;
+ return ds;
+ }
+
+ public static DataTable Update (string ID, string FName, string LName, string oldvalue_P )
+ {
+ UpdateWithOldValueCollection = true;
+ return ds;
+ }
+
+ public static DataTable Update (NewData data)
+ {
+ UpdatePassedValues = String.Join (", ", new string [] { data.ID, data.FName, data.LName});
+ UpdateWithDataObjectTypeName = true;
+ return ds;
+ }
+
+ public static DataTable Update (NewData data, NewData oldvalue_data)
+ {
+ UpdatePassedValues = String.Join (", ", new string [] { data.ID, data.FName, data.LName, oldvalue_data.ID, oldvalue_data.FName, oldvalue_data.LName });
+ UpdateWithDataObjectTypeNameAllValues = true;
+ return ds;
+ }
+
+ public static DataTable UpdateCompareAllValues (string ID, string FName, string LName,
+ string oldvalue_ID, string oldvalue_FName, string oldvalue_LName)
+ {
+ UpdatePassedValues = String.Join (", ", new string [] {ID, FName, LName, oldvalue_ID, oldvalue_FName, oldvalue_LName });
+ UpdateCompareAllValuesCalled = true;
+ return ds;
+ }
+
+ public static DataTable UpdateOverwriteChanges (string ID, string FName, string LName, string oldvalue_ID)
+ {
+ UpdatePassedValues = String.Join (", ", new string [] { ID, FName, LName, oldvalue_ID });
+ UpdateOverwriteChangesCalled = true;
+ return ds;
+ }
+
+
+ public static DataTable Insert (string ID)
+ {
+ InsertWithParameters = true;
+ return ds;
+ }
+
+ public static DataTable Insert (string ID, string FName, string LName,string T)
+ {
+ InsertWithMergedParameters = true;
+ return ds;
}
public static DataTable Insert (string ID, string FName, string LName)
table.Rows.Add (new object[] { "Number" + current.ToString (), current });
}
return table;
- }\r
-\r
-\r
-\r
- }\r
- #endregion\r
-\r
- #region DataObjectTypeName\r
- public class NewData\r
- {\r
- private int IDValue;\r
- private string ENameValue;\r
- private string LNameValue;\r
-\r
- public string LName\r
- {\r
- get { return LNameValue; }\r
- set { LNameValue = value; }\r
- }\r
- \r
- public string EName\r
- {\r
- get { return ENameValue; }\r
- set { ENameValue = value; }\r
- }\r
-\r
- public int ID\r
- {\r
- get { return IDValue; }\r
- set { IDValue = value; }\r
- }\r
-\r
- }\r
- #endregion\r
-\r
+ }
+
+
+
+ }
+ #endregion
+
+ #region DataObjectTypeName
+ public class NewData
+ {
+ private string IDValue;
+ private string FNameValue;
+ private string LNameValue;
+
+ public string LName
+ {
+ get { return LNameValue; }
+ set { LNameValue = value; }
+ }
+
+ public string FName
+ {
+ get { return FNameValue; }
+ set { FNameValue = value; }
+ }
+
+ public string ID
+ {
+ get { return IDValue; }
+ set { IDValue = value; }
+ }
+
+ }
+ #endregion
+
}
#endif