| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749 |
- //
- // Tests for System.Web.UI.WebControls.FormView.cs
- //
- // Author:
- // Merav Sudri ([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 NUnit.Framework;
- using System;
- using System.Threading;
- using System.Data;
- using System.Data.Common;
- using System.IO;
- using System.Drawing;
- using System.Collections;
- using System.Globalization;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using MonoTests.SystemWeb.Framework;
- using MonoTests.stand_alone.WebHarness;
- namespace MonoTests.System.Web.UI.WebControls
- {
- public class ObjectDataSourcePoker : ObjectDataSource
- {
- public ObjectDataSourcePoker () // constructor
- {
-
- TrackViewState ();
- }
- public void DoRaiseDataSourceChangedEvent ()
- {
- base.RaiseDataSourceChangedEvent (new EventArgs ());
- }
- public object SaveState ()
- {
- return SaveViewState ();
- }
- public void LoadState (object o)
- {
- LoadViewState (o);
-
- }
- public StateBag StateBag
- {
- get { return base.ViewState; }
- }
- public string Render ()
- {
- StringWriter sw = new StringWriter ();
- HtmlTextWriter tw = new HtmlTextWriter (sw);
- Render (tw);
- return sw.ToString ();
- }
- public void DoOnBubbleEvent (Object source, EventArgs e)
- {
- base.OnBubbleEvent (source, e);
- }
- public object DoSaveControlState ()
- {
- return base.SaveControlState ();
- }
- public void DoLoadControlState (object savedState)
- {
- base.LoadControlState (savedState);
- }
- 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
- {
- bool eventChecker;
- [TestFixtureTearDown]
- public void TearDown ()
- {
- WebTest.Unload ();
- }
- public static void InitObjectDataSource (ObjectDataSourcePoker ds, string action)
- {
- Parameter p1, p2, p3;
- switch (action) {
-
- case "insert": p1 = new Parameter ("ID", TypeCode.String, "1004");
- p2 = new Parameter ("fname", TypeCode.String, "David");
- p3 = new Parameter ("LName", TypeCode.String, "Eli");
- break;
-
- case "update": p1 = new Parameter ("ID", TypeCode.String, "1001");
- p2 = new Parameter ("FName", TypeCode.String, "David");
- p3 = new Parameter ("LName", TypeCode.String, "Eli");
- break;
- case "DBNull": p1 = new Parameter ("ID");
- p2 = new Parameter ("FName");
- p3 = new Parameter ("LName");
- break;
-
- default: p1 = new Parameter ("ID", TypeCode.String, "1001");
- p2 = new Parameter ("FName", TypeCode.String, "Mahesh");
- p3 = new Parameter ("LName", TypeCode.String, "chand");
- break;
-
- }
- ds.SelectMethod = "GetMyData";
- ds.DeleteMethod = "Delete";
- ds.InsertMethod = "Insert";
- ds.UpdateMethod = "Update";
- ds.SelectCountMethod = "SelectCount";
- ds.DeleteParameters.Add (p1);
- ds.DeleteParameters.Add (p2);
- ds.DeleteParameters.Add (p3);
- ds.InsertParameters.Add (p1);
- ds.InsertParameters.Add (p2);
- ds.InsertParameters.Add (p3);
- ds.UpdateParameters.Add (p1);
- ds.UpdateParameters.Add (p2);
- ds.UpdateParameters.Add (p3);
- ds.ID = "MyObject";
- ds.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
-
- }
- //Default properties
-
- [Test]
- public void ObjectDataSource_DefaultProperties ()
- {
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
-
- Assert.AreEqual (ConflictOptions.OverwriteChanges, ods.ConflictDetection, "ConflictDetection");
- Assert.AreEqual ("",ods.DataObjectTypeName ,"DataObjectTypeName ");
- Assert.AreEqual ("", ods.DeleteMethod, "DeleteMethod");
- Assert.AreEqual (typeof(ParameterCollection),ods.DeleteParameters.GetType (),"DeleteParameters");
- Assert.AreEqual (false, ods.EnablePaging, "EnablePaging ");
- Assert.AreEqual ("", ods.FilterExpression, "FilterExpression ");
- Assert.AreEqual (typeof (ParameterCollection), ods.FilterParameters.GetType (), "FilterParameters");
- Assert.AreEqual ("", ods.InsertMethod, "InsertMethod ");
- Assert.AreEqual (typeof (ParameterCollection), ods.InsertParameters.GetType (), "InsertParameters ");
- Assert.AreEqual ("maximumRows", ods.MaximumRowsParameterName, "MaximumRowsParameterName");
- Assert.AreEqual ("{0}", ods.OldValuesParameterFormatString, "OldValuesParameterFormatString");
- Assert.AreEqual ("", ods.SelectCountMethod, "SelectCountMethod");
- Assert.AreEqual ("", ods.SelectMethod, "SelectMethod ");
- Assert.AreEqual (typeof (ParameterCollection), ods.SelectParameters.GetType (), "SelectParameters");
- Assert.AreEqual ("", ods.SortParameterName, "SortParameterName");
- Assert.AreEqual ("startRowIndex", ods.StartRowIndexParameterName, "StartRowIndexParameterName");
- Assert.AreEqual ("", ods.TypeName, "TypeName");
- Assert.AreEqual ("", ods.UpdateMethod, "UpdateMethod ");
- Assert.AreEqual (typeof (ParameterCollection), ods.UpdateParameters.GetType (), "UpdateParameters");
- Assert.AreEqual (0, ods.CacheDuration, "CacheDuration");
- Assert.AreEqual (DataSourceCacheExpiry.Absolute, ods.CacheExpirationPolicy, "CacheExpirationPolicy");
- Assert.AreEqual ("", ods.CacheKeyDependency, "CacheKeyDependency");
- Assert.AreEqual (false, ods.ConvertNullToDBNull, "ConvertNullToDBNull ");
- Assert.AreEqual (false, ods.EnableCaching, "EnableCaching ");
- Assert.AreEqual ("", ods.SqlCacheDependency, "SqlCacheDependency");
-
- }
- //Non default properties values
- [Test]
- public void ObjectDataSource_AssignToDefaultProperties ()
- {
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
- InitObjectDataSource (ods,"");
- ods.ConflictDetection = ConflictOptions.CompareAllValues;
- Assert.AreEqual (ConflictOptions.CompareAllValues, ods.ConflictDetection, "ConflictDetection");
- ods.DataObjectTypeName = "MyData";
- Assert.AreEqual ("MyData", ods.DataObjectTypeName, "DataObjectTypeName ");
- Assert.AreEqual ("Delete", ods.DeleteMethod, "DeleteMethod");
- Assert.AreEqual (3, ods.DeleteParameters.Count, "DeleteParameters");
- ods.EnablePaging = true;
- Assert.AreEqual (true, ods.EnablePaging, "EnablePaging ");
- ods.FilterExpression = "ID='{0}'";
- Assert.AreEqual ("ID='{0}'", ods.FilterExpression, "FilterExpression ");
- TextBox TextBox1=new TextBox ();
- TextBox1.Text ="1001";
- FormParameter p=new FormParameter ("ID","TextBox1");
- p.DefaultValue = "1002";
- ods.FilterParameters.Add (p);
- Assert.AreEqual ("ID", ods.FilterParameters[0].Name, "FilterParameters1");
- Assert.AreEqual ("1002", ods.FilterParameters[0].DefaultValue , "FilterParameters2");
- Assert.AreEqual ("TextBox1", ((FormParameter )ods.FilterParameters[0]).FormField, "FilterParameters3");
- Assert.AreEqual ("Insert", ods.InsertMethod, "InsertMethod ");
- Assert.AreEqual ("ID", ods.InsertParameters[0].Name , "InsertParameters ");
- ods.MaximumRowsParameterName = "SelectCount";
- Assert.AreEqual ("SelectCount", ods.MaximumRowsParameterName, "MaximumRowsParameterName");
- ods.OldValuesParameterFormatString = "ID";
- Assert.AreEqual ("ID", ods.OldValuesParameterFormatString, "OldValuesParameterFormatString");
- Assert.AreEqual ("SelectCount", ods.SelectCountMethod, "SelectCountMethod");
- Assert.AreEqual ("GetMyData", ods.SelectMethod, "SelectMethod ");
- Parameter dummy = new Parameter ();
- dummy.Name = "Test";
- ods.SelectParameters.Add (dummy);
- Assert.AreEqual ("Test", ods.SelectParameters[0].Name , "SelectParameters");
- ods.SortParameterName = "sortExpression";
- Assert.AreEqual ("sortExpression", ods.SortParameterName, "SortParameterName");
- ods.StartRowIndexParameterName = "ID";
- Assert.AreEqual ("ID", ods.StartRowIndexParameterName, "StartRowIndexParameterName");
- Assert.AreEqual (typeof (MyTableObject).AssemblyQualifiedName, ods.TypeName, "TypeName");
- Assert.AreEqual ("Update", ods.UpdateMethod, "UpdateMethod ");
- Assert.AreEqual ("FName", ods.UpdateParameters[1].Name, "UpdateParameters");
- ods.CacheDuration = 1000;
- Assert.AreEqual (1000, ods.CacheDuration, "CacheDuration");
- ods.CacheExpirationPolicy = DataSourceCacheExpiry.Sliding;
- Assert.AreEqual (DataSourceCacheExpiry.Sliding, ods.CacheExpirationPolicy, "CacheExpirationPolicy");
- ods.CacheKeyDependency = "ID";
- Assert.AreEqual ("ID", ods.CacheKeyDependency, "CacheKeyDependency");
- ods.ConvertNullToDBNull = true;
- Assert.AreEqual (true, ods.ConvertNullToDBNull, "ConvertNullToDBNull ");
- ods.EnableCaching = true;
- Assert.AreEqual (true, ods.EnableCaching, "EnableCaching ");
- ods.SqlCacheDependency = "Northwind:Employees";
- Assert.AreEqual ("Northwind:Employees", ods.SqlCacheDependency, "SqlCacheDependency");
-
- }
- //ViewState
- [Test]
- public void ObjectDataSource_ViewState ()
- {
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
- //InitObjectDataSource (ods,"");
- ods.CacheDuration = 1;
- ods.CacheExpirationPolicy = DataSourceCacheExpiry.Sliding;
- ods.CacheKeyDependency = "key";
- ods.ConflictDetection = ConflictOptions.CompareAllValues;
- ods.ConvertNullToDBNull = true;
- ods.DataObjectTypeName = "DataObjectType";
- ods.DeleteMethod = "deleteMethod";
- ods.EnableCaching = true;
- ods.EnablePaging = true;
- ods.FilterExpression = "filter expression";
- ods.InsertMethod = "insertMethod";
- ods.MaximumRowsParameterName = "maxRows";
- ods.OldValuesParameterFormatString = "old_{0}";
- ods.SelectCountMethod = "selectCountMethod";
- ods.SelectMethod = "selectMethod";
- ods.SortParameterName = "sortParamName";
- ods.SqlCacheDependency = "cacheDependency";
- ods.StartRowIndexParameterName = "startRow";
- ods.TypeName = "TypeName";
- ods.UpdateMethod = "updateMethod";
- object state = ods.SaveState ();
- Assert.IsNull (state, "ViewState is null");
- ObjectDataSourcePoker copy = new ObjectDataSourcePoker ();
- copy.LoadState (state);
- }
- //Properties functionality
- public void ObjectDataSource_ConflictDetection ()
- {
- //Not implemented
- }
- [Test]
- [Category ("NunitWeb")]
- public void ObjectDataSource_ConvertNullToDBNull ()
- {
- string html = new WebTest (PageInvoker.CreateOnLoad (new PageDelegate (ConvertNullToDBNull))).Run ();
- }
-
- public static void ConvertNullToDBNull (Page p)
- {
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
- InitObjectDataSource (ods,"DBNull");
- bool dbnull = false;
- ods.ConvertNullToDBNull = true;
- try {
- ods.Delete ();
- }
- catch (Exception ex) {
- Assert.AreEqual (true,
- ex.Message.Contains ("type 'System.DBNull' cannot be converted to type 'System.String'") || // dotnet
- ex.Message.Contains ("type System.DBNull cannot be converted to target type: System.String")); // mono
- dbnull = true;
- }
- Assert.AreEqual (true, dbnull, "ConvertNullToDBNull2");
- }
- [Test]
- [Category ("NunitWeb")]
- public void ObjectDataSource_FilterExpression ()
- {
- string html = new WebTest (PageInvoker.CreateOnLoad (
- new PageDelegate (FilterExpression))).Run ();
- string newHtml= HtmlDiff.GetControlFromPageHtml (html);
- string origHtml = "<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td>ID</td><td>FName</td><td>LName</td>\r\n\t</tr><tr>\r\n\t\t<td>1002</td><td>Melanie</td><td>Talmadge</td>\r\n\t</tr>\r\n</table>";
- HtmlDiff.AssertAreEqual (origHtml, newHtml, "FilterExpression");
- }
- public static void FilterExpression (Page p)
- {
- LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
- LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
- DataGrid dg = new DataGrid ();
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
- InitObjectDataSource (ods, "");
- ods.FilterExpression = "ID='1002'";
- p.Controls.Add (lcb);
- p.Controls.Add (dg);
- p.Controls.Add (ods);
- p.Controls.Add (lce);
- dg.DataSource = ods;
- dg.DataBind ();
-
- }
- [Test]
- [Category ("NunitWeb")]
- public void ObjectDataSource_FilterParameter ()
- {
- string html = new WebTest (PageInvoker.CreateOnLoad (
- new PageDelegate (FilterParameter))).Run ();
- string newHtml = HtmlDiff.GetControlFromPageHtml (html);
- string origHtml = "<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td>ID</td><td>FName</td><td>LName</td>\r\n\t</tr><tr>\r\n\t\t<td>1003</td><td>Vinay</td><td>Bansal</td>\r\n\t</tr>\r\n</table>";
- HtmlDiff.AssertAreEqual (origHtml, newHtml, "FilterExpression");
- }
- public static void FilterParameter (Page p)
- {
- LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
- LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
- DataGrid dg = new DataGrid ();
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
- InitObjectDataSource (ods, "");
- ods.FilterExpression = "{0}";
- Parameter p1 = new Parameter ("ID", TypeCode.String, "ID=1003");
- ods.FilterParameters.Add (p1);
- p.Controls.Add (lcb);
- p.Controls.Add (dg);
- p.Controls.Add (ods);
- p.Controls.Add (lce);
- dg.DataSource = ods;
- dg.DataBind ();
- }
- [Test]
- [Category ("NunitWeb")]
- public void ObjectDataSource_EnablePaging ()
- {
- string html = new WebTest (PageInvoker.CreateOnLoad (
- new PageDelegate (EnablePaging))).Run ();
- string newHtml = HtmlDiff.GetControlFromPageHtml (html);
- #if NET_4_0
- string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">Name</th><th scope=\"col\">Number</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number0</td><td>0</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number1</td><td>1</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number2</td><td>2</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number3</td><td>3</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number4</td><td>4</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('ctl01','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('ctl01','Page$3')\">3</a></td><td><a href=\"javascript:__doPostBack('ctl01','Page$4')\">4</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
- #else
- string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<th scope=\"col\">Name</th><th scope=\"col\">Number</th>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number0</td><td>0</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number1</td><td>1</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number2</td><td>2</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number3</td><td>3</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Number4</td><td>4</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('ctl01','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('ctl01','Page$3')\">3</a></td><td><a href=\"javascript:__doPostBack('ctl01','Page$4')\">4</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
- #endif
- HtmlDiff.AssertAreEqual (origHtml, newHtml, "EnablePaging");
- }
- public static void EnablePaging (Page p)
- {
- LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
- LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
- GridView gv = new GridView ();
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
- ods.ID = "ObjectDataSource1";
- ods.TypeName = typeof (MyTableObject).AssemblyQualifiedName;
- ods.SelectMethod = "SelectForPaging";
- ods.EnablePaging = true;
- ods.SelectCountMethod = "SelectCount";
- ods.MaximumRowsParameterName = "maxRows";
- ods.StartRowIndexParameterName = "startIndex";
- gv.AllowPaging = true;
- gv.PageSize = 5;
- p.Controls.Add (lcb);
- p.Controls.Add (gv);
- p.Controls.Add (ods);
- p.Controls.Add (lce);
- gv.DataSourceID = "ObjectDataSource1";
- gv.DataBind ();
- }
- //public methods
- [Test]
- [Category ("NunitWeb")]
- public void ObjectDataSource_Delete ()
- {
- string html = new WebTest (PageInvoker.CreateOnLoad (
- new PageDelegate (DeleteMethod))).Run ();
- string newHtml = HtmlDiff.GetControlFromPageHtml (html);
- string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1002</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Melanie</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Talmadge</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
- HtmlDiff.AssertAreEqual (origHtml, newHtml, "DeleteRender");
- }
- public static void DeleteMethod (Page p)
- {
- LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
- LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
- MyTableObject.ds = MyTableObject.CreateDataTable ();
- DetailsView dv = new DetailsView ();
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
- ods.Deleted += new ObjectDataSourceStatusEventHandler (odc_Deleted);
- ods.Deleting += new ObjectDataSourceMethodEventHandler (odc_Deleting);
- InitObjectDataSource (ods,"");
- dv.Page = p;
- ods.Page = p;
- dv.DataKeyNames = new string[] { "ID" };
- dv.DataSource = ods;
- p.Controls.Add (lcb);
- p.Controls.Add (ods);
- p.Controls.Add (dv);
- p.Controls.Add (lce);
- dv.DataBind ();
- Assert.AreEqual (3, dv.DataItemCount, "BeforeDelete1");
- Assert.AreEqual (1001, dv.SelectedValue, "BeforeDelete2");
- Assert.AreEqual (false, deleting, "BeforeDeletingEvent");
- Assert.AreEqual (false, deleted, "BeforeDeletedEvent");
- ods.Delete ();
- dv.DataBind ();
- Assert.AreEqual (true, deleting, "AfterDeletingEvent");
- Assert.AreEqual (true, deleted, "AfterDeletedEvent");
- Assert.AreEqual (2, dv.DataItemCount, "BeforeDelete1");
- Assert.AreEqual (1002, dv.SelectedValue, "BeforeDelete2");
- }
- [Test]
- [Category ("NunitWeb")]
- public void ObjectDataSource_Select ()
- {
- string html = new WebTest (PageInvoker.CreateOnLoad (
- new PageDelegate (SelectMethod))).Run ();
- }
-
- public static void SelectMethod (Page p)
- {
- MyTableObject.ds = MyTableObject.CreateDataTable ();
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
- InitObjectDataSource (ods,"");
- ods.Selected += new ObjectDataSourceStatusEventHandler (odc_Selected);
- ods.Selecting += new ObjectDataSourceSelectingEventHandler (odc_Selecting);
- p.Controls.Add (ods);
- Assert.AreEqual (false, selecting, "BeforeSelectingEvent");
- Assert.AreEqual (false, selected, "BeforeSelectedEvent");
- IEnumerable table = (IEnumerable) ods.Select ();
- Assert.AreEqual (3,((DataView) table).Count, "ItemsCount");
- Assert.AreEqual ("Mahesh", ((DataView) table)[0].Row.ItemArray[1], "FirstItemData");
- Assert.AreEqual (1002, ((DataView) table)[1].Row.ItemArray[0], "SecondItemData");
- Assert.AreEqual ("Bansal", ((DataView) table)[2].Row.ItemArray[2], "ThirdItemData");
- Assert.AreEqual (true, selecting, "AfterSelectingEvent");
- Assert.AreEqual (true, selected, "AfterSelectedEvent");
- }
- [Test]
- [Category ("NunitWeb")]
- public void ObjectDataSource_Select_Cached ()
- {
- string html = new WebTest (PageInvoker.CreateOnLoad (
- new PageDelegate (SelectMethodCached))).Run ();
- }
- public static void SelectMethodCached (Page p)
- {
- MyTableObject.ds = MyTableObject.CreateDataTable ();
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
- ods.EnableCaching = true;
- InitObjectDataSource (ods, "");
- p.Controls.Add (ods);
- ods.Selecting += new ObjectDataSourceSelectingEventHandler (odc_Selecting);
- selecting = false;
- IEnumerable table = (IEnumerable) ods.Select ();
- Assert.AreEqual (true, selecting, "AfterSelectingEvent");
- selecting = false;
- IEnumerable table2 = (IEnumerable) ods.Select ();
- Assert.AreEqual (false, selecting, "AfterSelectingEvent");
- }
- [Test]
- [Category ("NunitWeb")]
- public void ObjectDataSource_Insert ()
- {
- string html = new WebTest (PageInvoker.CreateOnLoad (
- new PageDelegate (InsertMethod))).Run ();
- }
- public static void InsertMethod (Page p)
- {
- MyTableObject.ds = MyTableObject.CreateDataTable ();
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
- InitObjectDataSource (ods,"insert");
- ods.Inserted += new ObjectDataSourceStatusEventHandler (odc_Inserted);
- ods.Inserting += new ObjectDataSourceMethodEventHandler (odc_Inserting);
- p.Controls.Add (ods);
- Assert.AreEqual (3, ((DataView) ods.Select ()).Count, "BeforeInsert");
- Assert.AreEqual (false, inserted , "BeforeInsertedEvent");
- Assert.AreEqual (false, inserting , "BeforeInsertingEvent");
- ods.Insert ();
- Assert.AreEqual (4, ((DataView) ods.Select ()).Count , "AfterInsert1");
- Assert.AreEqual (1004,((DataView) ods.Select ())[3].Row.ItemArray[0], "AfterInsert2");
- Assert.AreEqual ("David", ((DataView) ods.Select ())[3].Row.ItemArray[1], "AfterInsert3");
- Assert.AreEqual (true, inserted, "AfterInsertedEvent");
- Assert.AreEqual (true, inserting, "AfterInsertingEvent");
-
- }
- [Test]
- [Category ("NunitWeb")]
- public void ObjectDataSource_Update ()
- {
- string html = new WebTest (PageInvoker.CreateOnLoad (
- new PageDelegate (UpdateMethod))).Run ();
- }
- public static void UpdateMethod (Page p)
- {
- MyTableObject.ds = MyTableObject.CreateDataTable ();
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
- InitObjectDataSource (ods, "update");
- ods.Updated += new ObjectDataSourceStatusEventHandler (odc_Updated);
- ods.Updating += new ObjectDataSourceMethodEventHandler (odc_Updating);
- p.Controls.Add (ods);
- Assert.AreEqual (3, ((DataView) ods.Select ()).Count, "BeforeUpdate1");
- Assert.AreEqual (1001, ((DataView) ods.Select ())[0].Row.ItemArray[0], "BeforeUpdate2");
- Assert.AreEqual ("Mahesh", ((DataView) ods.Select ())[0].Row.ItemArray[1], "BeforeUpdate3");
- Assert.AreEqual ("Chand", ((DataView) ods.Select ())[0].Row.ItemArray[2], "BeforeUpdate4");
- Assert.AreEqual (false, updated, "BeforeUpdateEvent");
- Assert.AreEqual (false, updating, "BeforeUpdatingEvent");
- ods.Update ();
- Assert.AreEqual (3, ((DataView) ods.Select ()).Count, "AfterUpdate1");
- Assert.AreEqual (1001, ((DataView) ods.Select ())[0].Row.ItemArray[0], "AfterUpdate2");
- Assert.AreEqual ("David", ((DataView) ods.Select ())[0].Row.ItemArray[1], "AfterUpdate3");
- Assert.AreEqual ("Eli", ((DataView) ods.Select ())[0].Row.ItemArray[2], "AfterUpdate4");
- Assert.AreEqual (true, updated, "AfterUpdateEvent");
- Assert.AreEqual (true, updating, "AfterUpdatingEvent");
- }
-
- //Events
- private static bool deleted = false;
- private static bool deleting = false;
- private static bool filtering = false;
- private static bool inserted = false;
- private static bool inserting = false;
- private static bool objectCreated = false;
- private static bool objectCreating = false;
- private static bool objectDisposing = false;
- private static bool selected = false;
- private static bool selecting = false;
- private static bool updated = false;
- private static bool updating = false;
- // Tests for events Select,Update,Delete and Insert include in Select,Update,Delete and Insert methods tests.
- [Test]
- [Category ("NunitWeb")]
- public void ObjectDataSource_Events ()
- {
- string html = new WebTest (PageInvoker.CreateOnLoad (
- new PageDelegate (EventsTest))).Run ();
- }
-
- public static void EventsTest (Page p)
- {
-
- MyTableObject.ds = MyTableObject.CreateDataTable ();
- DetailsView dv = new DetailsView ();
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
- ods.ObjectCreated += new ObjectDataSourceObjectEventHandler (odc_ObjectCreated);
- ods.ObjectCreating += new ObjectDataSourceObjectEventHandler (odc_ObjectCreating);
- InitObjectDataSource (ods,"");
- ods.FilterExpression = "ID='1001'";
- dv.Page = p;
- ods.Page = p;
- dv.DataKeyNames = new string[] { "ID" };
- dv.DataSource = ods;
- p.Controls.Add (ods);
- p.Controls.Add (dv);
- dv.DataBind ();
- ods.Filtering += new ObjectDataSourceFilteringEventHandler (odc_Filtering);
- Assert.AreEqual (false, filtering, "BeforeFilteringEvent");
- ods.Select ();
- Assert.AreEqual (true, filtering, "AfterFilteringEvent");
- ods.ObjectDisposing += new ObjectDataSourceDisposingEventHandler (odc_ObjectDisposing);
- //ToDo: Dispose, ObjectCreated and ObjectCreating should be tested.
-
- }
-
- static void odc_Updating (object sender, ObjectDataSourceMethodEventArgs e)
- {
- updating = true;
- }
- static void odc_Updated (object sender, ObjectDataSourceStatusEventArgs e)
- {
- updated = true;
- }
- static void odc_Selecting (object sender, ObjectDataSourceSelectingEventArgs e)
- {
- selecting = true;
- }
- static void odc_Selected (object sender, ObjectDataSourceStatusEventArgs e)
- {
- selected = true;
- }
- static void odc_ObjectDisposing (object sender, ObjectDataSourceDisposingEventArgs e)
- {
- objectDisposing = true;
- }
- static void odc_ObjectCreating (object sender, ObjectDataSourceEventArgs e)
- {
- objectCreating = true;
- }
- static void odc_ObjectCreated (object sender, ObjectDataSourceEventArgs e)
- {
- objectCreated = true;
- }
- static void odc_Inserting (object sender, ObjectDataSourceMethodEventArgs e)
- {
- inserting = true;
- }
- static void odc_Inserted (object sender, ObjectDataSourceStatusEventArgs e)
- {
- inserted = true;
- }
- static void odc_Filtering (object sender, ObjectDataSourceFilteringEventArgs e)
- {
- filtering = true;
- }
- static void odc_Deleting (object sender, ObjectDataSourceMethodEventArgs e)
- {
- deleting = true;
- }
- static void odc_Deleted (object sender, ObjectDataSourceStatusEventArgs e)
- {
- deleted = true;
- }
- [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");
- }
- [Test]
- public void ObjectDataSource_DataSourceChanged ()
- {
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
- InitObjectDataSource (ods, "");
- ((IDataSource) ods).DataSourceChanged += new EventHandler (ObjectDataSourceTest_DataSourceChanged);
-
- // Check if event raised
- ods.DoRaiseDataSourceChangedEvent ();
- Assert.IsTrue (eventChecker, "DataSourceChanged#1");
- eventChecker = false;
- ods.ConflictDetection = ConflictOptions.CompareAllValues;
- Assert.IsFalse (eventChecker, "DataSourceChanged#2");
- eventChecker = false;
- ods.DataObjectTypeName = "MyData";
- Assert.IsFalse (eventChecker, "DataSourceChanged#3");
- eventChecker = false;
- ods.EnablePaging = true;
- Assert.IsFalse (eventChecker, "DataSourceChanged#4");
- eventChecker = false;
- ods.FilterExpression = "ID='{0}'";
- Assert.IsFalse (eventChecker, "DataSourceChanged#5");
- eventChecker = false;
- TextBox TextBox1 = new TextBox ();
- TextBox1.Text = "1001";
- FormParameter p = new FormParameter ("ID", "TextBox1");
- p.DefaultValue = "1002";
- ods.FilterParameters.Add (p);
- Assert.IsFalse (eventChecker, "DataSourceChanged#6");
- eventChecker = false;
- ods.MaximumRowsParameterName = "SelectCount";
- Assert.IsFalse (eventChecker, "DataSourceChanged#7");
- eventChecker = false;
- ods.OldValuesParameterFormatString = "ID";
- Assert.IsFalse (eventChecker, "DataSourceChanged#8");
- eventChecker = false;
- Parameter dummy = new Parameter ();
- dummy.Name = "Test";
- ods.SelectParameters.Add (dummy);
- Assert.IsFalse (eventChecker, "DataSourceChanged#9");
- eventChecker = false;
- ods.SortParameterName = "sortExpression";
- Assert.IsFalse (eventChecker, "DataSourceChanged#10");
- eventChecker = false;
- ods.StartRowIndexParameterName = "ID";
- Assert.IsFalse (eventChecker, "DataSourceChanged#11");
- eventChecker = false;
- ods.CacheDuration = 1000;
- Assert.IsFalse (eventChecker, "DataSourceChanged#12");
- eventChecker = false;
- ods.CacheExpirationPolicy = DataSourceCacheExpiry.Sliding;
- Assert.IsFalse (eventChecker, "DataSourceChanged#13");
- eventChecker = false;
- ods.CacheKeyDependency = "ID";
- Assert.IsFalse (eventChecker, "DataSourceChanged#14");
- eventChecker = false;
- ods.ConvertNullToDBNull = true;
- Assert.IsFalse (eventChecker, "DataSourceChanged#15");
- eventChecker = false;
- ods.EnableCaching = true;
- Assert.IsFalse (eventChecker, "DataSourceChanged#16");
- eventChecker = false;
- ods.SqlCacheDependency = "Northwind:Employees";
- Assert.IsFalse (eventChecker, "DataSourceChanged#17");
- }
- void ObjectDataSourceTest_DataSourceChanged (object sender, EventArgs e)
- {
- eventChecker = true;
- }
- //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]
- [ExpectedException (typeof (NotSupportedException))]
- [Category ("NunitWeb")]
- public void ObjectDataSource_EnableCachingException ()
- {
- string html = new WebTest (PageInvoker.CreateOnLoad (
- new PageDelegate (EnableCachingException))).Run ();
- }
-
- public static void EnableCachingException (Page p)
- {
- MyTableObject.ds = MyTableObject.CreateDataTable ();
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
- InitObjectDataSource (ods, "");
- ods.SelectMethod = "SelectException";
- ods.EnableCaching = true;
- p.Controls.Add (ods);
- IEnumerable table = (IEnumerable) ods.Select ();
-
- }
- [Test]
- [ExpectedException (typeof (NotSupportedException))]
- [Category ("NunitWeb")]
- public void ObjectDataSource_FilterExpressionException ()
- {
- string html = new WebTest (PageInvoker.CreateOnLoad (
- new PageDelegate (FilterExpressionException))).Run ();
- }
- public static void FilterExpressionException (Page p)
- {
- MyTableObject.ds = MyTableObject.CreateDataTable ();
- ObjectDataSourcePoker ods = new ObjectDataSourcePoker ();
- InitObjectDataSource (ods, "");
- ods.SelectMethod = "SelectException";
- ods.FilterExpression = "ID='1001'";
- p.Controls.Add (ods);
- IEnumerable table = (IEnumerable) ods.Select ();
- }
- }
- # region Object_Data_Source_DAL
- public class MyTableObject
- {
- public static DataTable ds = CreateDataTable ();
- public MyTableObject ()
- {
- ResetEventCheckers ();
- }
-
- public static DataTable GetMyData ()
- {
- return ds;
- }
- public static ArrayList GetMyData (string Fname)
- {
- ArrayList ar = new ArrayList ();
- ar.Add (Fname);
- return ar;
- }
- public static DbDataReader SelectException ()
- {
- return new DataTableReader (new DataTable ());
- }
- public static int SelectCount ()
- {
- return 20;
- }
-
- public static DataTable Delete (string ID, string FName, string LName)
- {
- DataRow dr = ds.Rows.Find (ID);
- ds.Rows.Remove (dr);
- return ds;
- }
- 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()
- {
- 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)
- {
- DataRow dr = ds.Rows.Find (ID);
- if (dr == null) {
- Label lbl = new Label ();
- lbl.Text = "ID doesn't exist. update only FName and LName";
- return ds;
- }
- dr["FName"] = FName;
- dr["LName"] = LName;
- return ds;
- }
- 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)
- {
- DataRow dr = ds.NewRow ();
- dr["ID"] = ID;
- dr["FName"] = FName;
- dr["LName"] = LName;
- ds.Rows.Add (dr);
- return ds;
- }
- public static DataTable CreateDataTable ()
- {
- DataTable aTable = new DataTable ("A");
- DataColumn dtCol;
- DataRow dtRow;
- // Create ID column and add to the DataTable.
- dtCol = new DataColumn ();
- dtCol.DataType = Type.GetType ("System.Int32");
- dtCol.ColumnName = "ID";
- dtCol.AutoIncrement = true;
- dtCol.Caption = "ID";
- dtCol.ReadOnly = true;
- dtCol.Unique = true;
- // Add the column to the DataColumnCollection.
- aTable.Columns.Add (dtCol);
- // Create Name column and add to the table
- dtCol = new DataColumn ();
- dtCol.DataType = Type.GetType ("System.String");
- dtCol.ColumnName = "FName";
- dtCol.AutoIncrement = false;
- dtCol.Caption = "First Name";
- dtCol.ReadOnly = false;
- dtCol.Unique = false;
- aTable.Columns.Add (dtCol);
- // Create Last Name column and add to the table.
- dtCol = new DataColumn ();
- dtCol.DataType = Type.GetType ("System.String");
- dtCol.ColumnName = "LName";
- dtCol.AutoIncrement = false;
- dtCol.Caption = "Last Name";
- dtCol.ReadOnly = false;
- dtCol.Unique = false;
- aTable.Columns.Add (dtCol);
- // Create three rows to the table
- dtRow = aTable.NewRow ();
- dtRow["ID"] = 1001;
- dtRow["FName"] = "Mahesh";
- dtRow["LName"] = "Chand";
- aTable.Rows.Add (dtRow);
- dtRow = aTable.NewRow ();
- dtRow["ID"] = 1002;
- dtRow["FName"] = "Melanie";
- dtRow["LName"] = "Talmadge";
- aTable.Rows.Add (dtRow);
- dtRow = aTable.NewRow ();
- dtRow["ID"] = 1003;
- dtRow["FName"] = "Vinay";
- dtRow["LName"] = "Bansal";
- aTable.Rows.Add (dtRow);
- aTable.PrimaryKey = new DataColumn[] { aTable.Columns["ID"] };
- return aTable;
- }
- public static DataTable SelectForPaging (int startIndex, int maxRows)
- {
- DataTable table = new DataTable ();
- table.Columns.Add ("Name", typeof (string));
- table.Columns.Add ("Number", typeof (int));
- int current;
- for (int i = 0; i < maxRows; i++) {
- current = i + startIndex;
- table.Rows.Add (new object[] { "Number" + current.ToString (), current });
- }
- return table;
- }
- }
- #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
|