2 // Rafael Mizrahi <rafim@mainsoft.com>
3 // Erez Lotan <erezl@mainsoft.com>
4 // Oren Gurfinkel <oreng@mainsoft.com>
7 // Copyright (c) 2004 Mainsoft Co.
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 using NUnit.Framework;
38 namespace tests.system_data_dll.System_Data
40 [TestFixture] public class DataTable_OnColumnChanged_D : GHTBase
42 [Test] public void Main()
44 DataTable_OnColumnChanged_D tc = new DataTable_OnColumnChanged_D();
48 tc.BeginTest("DataTable_OnColumnChanged_D");
61 //Activate This Construntor to log All To Standard output
62 //public TestClass():base(true){}
64 //Activate this constructor to log Failures to a log file
65 //public TestClass(System.IO.TextWriter tw):base(tw, false){}
68 //Activate this constructor to log All to a log file
69 //public TestClass(System.IO.TextWriter tw):base(tw, true){}
71 //BY DEFAULT LOGGING IS DONE TO THE STANDARD OUTPUT ONLY FOR FAILURES
73 private bool EventRaised ;
74 private bool EventValues ;
78 ProtectedTestClass dt = new ProtectedTestClass();
81 dt.OnColumnChanged_Test();
84 BeginCase("OnColumnChanged Event 1");
85 Compare(EventRaised ,false );
87 catch(Exception ex) {exp = ex;}
88 finally {EndCase(exp); exp = null;}
91 dt.ColumnChanged += new DataColumnChangeEventHandler(OnColumnChanged_Handler);
92 dt.OnColumnChanged_Test();
95 BeginCase("OnColumnChanged Event 2");
96 Compare(EventRaised ,true );
98 catch(Exception ex) {exp = ex;}
99 finally {EndCase(exp); exp = null;}
102 BeginCase("OnColumnChanged Values");
103 Compare(EventValues ,true );
105 catch(Exception ex) {exp = ex;}
106 finally {EndCase(exp); exp = null;}
107 dt.ColumnChanged -= new DataColumnChangeEventHandler(OnColumnChanged_Handler);
111 private void OnColumnChanged_Handler(Object sender,DataColumnChangeEventArgs e)
113 DataTable dt = (DataTable)sender;
114 if ( (e.Column.Equals(dt.Columns["Value"]) ) &&
115 (e.Row.Equals(dt.Rows[0]) ) &&
116 (e.ProposedValue.Equals("NewValue")) )
127 class ProtectedTestClass : DataTable
129 public ProtectedTestClass() : base()
131 this.Columns.Add("Id",typeof(int));
132 this.Columns.Add("Value",typeof(string));
133 this.Rows.Add(new object[] {1,"one"});
134 this.Rows.Add(new object[] {2,"two"});
135 this.AcceptChanges();
137 public void OnColumnChanged_Test()
139 base.OnColumnChanged(new DataColumnChangeEventArgs(this.Rows[0],this.Columns["Value"],"NewValue"));