| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949 |
- //
- // Tests for System.Web.UI.WebControls.SqlDataSourceView
- //
- // Author:
- // Chris Toshok ([email protected])
- //
- //
- // Copyright (C) 2006 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.Configuration;
- using System.Data.Common;
- using System.IO;
- using System.Globalization;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Collections;
- using System.Data.SqlClient;
- using System.Text;
- namespace MonoTests.System.Web.UI.WebControls
- {
- class SqlViewPoker : SqlDataSourceView {
- public SqlViewPoker (SqlDataSource ds, string name, HttpContext context)
- : base (ds, name, context)
- {
- TrackViewState ();
- }
- public object SaveToViewState ()
- {
- return SaveViewState ();
- }
- public void LoadFromViewState (object savedState)
- {
- LoadViewState (savedState);
- }
- }
- [TestFixture]
- public class SqlDataSourceViewTest
- {
- [SetUp]
- public void Setup ()
- {
- eventsCalled = null;
- }
- [Test]
- public void Defaults ()
- {
- SqlDataSource ds = new SqlDataSource ();
- SqlViewPoker sql = new SqlViewPoker (ds, "DefaultView", null);
- Assert.IsTrue (sql.CancelSelectOnNullParameter, "A1");
- Assert.IsFalse (sql.CanDelete,"A2");
- Assert.IsFalse (sql.CanInsert,"A3");
- Assert.IsFalse (sql.CanPage,"A4");
- Assert.IsFalse (sql.CanRetrieveTotalRowCount,"A5");
- Assert.IsTrue (sql.CanSort,"A6");
- Assert.IsFalse (sql.CanUpdate,"A7");
- Assert.AreEqual (ConflictOptions.OverwriteChanges, sql.ConflictDetection, "A8");
- Assert.AreEqual ("", sql.DeleteCommand, "A9");
- Assert.AreEqual (SqlDataSourceCommandType.Text, sql.DeleteCommandType, "A10");
- Assert.IsNotNull (sql.DeleteParameters, "A11");
- Assert.AreEqual (0, sql.DeleteParameters.Count, "A12");
- Assert.AreEqual ("", sql.FilterExpression, "A13");
- Assert.IsNotNull (sql.FilterParameters, "A14");
- Assert.AreEqual (0, sql.FilterParameters.Count, "A15");
- Assert.AreEqual ("", sql.InsertCommand, "A16");
- Assert.AreEqual (SqlDataSourceCommandType.Text, sql.InsertCommandType, "A17");
- Assert.IsNotNull (sql.InsertParameters, "A18");
- Assert.AreEqual (0, sql.InsertParameters.Count, "A19");
- Assert.AreEqual ("{0}", sql.OldValuesParameterFormatString, "A20");
- Assert.AreEqual ("", sql.SelectCommand, "A21");
- Assert.AreEqual (SqlDataSourceCommandType.Text, sql.SelectCommandType, "A22");
- Assert.IsNotNull (sql.SelectParameters, "A23");
- Assert.AreEqual (0, sql.SelectParameters.Count, "A24");
- Assert.AreEqual ("", sql.SortParameterName, "A25");
- Assert.AreEqual ("", sql.UpdateCommand, "A26");
- Assert.AreEqual (SqlDataSourceCommandType.Text, sql.UpdateCommandType, "A27");
- Assert.IsNotNull (sql.UpdateParameters, "A28");
- Assert.AreEqual (0, sql.UpdateParameters.Count, "A29");
- }
- [Test]
- public void ViewStateSupport ()
- {
- SqlDataSource ds = new SqlDataSource ();
- SqlViewPoker view = new SqlViewPoker (ds, "DefaultView", null);
- ds.ID = "SqlDataSource1";
- ds.SelectCommand = "Select";
- Parameter p1 = new Parameter ("test", TypeCode.String);
- Assert.IsTrue (((IStateManager) view).IsTrackingViewState, "IsTrackingViewState");
- Assert.IsTrue (((IStateManager) view.FilterParameters).IsTrackingViewState, "FilterParameters.IsTrackingViewState");
- Assert.IsTrue (((IStateManager) view.SelectParameters).IsTrackingViewState, "SelecteParameters.IsTrackingViewState");
- Assert.IsFalse (((IStateManager) view.DeleteParameters).IsTrackingViewState, "DeleteParameters.IsTrackingViewState");
- Assert.IsFalse (((IStateManager) view.InsertParameters).IsTrackingViewState, "InsertParameters.IsTrackingViewState");
- Assert.IsFalse (((IStateManager) view.UpdateParameters).IsTrackingViewState, "UpdateParameters.IsTrackingViewState");
- object state = ((IStateManager) view).SaveViewState ();
- Assert.IsNull (state, "view ViewState not null");
- view.DeleteParameters.Add (p1);
- view.InsertParameters.Add (p1);
- //view.UpdateParameters.Add (p1);
- state = ((IStateManager) view).SaveViewState ();
- Assert.IsNull (state, "view ViewState not null");
- view.FilterParameters.Add (p1);
- //view.SelectParameters.Add (p1);
- state = ((IStateManager) view).SaveViewState ();
- Assert.IsNotNull (state, "view ViewState not null");
- state = ((IStateManager) view.FilterParameters).SaveViewState ();
- Assert.IsNotNull (state, "FilterParamenters ViewState not null");
- state = ((IStateManager) view.SelectParameters).SaveViewState ();
- Assert.IsNull (state, "SelectParameters ViewState not null");
- state = ((IStateManager) view.DeleteParameters).SaveViewState ();
- Assert.IsNotNull (state, "DeleteParameters ViewState not null");
- state = ((IStateManager) view.InsertParameters).SaveViewState ();
- Assert.IsNotNull (state, "InsertParameters ViewState not null");
- state = ((IStateManager) view.UpdateParameters).SaveViewState ();
- Assert.IsNull (state, "UpdateParameters ViewState not null");
- }
- [Test]
- public void ViewState ()
- {
- SqlDataSource ds = new SqlDataSource ();
- SqlViewPoker sql = new SqlViewPoker (ds, "DefaultView", null);
- /* XXX test parameters */
- sql.CancelSelectOnNullParameter = false;
- sql.ConflictDetection = ConflictOptions.CompareAllValues;
- sql.DeleteCommandType = SqlDataSourceCommandType.Text;
- sql.DeleteCommand = "delete command";
- sql.FilterExpression = "filter expression";
- sql.InsertCommand = "insert command";
- sql.InsertCommandType = SqlDataSourceCommandType.Text;
- sql.OldValuesParameterFormatString = "{1}";
- sql.SelectCommand = "select command";
- sql.SelectCommandType = SqlDataSourceCommandType.Text;
- sql.SortParameterName = "sort parameter";
- sql.UpdateCommand = "update command";
- sql.UpdateCommandType = SqlDataSourceCommandType.Text;
- Assert.IsFalse (sql.CancelSelectOnNullParameter, "A1");
- Assert.AreEqual (ConflictOptions.CompareAllValues, sql.ConflictDetection, "A2");
- Assert.AreEqual ("delete command", sql.DeleteCommand, "A3");
- Assert.AreEqual (SqlDataSourceCommandType.Text, sql.DeleteCommandType, "A4");
- Assert.AreEqual ("filter expression", sql.FilterExpression, "A5");
- Assert.AreEqual ("insert command", sql.InsertCommand, "A6");
- Assert.AreEqual (SqlDataSourceCommandType.Text, sql.InsertCommandType, "A7");
- Assert.AreEqual ("{1}", sql.OldValuesParameterFormatString, "A8");
- Assert.AreEqual ("select command", sql.SelectCommand, "A9");
- Assert.AreEqual (SqlDataSourceCommandType.Text, sql.SelectCommandType, "A10");
- Assert.AreEqual ("sort parameter", sql.SortParameterName, "A11");
- Assert.AreEqual ("update command", sql.UpdateCommand, "A12");
- Assert.AreEqual (SqlDataSourceCommandType.Text, sql.UpdateCommandType, "A13");
- object state = sql.SaveToViewState();
- Assert.IsNull (state, "ViewState is null");
- sql = new SqlViewPoker (ds, "DefaultView", null);
- sql.LoadFromViewState (state);
- Assert.IsTrue(sql.CancelSelectOnNullParameter, "B1");
- Assert.IsFalse(sql.CanDelete, "B2");
- Assert.IsFalse(sql.CanInsert, "B3");
- Assert.IsFalse(sql.CanPage, "B4");
- Assert.IsFalse(sql.CanRetrieveTotalRowCount, "B5");
- Assert.IsTrue(sql.CanSort, "B6");
- Assert.IsFalse(sql.CanUpdate, "B7");
- Assert.AreEqual (ConflictOptions.OverwriteChanges, sql.ConflictDetection, "B8");
- Assert.AreEqual ("", sql.DeleteCommand, "B9");
- Assert.AreEqual(SqlDataSourceCommandType.Text, sql.DeleteCommandType, "B10");
- Assert.IsNotNull(sql.DeleteParameters, "B11");
- Assert.AreEqual(0, sql.DeleteParameters.Count, "B12");
- Assert.AreEqual ("", sql.FilterExpression, "B13");
- Assert.IsNotNull(sql.FilterParameters, "B14");
- Assert.AreEqual(0, sql.FilterParameters.Count, "B15");
- Assert.AreEqual ("", sql.InsertCommand, "B16");
- Assert.AreEqual(SqlDataSourceCommandType.Text, sql.InsertCommandType, "B17");
- Assert.IsNotNull(sql.InsertParameters, "B18");
- Assert.AreEqual(0, sql.InsertParameters.Count, "B19");
- Assert.AreEqual ("{0}", sql.OldValuesParameterFormatString, "B20");
- Assert.AreEqual ("", sql.SelectCommand, "B21");
- Assert.AreEqual(SqlDataSourceCommandType.Text, sql.SelectCommandType, "B22");
- Assert.IsNotNull(sql.SelectParameters, "B23");
- Assert.AreEqual(0, sql.SelectParameters.Count, "B24");
- Assert.AreEqual ("", sql.SortParameterName, "B25");
- Assert.AreEqual ("", sql.UpdateCommand, "B26");
- Assert.AreEqual(SqlDataSourceCommandType.Text, sql.UpdateCommandType, "B27");
- Assert.IsNotNull(sql.UpdateParameters, "B28");
- Assert.AreEqual(0, sql.UpdateParameters.Count, "B29");
- }
- [Test]
- public void CanDelete ()
- {
- SqlDataSource ds = new SqlDataSource ();
- SqlViewPoker sql = new SqlViewPoker (ds, "DefaultView", null);
- sql.DeleteCommand = "DELETE from foo";
- Assert.IsTrue (sql.CanDelete, "A1");
- sql.DeleteCommand = "";
- Assert.IsFalse (sql.CanDelete, "A2");
- sql.DeleteCommand = null;
- Assert.IsFalse (sql.CanDelete, "A3");
- }
- [Test]
- public void CanInsert ()
- {
- SqlDataSource ds = new SqlDataSource ();
- SqlViewPoker sql = new SqlViewPoker (ds, "DefaultView", null);
- sql.InsertCommand = "INSERT into foo";
- Assert.IsTrue (sql.CanInsert, "A1");
- sql.InsertCommand = "";
- Assert.IsFalse (sql.CanInsert, "A2");
- sql.InsertCommand = null;
- Assert.IsFalse (sql.CanInsert, "A3");
- }
- [Test]
- public void CanUpdate ()
- {
- SqlDataSource ds = new SqlDataSource ();
- SqlViewPoker sql = new SqlViewPoker (ds, "DefaultView", null);
- sql.UpdateCommand = "UPDATE foo";
- Assert.IsTrue (sql.CanUpdate, "A1");
- sql.UpdateCommand = "";
- Assert.IsFalse (sql.CanUpdate, "A2");
- sql.UpdateCommand = null;
- Assert.IsFalse (sql.CanUpdate, "A3");
- }
- [Test]
- public void CanSort ()
- {
- SqlDataSource ds = new SqlDataSource ();
- SqlViewPoker sql = new SqlViewPoker (ds, "DefaultView", null);
- sql.SortParameterName = "foo";
- Assert.IsTrue (sql.CanSort, "A1");
- sql.SortParameterName = null;
- Assert.IsTrue (sql.CanSort, "A2");
- sql.SortParameterName = "";
- Assert.IsTrue (sql.CanSort, "A3");
- sql.SortParameterName = "foo";
- ds.DataSourceMode = SqlDataSourceMode.DataReader;
- Assert.IsTrue (sql.CanSort, "A4");
- ds.DataSourceMode = SqlDataSourceMode.DataSet;
- Assert.IsTrue (sql.CanSort, "A5");
- sql.SortParameterName = "";
- ds.DataSourceMode = SqlDataSourceMode.DataReader;
- Assert.IsFalse (sql.CanSort, "A6");
- ds.DataSourceMode = SqlDataSourceMode.DataSet;
- Assert.IsTrue (sql.CanSort, "A7");
- }
- [Test]
- public void OldValuesParameterFormatString ()
- {
- SqlDataSource ds = new SqlDataSource ();
-
- Assert.AreEqual ("{0}", ds.OldValuesParameterFormatString, "A1");
- ds.OldValuesParameterFormatString = "hi {0}";
- SqlViewPoker sql = new SqlViewPoker (ds, "DefaultView", null);
- Assert.AreEqual ("{0}", sql.OldValuesParameterFormatString, "A2");
- ds.OldValuesParameterFormatString = "hi {0}";
- Assert.AreEqual ("{0}", sql.OldValuesParameterFormatString, "A3");
- ds.OldValuesParameterFormatString = "{0}";
- sql.OldValuesParameterFormatString = "hi {0}";
- Assert.AreEqual ("{0}", ds.OldValuesParameterFormatString, "A4");
- }
- [Test]
- public void CancelSelectOnNullParameter ()
- {
- SqlDataSource ds = new SqlDataSource ();
- ds.CancelSelectOnNullParameter = false;
- SqlViewPoker sql = new SqlViewPoker (ds, "DefaultView", null);
- Assert.IsTrue (sql.CancelSelectOnNullParameter, "A1");
- ds.CancelSelectOnNullParameter = true;
- sql.CancelSelectOnNullParameter = false;
- Assert.IsTrue (ds.CancelSelectOnNullParameter, "A2");
- sql.CancelSelectOnNullParameter = false;
- ds.CancelSelectOnNullParameter = true;
- Assert.IsFalse (sql.CancelSelectOnNullParameter, "A3");
- }
- public class AlwaysChangingParameter : Parameter
- {
- int evaluateCount;
- public AlwaysChangingParameter (string name, TypeCode type, string defaultValue)
- : base (name, type, defaultValue) {
- evaluateCount = 0;
- }
- protected override object Evaluate (HttpContext context, Control control) {
- evaluateCount++;
- return String.Format ("{0}{1}", DefaultValue, evaluateCount);
- }
- }
- enum InitViewType
- {
- MatchParamsToValues,
- MatchParamsToOldValues,
- DontMatchParams,
- }
- private static SqlViewPoker InitializeView (InitViewType initType, ConflictOptions conflictDetection, out Hashtable keys, out Hashtable old_value, out Hashtable new_value)
- {
- SqlDataSource ds = new SqlDataSource ();
- ds.ConnectionString = "Data Source=fake\\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa";
- ds.ProviderName = "System.Data.SqlClient";
- SqlViewPoker view = new SqlViewPoker (ds, "DefaultView", null);
- view.ConflictDetection = conflictDetection;
- view.OldValuesParameterFormatString = "oldvalue_{0}";
- view.SelectCommandType = SqlDataSourceCommandType.Text;
- view.InsertCommandType = SqlDataSourceCommandType.Text;
- view.UpdateCommandType = SqlDataSourceCommandType.Text;
- view.DeleteCommandType = SqlDataSourceCommandType.Text;
- view.SelectCommand = "SELECT * FROM Customers WHERE ID = @ID";
- view.InsertCommand = "INSERT INTO Customers (ID) VALUES (@ID)";
- view.UpdateCommand = "UPDATE Customers SET ID = @ID WHERE ID = @oldvalue_ID";
- view.DeleteCommand = "DELETE * FROM Customers WHERE ID = @ID";
- Parameter selectParameter = null;
- Parameter insertParameter = null;
- Parameter updateParameter = null;
- Parameter deleteParameter = null;
- selectParameter = new AlwaysChangingParameter ("ID", TypeCode.String, "p_ValueSelect");
- view.SelectParameters.Add (selectParameter);
- switch (initType) {
- case InitViewType.MatchParamsToOldValues:
- insertParameter = new AlwaysChangingParameter ("oldvalue_ID", TypeCode.String, "p_OldValueInsert");
- view.InsertParameters.Add (insertParameter);
- updateParameter = new AlwaysChangingParameter ("oldvalue_ID", TypeCode.String, "p_OldValueUpdate");
- view.UpdateParameters.Add (updateParameter);
- deleteParameter = new AlwaysChangingParameter ("oldvalue_ID", TypeCode.String, "p_OldValueDelete");
- view.DeleteParameters.Add (deleteParameter);
- break;
- case InitViewType.MatchParamsToValues:
- insertParameter = new AlwaysChangingParameter ("ID", TypeCode.String, "p_ValueInsert");
- view.InsertParameters.Add (insertParameter);
- updateParameter = new AlwaysChangingParameter ("ID", TypeCode.String, "p_ValueUpdate");
- view.UpdateParameters.Add (updateParameter);
- deleteParameter = new AlwaysChangingParameter ("ID", TypeCode.String, "p_ValueDelete");
- view.DeleteParameters.Add (deleteParameter);
- break;
- case InitViewType.DontMatchParams:
- insertParameter = new AlwaysChangingParameter ("OtherValue", TypeCode.String, "p_OtherValueInsert");
- view.InsertParameters.Add (insertParameter);
- updateParameter = new AlwaysChangingParameter ("OtherValue", TypeCode.String, "p_OtherValueUpdate");
- view.UpdateParameters.Add (updateParameter);
- deleteParameter = new AlwaysChangingParameter ("OtherValue", TypeCode.String, "p_OtherValueDelete");
- view.DeleteParameters.Add (deleteParameter);
- break;
- }
- view.SelectParameters.ParametersChanged += new EventHandler (SelectParameters_ParametersChanged);
- view.InsertParameters.ParametersChanged += new EventHandler (InsertParameters_ParametersChanged);
- view.UpdateParameters.ParametersChanged += new EventHandler (UpdateParameters_ParametersChanged);
- view.DeleteParameters.ParametersChanged += new EventHandler (DeleteParameters_ParametersChanged);
- keys = new Hashtable ();
- keys.Add ("ID", "k_1001");
- old_value = new Hashtable ();
- old_value.Add ("ID", "ov_1001");
- new_value = new Hashtable ();
- new_value.Add ("ID", "n_1001");
- view.DataSourceViewChanged += new EventHandler (view_DataSourceViewChanged);
- view.Selecting += new SqlDataSourceSelectingEventHandler (view_Selecting);
- view.Inserting += new SqlDataSourceCommandEventHandler (view_Inserting);
- view.Updating += new SqlDataSourceCommandEventHandler (view_Updating);
- view.Deleting += new SqlDataSourceCommandEventHandler (view_Deleting);
- return view;
- }
- static void view_Selecting (object source, SqlDataSourceSelectingEventArgs e)
- {
- if (eventsCalled == null) {
- eventsCalled = new ArrayList ();
- }
- eventsCalled.Add (e.Arguments.ToString ());
- eventsCalled.Add ("view_Selecting");
- eventsCalled.Add (FormatParameters ((SqlParameterCollection)e.Command.Parameters));
- e.Cancel = true;
- }
- static void view_Inserting (object source, SqlDataSourceCommandEventArgs e)
- {
- if (eventsCalled == null) {
- eventsCalled = new ArrayList ();
- }
- eventsCalled.Add ("view_Inserting");
- eventsCalled.Add (FormatParameters ((SqlParameterCollection) e.Command.Parameters));
- e.Cancel = true;
- }
- static void view_Updating (object source, SqlDataSourceCommandEventArgs e)
- {
- if (eventsCalled == null) {
- eventsCalled = new ArrayList ();
- }
- eventsCalled.Add ("view_Updating");
- eventsCalled.Add (FormatParameters ((SqlParameterCollection) e.Command.Parameters));
- e.Cancel = true;
- }
- static void view_Deleting (object source, SqlDataSourceCommandEventArgs e)
- {
- if (eventsCalled == null) {
- eventsCalled = new ArrayList ();
- }
- eventsCalled.Add ("view_Deleting");
- eventsCalled.Add (FormatParameters ((SqlParameterCollection) e.Command.Parameters));
- e.Cancel = true;
- }
- private static string FormatParameters (SqlParameterCollection sqlParameterCollection)
- {
- StringBuilder sb = new StringBuilder ();
- foreach (SqlParameter p in sqlParameterCollection) {
- if (sb.Length > 0) {
- sb.Append (", ");
- }
- sb.AppendFormat ("{0}:{1}={2}", p.DbType, p.ParameterName, p.Value);
- }
- return sb.ToString ();
- }
- private static IList eventsCalled;
- static void view_DataSourceViewChanged (object sender, EventArgs e)
- {
- if (eventsCalled == null) {
- eventsCalled = new ArrayList ();
- }
- eventsCalled.Add ("view_DataSourceViewChanged");
- }
- static void SelectParameters_ParametersChanged (object sender, EventArgs e)
- {
- if (eventsCalled == null) {
- eventsCalled = new ArrayList ();
- }
- eventsCalled.Add ("SelectParameters_ParametersChanged");
- }
- static void InsertParameters_ParametersChanged (object sender, EventArgs e)
- {
- if (eventsCalled == null) {
- eventsCalled = new ArrayList ();
- }
- eventsCalled.Add ("InsertParameters_ParametersChanged");
- }
- static void UpdateParameters_ParametersChanged (object sender, EventArgs e)
- {
- if (eventsCalled == null) {
- eventsCalled = new ArrayList ();
- }
- eventsCalled.Add ("UpdateParameters_ParametersChanged");
- }
- static void DeleteParameters_ParametersChanged (object sender, EventArgs e)
- {
- if (eventsCalled == null) {
- eventsCalled = new ArrayList ();
- }
- eventsCalled.Add ("DeleteParameters_ParametersChanged");
- }
- [Test]
- public void ParametersAndViewChangedEvent_Select ()
- {
- Hashtable keys = null;
- Hashtable old_values = null;
- Hashtable new_values = null;
- SqlViewPoker view = InitializeView (InitViewType.MatchParamsToValues, ConflictOptions.OverwriteChanges, out keys, out old_values, out new_values);
- view.Select (DataSourceSelectArguments.Empty);
- Assert.IsNotNull (eventsCalled, "Events not raized");
- Assert.AreEqual (5, eventsCalled.Count, "Events Count");
- Assert.AreEqual ("view_DataSourceViewChanged", eventsCalled [0], "view_DataSourceViewChanged");
- Assert.AreEqual ("SelectParameters_ParametersChanged", eventsCalled [1], "SelectParameters_ParametersChanged");
- Assert.AreEqual ("System.Web.UI.DataSourceSelectArguments", eventsCalled [2], "DataSourceSelectArguments");
- Assert.AreEqual ("view_Selecting", eventsCalled [3], "view_Selecting");
- string [] expectedParams = new string []
- {
- "String:@ID=p_ValueSelect1"
- };
- string [] actualValues = ((string)eventsCalled [4]).Split (new string [] { ", " }, StringSplitOptions.RemoveEmptyEntries);
- Assert.AreEqual (expectedParams.Length, actualValues.Length, "ParametersAndViewChangedEvent_Select Params count");
- ValidatePassedParams (expectedParams, actualValues, "ParametersAndViewChangedEvent_Select expecte '{0}'");
- }
- [Test]
- public void ParametersAndViewChangedEvent_MatchInsert ()
- {
- Hashtable keys = null;
- Hashtable old_values = null;
- Hashtable new_values = null;
- SqlViewPoker view = InitializeView (InitViewType.MatchParamsToValues, ConflictOptions.OverwriteChanges, out keys, out old_values, out new_values);
- view.Insert (new_values);
- Assert.IsNotNull (eventsCalled, "Events not raized");
- Assert.AreEqual (3, eventsCalled.Count, "Events Count");
- Assert.AreEqual ("InsertParameters_ParametersChanged", eventsCalled [0], "InsertParameters_ParametersChanged");
- Assert.AreEqual ("view_Inserting", eventsCalled [1], "view_Inserting");
- string [] expectedParams = new string []
- {
- "String:@ID=n_1001"
- };
- string [] actualValues = ((string) eventsCalled [2]).Split (new string [] { ", " }, StringSplitOptions.RemoveEmptyEntries);
- Assert.AreEqual (expectedParams.Length, actualValues.Length, "ParametersAndViewChangedEvent_MatchInsert Params count");
- ValidatePassedParams (expectedParams, actualValues, "ParametersAndViewChangedEvent_MatchInsert expecte '{0}'");
- }
- [Test]
- public void ParametersAndViewChangedEvent_MatchInsertAllValues ()
- {
- Hashtable keys = null;
- Hashtable old_values = null;
- Hashtable new_values = null;
- SqlViewPoker view = InitializeView (InitViewType.MatchParamsToValues, ConflictOptions.CompareAllValues, out keys, out old_values, out new_values);
- view.Insert (new_values);
- Assert.IsNotNull (eventsCalled, "Events not raized");
- Assert.AreEqual (3, eventsCalled.Count, "Events Count");
- Assert.AreEqual ("InsertParameters_ParametersChanged", eventsCalled [0], "InsertParameters_ParametersChanged");
- Assert.AreEqual ("view_Inserting", eventsCalled [1], "view_Inserting");
- string [] expectedParams = new string []
- {
- "String:@ID=n_1001"
- };
- string [] actualValues = ((string) eventsCalled [2]).Split (new string [] { ", " }, StringSplitOptions.RemoveEmptyEntries);
- Assert.AreEqual (expectedParams.Length, actualValues.Length, "ParametersAndViewChangedEvent_MatchInsert Params count");
- ValidatePassedParams (expectedParams, actualValues, "ParametersAndViewChangedEvent_MatchInsert expecte '{0}'");
- }
- [Test]
- public void ParametersAndViewChangedEvent_MatchOldInsert ()
- {
- Hashtable keys = null;
- Hashtable old_values = null;
- Hashtable new_values = null;
- SqlViewPoker view = InitializeView (InitViewType.MatchParamsToOldValues, ConflictOptions.OverwriteChanges, out keys, out old_values, out new_values);
- view.Insert (new_values);
- Assert.IsNotNull (eventsCalled, "Events not raized");
- Assert.AreEqual (3, eventsCalled.Count, "Events Count");
- Assert.AreEqual ("InsertParameters_ParametersChanged", eventsCalled [0], "InsertParameters_ParametersChanged");
- Assert.AreEqual ("view_Inserting", eventsCalled [1], "view_Inserting");
- string [] expectedParams = new string []
- {
- "String:@oldvalue_ID=p_OldValueInsert1",
- "String:@ID=n_1001"
- };
- string [] actualValues = ((string) eventsCalled [2]).Split (new string [] { ", " }, StringSplitOptions.RemoveEmptyEntries);
- Assert.AreEqual (expectedParams.Length, actualValues.Length, "ParametersAndViewChangedEvent_MatchOldInsert Params count");
- ValidatePassedParams (expectedParams, actualValues, "ParametersAndViewChangedEvent_MatchOldInsert expecte '{0}'");
- }
- [Test]
- public void ParametersAndViewChangedEvent_MatchOldInsertAllValues ()
- {
- Hashtable keys = null;
- Hashtable old_values = null;
- Hashtable new_values = null;
- SqlViewPoker view = InitializeView (InitViewType.MatchParamsToOldValues, ConflictOptions.CompareAllValues, out keys, out old_values, out new_values);
- view.Insert (new_values);
-
- Assert.IsNotNull (eventsCalled, "Events not raized");
- Assert.AreEqual (3, eventsCalled.Count, "Events Count");
- Assert.AreEqual ("InsertParameters_ParametersChanged", eventsCalled [0], "InsertParameters_ParametersChanged");
- Assert.AreEqual ("view_Inserting", eventsCalled [1], "view_Inserting");
- string [] expectedParams = new string []
- {
- "String:@oldvalue_ID=p_OldValueInsert1",
- "String:@ID=n_1001"
- };
- string [] actualValues = ((string) eventsCalled [2]).Split (new string [] { ", " }, StringSplitOptions.RemoveEmptyEntries);
- Assert.AreEqual (expectedParams.Length, actualValues.Length, "ParametersAndViewChangedEvent_MatchOldInsert Params count");
- ValidatePassedParams (expectedParams, actualValues, "ParametersAndViewChangedEvent_MatchOldInsert expecte '{0}'");
- }
- [Test]
- public void ParametersAndViewChangedEvent_DontMatchInsert ()
- {
- Hashtable keys = null;
- Hashtable old_values = null;
- Hashtable new_values = null;
- SqlViewPoker view = InitializeView (InitViewType.DontMatchParams, ConflictOptions.OverwriteChanges, out keys, out old_values, out new_values);
- view.Insert (new_values);
- Assert.IsNotNull (eventsCalled, "Events not raized");
- Assert.AreEqual (3, eventsCalled.Count, "Events Count");
- Assert.AreEqual ("InsertParameters_ParametersChanged", eventsCalled [0], "InsertParameters_ParametersChanged");
- Assert.AreEqual ("view_Inserting", eventsCalled [1], "view_Inserting");
- string [] expectedParams = new string []
- {
- "String:@OtherValue=p_OtherValueInsert1",
- "String:@ID=n_1001"
- };
- string [] actualValues = ((string) eventsCalled [2]).Split (new string [] { ", " }, StringSplitOptions.RemoveEmptyEntries);
- Assert.AreEqual (expectedParams.Length, actualValues.Length, "ParametersAndViewChangedEvent_DontMatchInsert Params count");
- ValidatePassedParams (expectedParams, actualValues, "ParametersAndViewChangedEvent_DontMatchInsert expecte '{0}'");
- }
- [Test]
- public void ParametersAndViewChangedEvent_MatchUpdate ()
- {
- Hashtable keys = null;
- Hashtable old_values = null;
- Hashtable new_values = null;
- SqlViewPoker view = InitializeView (InitViewType.MatchParamsToValues, ConflictOptions.OverwriteChanges, out keys, out old_values, out new_values);
- view.Update (keys, new_values, old_values);
- Assert.IsNotNull (eventsCalled, "Events not raized");
- Assert.AreEqual (3, eventsCalled.Count, "Events Count");
- Assert.AreEqual ("UpdateParameters_ParametersChanged", eventsCalled [0], "UpdateParameters_ParametersChanged");
- Assert.AreEqual ("view_Updating", eventsCalled [1], "view_Updating");
- string [] expectedParams = new string []
- {
- "String:@oldvalue_ID=k_1001",
- "String:@ID=n_1001"
- };
- string [] actualValues = ((string) eventsCalled [2]).Split (new string [] { ", " }, StringSplitOptions.RemoveEmptyEntries);
- Assert.AreEqual (expectedParams.Length, actualValues.Length, "ParametersAndViewChangedEvent_MatchUpdate Params count");
- ValidatePassedParams (expectedParams, actualValues, "ParametersAndViewChangedEvent_MatchUpdate expecte '{0}'");
- }
- [Test]
- public void ParametersAndViewChangedEvent_MatchUpdateAllValues ()
- {
- Hashtable keys = null;
- Hashtable old_values = null;
- Hashtable new_values = null;
- SqlViewPoker view = InitializeView (InitViewType.MatchParamsToValues, ConflictOptions.CompareAllValues, out keys, out old_values, out new_values);
- view.Update (keys, new_values, old_values);
- Assert.IsNotNull (eventsCalled, "Events not raized");
- Assert.AreEqual (3, eventsCalled.Count, "Events Count");
- Assert.AreEqual ("UpdateParameters_ParametersChanged", eventsCalled [0], "UpdateParameters_ParametersChanged");
- Assert.AreEqual ("view_Updating", eventsCalled [1], "view_Updating");
- string [] expectedParams = new string []
- {
- "String:@oldvalue_ID=ov_1001",
- "String:@ID=n_1001"
- };
- string [] actualValues = ((string) eventsCalled [2]).Split (new string [] { ", " }, StringSplitOptions.RemoveEmptyEntries);
- Assert.AreEqual (expectedParams.Length, actualValues.Length, "ParametersAndViewChangedEvent_MatchUpdate Params count");
- ValidatePassedParams (expectedParams, actualValues, "ParametersAndViewChangedEvent_MatchUpdate expecte '{0}'");
- }
- [Test]
- public void ParametersAndViewChangedEvent_MatchOldUpdate ()
- {
- Hashtable keys = null;
- Hashtable old_values = null;
- Hashtable new_values = null;
- SqlViewPoker view = InitializeView (InitViewType.MatchParamsToOldValues, ConflictOptions.OverwriteChanges, out keys, out old_values, out new_values);
- view.Update (keys, new_values, old_values);
- Assert.IsNotNull (eventsCalled, "Events not raized");
- Assert.AreEqual (3, eventsCalled.Count, "Events Count");
- Assert.AreEqual ("UpdateParameters_ParametersChanged", eventsCalled [0], "UpdateParameters_ParametersChanged");
- Assert.AreEqual ("view_Updating", eventsCalled [1], "view_Updating");
- string [] expectedParams = new string []
- {
- "String:@oldvalue_ID=k_1001",
- "String:@ID=n_1001"
- };
- string [] actualValues = ((string) eventsCalled [2]).Split (new string [] { ", " }, StringSplitOptions.RemoveEmptyEntries);
- Assert.AreEqual (expectedParams.Length, actualValues.Length, "ParametersAndViewChangedEvent_MatchUpdate Params count");
- ValidatePassedParams (expectedParams, actualValues, "ParametersAndViewChangedEvent_MatchUpdate expecte '{0}'");
- }
- [Test]
- public void ParametersAndViewChangedEvent_MatchOldUpdateAllValues ()
- {
- Hashtable keys = null;
- Hashtable old_values = null;
- Hashtable new_values = null;
- SqlViewPoker view = InitializeView (InitViewType.MatchParamsToOldValues, ConflictOptions.CompareAllValues, out keys, out old_values, out new_values);
- view.Update (keys, new_values, old_values);
- Assert.IsNotNull (eventsCalled, "Events not raized");
- Assert.AreEqual (3, eventsCalled.Count, "Events Count");
- Assert.AreEqual ("UpdateParameters_ParametersChanged", eventsCalled [0], "UpdateParameters_ParametersChanged");
- Assert.AreEqual ("view_Updating", eventsCalled [1], "view_Updating");
- string [] expectedParams = new string []
- {
- "String:@oldvalue_ID=ov_1001",
- "String:@ID=n_1001"
- };
- string [] actualValues = ((string) eventsCalled [2]).Split (new string [] { ", " }, StringSplitOptions.RemoveEmptyEntries);
- Assert.AreEqual (expectedParams.Length, actualValues.Length, "ParametersAndViewChangedEvent_MatchUpdate Params count");
- ValidatePassedParams (expectedParams, actualValues, "ParametersAndViewChangedEvent_MatchUpdate expecte '{0}'");
- }
- [Test]
- public void ParametersAndViewChangedEvent_DontMatchUpdate ()
- {
- Hashtable keys = null;
- Hashtable old_values = null;
- Hashtable new_values = null;
- SqlViewPoker view = InitializeView (InitViewType.DontMatchParams, ConflictOptions.OverwriteChanges, out keys, out old_values, out new_values);
- view.Update (keys, new_values, old_values);
- Assert.IsNotNull (eventsCalled, "Events not raized");
- Assert.AreEqual (3, eventsCalled.Count, "Events Count");
- Assert.AreEqual ("UpdateParameters_ParametersChanged", eventsCalled [0], "UpdateParameters_ParametersChanged");
- Assert.AreEqual ("view_Updating", eventsCalled [1], "view_Updating");
- string [] expectedParams = new string []
- {
- "String:@oldvalue_ID=k_1001",
- "String:@ID=n_1001",
- "String:@OtherValue=p_OtherValueUpdate1"
- };
- string [] actualValues = ((string) eventsCalled [2]).Split (new string [] { ", " }, StringSplitOptions.RemoveEmptyEntries);
- Assert.AreEqual (expectedParams.Length, actualValues.Length, "ParametersAndViewChangedEvent_DontMatchUpdate Params count");
- ValidatePassedParams (expectedParams, actualValues, "ParametersAndViewChangedEvent_DontMatchUpdate expecte '{0}'");
- }
- [Test]
- public void ParametersAndViewChangedEvent_MatchDelete ()
- {
- Hashtable keys = null;
- Hashtable old_values = null;
- Hashtable new_values = null;
- SqlViewPoker view = InitializeView (InitViewType.MatchParamsToValues, ConflictOptions.OverwriteChanges, out keys, out old_values, out new_values);
- view.Delete (keys, old_values);
- Assert.IsNotNull (eventsCalled, "Events not raized");
- Assert.AreEqual (3, eventsCalled.Count, "Events Count");
- Assert.AreEqual ("DeleteParameters_ParametersChanged", eventsCalled [0], "DeleteParameters_ParametersChanged");
- Assert.AreEqual ("view_Deleting", eventsCalled [1], "view_Deleting");
- string [] expectedParams = new string []
- {
- "String:@oldvalue_ID=k_1001",
- };
- string [] actualValues = ((string) eventsCalled [2]).Split (new string [] { ", " }, StringSplitOptions.RemoveEmptyEntries);
- Assert.AreEqual (expectedParams.Length, actualValues.Length, "ParametersAndViewChangedEvent_MatchDelete Params count");
- ValidatePassedParams (expectedParams, actualValues, "ParametersAndViewChangedEvent_MatchDelete expecte '{0}'");
- }
- [Test]
- public void ParametersAndViewChangedEvent_MatchDeleteAllValues ()
- {
- Hashtable keys = null;
- Hashtable old_values = null;
- Hashtable new_values = null;
- SqlViewPoker view = InitializeView (InitViewType.MatchParamsToValues, ConflictOptions.CompareAllValues, out keys, out old_values, out new_values);
- view.Delete (keys, old_values);
- Assert.IsNotNull (eventsCalled, "Events not raized");
- Assert.AreEqual (3, eventsCalled.Count, "Events Count");
- Assert.AreEqual ("DeleteParameters_ParametersChanged", eventsCalled [0], "DeleteParameters_ParametersChanged");
- Assert.AreEqual ("view_Deleting", eventsCalled [1], "view_Deleting");
- string [] expectedParams = new string []
- {
- "String:@oldvalue_ID=ov_1001",
- };
- string [] actualValues = ((string) eventsCalled [2]).Split (new string [] { ", " }, StringSplitOptions.RemoveEmptyEntries);
- Assert.AreEqual (expectedParams.Length, actualValues.Length, "ParametersAndViewChangedEvent_MatchDelete Params count");
- ValidatePassedParams (expectedParams, actualValues, "ParametersAndViewChangedEvent_MatchDelete expecte '{0}'");
- }
- [Test]
- public void ParametersAndViewChangedEvent_MatchOldDelete ()
- {
- Hashtable keys = null;
- Hashtable old_values = null;
- Hashtable new_values = null;
- SqlViewPoker view = InitializeView (InitViewType.MatchParamsToOldValues, ConflictOptions.OverwriteChanges, out keys, out old_values, out new_values);
- view.Delete (keys, old_values);
- Assert.IsNotNull (eventsCalled, "Events not raized");
- Assert.AreEqual (3, eventsCalled.Count, "Events Count");
- Assert.AreEqual ("DeleteParameters_ParametersChanged", eventsCalled [0], "DeleteParameters_ParametersChanged");
- Assert.AreEqual ("view_Deleting", eventsCalled [1], "view_Deleting");
- string [] expectedParams = new string []
- {
- "String:@oldvalue_ID=k_1001",
- };
- string [] actualValues = ((string) eventsCalled [2]).Split (new string [] { ", " }, StringSplitOptions.RemoveEmptyEntries);
- Assert.AreEqual (expectedParams.Length, actualValues.Length, "ParametersAndViewChangedEvent_MatchOldDelete Params count");
- ValidatePassedParams (expectedParams, actualValues, "ParametersAndViewChangedEvent_MatchOldDelete expecte '{0}'");
- }
- [Test]
- public void ParametersAndViewChangedEvent_MatchOldDeleteAllValues ()
- {
- Hashtable keys = null;
- Hashtable old_values = null;
- Hashtable new_values = null;
- SqlViewPoker view = InitializeView (InitViewType.MatchParamsToOldValues, ConflictOptions.CompareAllValues, out keys, out old_values, out new_values);
- view.Delete (keys, old_values);
- Assert.IsNotNull (eventsCalled, "Events not raized");
- Assert.AreEqual (3, eventsCalled.Count, "Events Count");
- Assert.AreEqual ("DeleteParameters_ParametersChanged", eventsCalled [0], "DeleteParameters_ParametersChanged");
- Assert.AreEqual ("view_Deleting", eventsCalled [1], "view_Deleting");
- string [] expectedParams = new string []
- {
- "String:@oldvalue_ID=ov_1001",
- };
- string [] actualValues = ((string) eventsCalled [2]).Split (new string [] { ", " }, StringSplitOptions.RemoveEmptyEntries);
- Assert.AreEqual (expectedParams.Length, actualValues.Length, "ParametersAndViewChangedEvent_MatchOldDelete Params count");
- ValidatePassedParams (expectedParams, actualValues, "ParametersAndViewChangedEvent_MatchOldDelete expecte '{0}'");
- }
- [Test]
- public void ParametersAndViewChangedEvent_DontMatchDelete ()
- {
- Hashtable keys = null;
- Hashtable old_values = null;
- Hashtable new_values = null;
- SqlViewPoker view = InitializeView (InitViewType.DontMatchParams, ConflictOptions.OverwriteChanges, out keys, out old_values, out new_values);
- view.Delete (keys, old_values);
- Assert.IsNotNull (eventsCalled, "Events not raized");
- Assert.AreEqual (3, eventsCalled.Count, "Events Count");
- Assert.AreEqual ("DeleteParameters_ParametersChanged", eventsCalled [0], "DeleteParameters_ParametersChanged");
- Assert.AreEqual ("view_Deleting", eventsCalled [1], "view_Deleting");
- string [] expectedParams = new string []
- {
- "String:@oldvalue_ID=k_1001",
- "String:@OtherValue=p_OtherValueDelete1"
- };
- string [] actualValues = ((string) eventsCalled [2]).Split (new string [] { ", " }, StringSplitOptions.RemoveEmptyEntries);
- Assert.AreEqual (expectedParams.Length, actualValues.Length, "ParametersAndViewChangedEvent_MatchOldDelete Params count");
- ValidatePassedParams (expectedParams, actualValues, "ParametersAndViewChangedEvent_MatchOldDelete expecte '{0}'");
- }
- private static void ValidatePassedParams (string [] expectedParams, string [] actualValues, string errorMessageFormat)
- {
- foreach (string eps in expectedParams) {
- bool found = false;
- foreach (string aps in actualValues) {
- if (eps == aps) {
- found = true;
- break;
- }
- }
- Assert.IsTrue (found, String.Format (errorMessageFormat, eps));
- }
- }
- }
- }
- #endif
|