1 // DataTableMappingCollectionTest.cs - NUnit Test Cases for Testing the
2 // DataTableMappingCollection class
4 // Author: Ameya Sailesh Gargesh (ameya_13@yahoo.com)
9 // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32 using NUnit
.Framework
;
35 using System
.Data
.Common
;
36 namespace MonoTests
.System
.Data
.Common
39 public class DataTableMappingCollectionTest
: Assertion
41 DataTableMappingCollection tableMapCollection
;
42 DataTableMapping
[] tabs
;
44 public void GetReady()
46 tabs
=new DataTableMapping
[5];
47 tabs
[0]=new DataTableMapping("sourceCustomers","dataSetCustomers");
48 tabs
[1]=new DataTableMapping("sourceEmployees","dataSetEmployees");
49 tabs
[2]=new DataTableMapping("sourceBooks","dataSetBooks");
50 tabs
[3]=new DataTableMapping("sourceStore","dataSetStore");
51 tabs
[4]=new DataTableMapping("sourceInventory","dataSetInventory");
52 tableMapCollection
=new DataTableMappingCollection();
58 tableMapCollection
.Clear();
64 int t
=tableMapCollection
.Add((Object
)tabs
[0]);
65 AssertEquals("test1",0,t
);
66 bool eq1
=tabs
[0].Equals(tableMapCollection
[0]);
67 AssertEquals("test2",true,eq1
);
68 AssertEquals("test3",1,tableMapCollection
.Count
);
69 DataTableMapping tab2
;
70 tab2
=tableMapCollection
.Add("sourceEmployees","dataSetEmployees");
71 bool eq2
=tab2
.Equals(tableMapCollection
[1]);
72 AssertEquals("test4",true,eq2
);
73 AssertEquals("test5",2,tableMapCollection
.Count
);
77 [ExpectedException(typeof(InvalidCastException
))]
78 public void AddException1()
80 DataTableMappingCollection c
=new DataTableMappingCollection();
81 tableMapCollection
.Add((Object
)c
);
85 public void AddRange()
87 tableMapCollection
.Add(new DataTableMapping("sourceFactory","dataSetFactory"));
88 AssertEquals("test1",1,tableMapCollection
.Count
);
89 tableMapCollection
.AddRange(tabs
);
90 AssertEquals("test2",6,tableMapCollection
.Count
);
92 eq
=tabs
[0].Equals(tableMapCollection
[1]);
93 AssertEquals("test3",true,eq
);
94 eq
=tabs
[1].Equals(tableMapCollection
[2]);
95 AssertEquals("test4",true,eq
);
96 eq
=tabs
[0].Equals(tableMapCollection
[0]);
97 AssertEquals("test5",false,eq
);
98 eq
=tabs
[1].Equals(tableMapCollection
[0]);
99 AssertEquals("test6",false,eq
);
105 DataTableMapping tab1
=new DataTableMapping("sourceSuppliers","dataSetSuppliers");
106 tableMapCollection
.Add((Object
)tab1
);
107 AssertEquals("test1",1,tableMapCollection
.Count
);
108 tableMapCollection
.Clear();
109 AssertEquals("test2",0,tableMapCollection
.Count
);
110 tableMapCollection
.AddRange(tabs
);
111 AssertEquals("test3",5,tableMapCollection
.Count
);
112 tableMapCollection
.Clear();
113 AssertEquals("test4",0,tableMapCollection
.Count
);
117 public void Contains()
119 DataTableMapping tab1
=new DataTableMapping("sourceCustomers","dataSetCustomers");
120 tableMapCollection
.AddRange(tabs
);
122 eq
=tableMapCollection
.Contains((Object
)tabs
[0]);
123 AssertEquals("test1",true,eq
);
124 eq
=tableMapCollection
.Contains((Object
)tabs
[1]);
125 AssertEquals("test2",true,eq
);
126 eq
=tableMapCollection
.Contains((Object
)tab1
);
127 AssertEquals("test3",false,eq
);
128 eq
=tableMapCollection
.Contains(tabs
[0].SourceTable
);
129 AssertEquals("test4",true,eq
);
130 eq
=tableMapCollection
.Contains(tabs
[1].SourceTable
);
131 AssertEquals("test5",true,eq
);
132 eq
=tableMapCollection
.Contains(tab1
.SourceTable
);
133 AssertEquals("test6",true,eq
);
134 eq
=tableMapCollection
.Contains(tabs
[0].DataSetTable
);
135 AssertEquals("test7",false,eq
);
136 eq
=tableMapCollection
.Contains(tabs
[1].DataSetTable
);
137 AssertEquals("test8",false,eq
);
138 eq
=tableMapCollection
.Contains(tab1
.DataSetTable
);
139 AssertEquals("test9",false,eq
);
145 DataTableMapping
[] tabcops
=new DataTableMapping
[5];
146 tableMapCollection
.AddRange(tabs
);
147 tableMapCollection
.CopyTo(tabcops
,0);
149 for (int i
=0;i
<5;i
++)
151 eq
=tableMapCollection
[i
].Equals(tabcops
[i
]);
152 AssertEquals("test1"+i
,true,eq
);
155 tabcops
=new DataTableMapping
[7];
156 tableMapCollection
.CopyTo(tabcops
,2);
157 for (int i
=0;i
<5;i
++)
159 eq
=tableMapCollection
[i
].Equals(tabcops
[i
+2]);
160 AssertEquals("test2"+i
,true,eq
);
162 eq
=tableMapCollection
[0].Equals(tabcops
[0]);
163 AssertEquals("test31",false,eq
);
164 eq
=tableMapCollection
[0].Equals(tabcops
[1]);
165 AssertEquals("test32",false,eq
);
171 DataTableMappingCollection collect2
=new DataTableMappingCollection();
172 tableMapCollection
.AddRange(tabs
);
173 collect2
.AddRange(tabs
);
174 DataTableMappingCollection copy1
;
175 copy1
=tableMapCollection
;
177 AssertEquals("test1",false,tableMapCollection
.Equals(collect2
));
178 AssertEquals("test2",true,tableMapCollection
.Equals(copy1
));
179 AssertEquals("test3",false,collect2
.Equals(tableMapCollection
));
180 AssertEquals("test4",true,copy1
.Equals(tableMapCollection
));
181 AssertEquals("test5",false,collect2
.Equals(copy1
));
182 AssertEquals("test6",true,copy1
.Equals(tableMapCollection
));
183 AssertEquals("test7",true,tableMapCollection
.Equals(tableMapCollection
));
184 AssertEquals("test8",true,collect2
.Equals(collect2
));
185 AssertEquals("test9",true,copy1
.Equals(copy1
));
187 AssertEquals("test10",false,Object
.Equals(collect2
,tableMapCollection
));
188 AssertEquals("test11",true,Object
.Equals(copy1
,tableMapCollection
));
189 AssertEquals("test12",false,Object
.Equals(tableMapCollection
,collect2
));
190 AssertEquals("test13",true,Object
.Equals(tableMapCollection
,copy1
));
191 AssertEquals("test14",false,Object
.Equals(copy1
,collect2
));
192 AssertEquals("test15",true,Object
.Equals(tableMapCollection
,copy1
));
193 AssertEquals("test16",true,Object
.Equals(tableMapCollection
,tableMapCollection
));
194 AssertEquals("test17",true,Object
.Equals(collect2
,collect2
));
195 AssertEquals("test18",true,Object
.Equals(copy1
,copy1
));
196 AssertEquals("test10",false,Object
.Equals(tableMapCollection
,collect2
));
197 AssertEquals("test11",true,Object
.Equals(tableMapCollection
,copy1
));
198 AssertEquals("test12",false,Object
.Equals(collect2
,tableMapCollection
));
199 AssertEquals("test13",true,Object
.Equals(copy1
,tableMapCollection
));
200 AssertEquals("test14",false,Object
.Equals(collect2
,copy1
));
201 AssertEquals("test15",true,Object
.Equals(copy1
,tableMapCollection
));
205 public void GetByDataSetTable()
207 tableMapCollection
.AddRange(tabs
);
209 DataTableMapping tab1
;
210 tab1
=tableMapCollection
.GetByDataSetTable("dataSetCustomers");
211 eq
=(tab1
.DataSetTable
.Equals("dataSetCustomers") && tab1
.SourceTable
.Equals("sourceCustomers"));
212 AssertEquals("test1",true,eq
);
213 tab1
=tableMapCollection
.GetByDataSetTable("dataSetEmployees");
214 eq
=(tab1
.DataSetTable
.Equals("dataSetEmployees") && tab1
.SourceTable
.Equals("sourceEmployees"));
215 AssertEquals("test2",true,eq
);
217 tab1
=tableMapCollection
.GetByDataSetTable("datasetcustomers");
218 eq
=(tab1
.DataSetTable
.Equals("dataSetCustomers") && tab1
.SourceTable
.Equals("sourceCustomers"));
219 AssertEquals("test3",true,eq
);
220 tab1
=tableMapCollection
.GetByDataSetTable("datasetemployees");
221 eq
=(tab1
.DataSetTable
.Equals("dataSetEmployees") && tab1
.SourceTable
.Equals("sourceEmployees"));
222 AssertEquals("test4",true,eq
);
227 public void GetTableMappingBySchemaAction()
229 tableMapCollection
.AddRange(tabs
);
231 DataTableMapping tab1
;
232 tab1
=DataTableMappingCollection
.GetTableMappingBySchemaAction(tableMapCollection
,"sourceCustomers","dataSetCustomers",MissingMappingAction
.Passthrough
);
233 eq
=(tab1
.DataSetTable
.Equals("dataSetCustomers") && tab1
.SourceTable
.Equals("sourceCustomers"));
234 AssertEquals("test1",true,eq
);
235 tab1
=DataTableMappingCollection
.GetTableMappingBySchemaAction(tableMapCollection
,"sourceEmployees","dataSetEmployees",MissingMappingAction
.Passthrough
);
236 eq
=(tab1
.DataSetTable
.Equals("dataSetEmployees") && tab1
.SourceTable
.Equals("sourceEmployees"));
237 AssertEquals("test2",true,eq
);
239 tab1
=DataTableMappingCollection
.GetTableMappingBySchemaAction(tableMapCollection
,"sourceData","dataSetData",MissingMappingAction
.Passthrough
);
240 eq
=(tab1
.DataSetTable
.Equals("sourceData") && tab1
.SourceTable
.Equals("dataSetData"));
241 AssertEquals("test3",false, eq
);
242 eq
=tableMapCollection
.Contains(tab1
);
243 AssertEquals("test4",false,eq
);
244 tab1
=DataTableMappingCollection
.GetTableMappingBySchemaAction(tableMapCollection
,"sourceData","dataSetData",MissingMappingAction
.Ignore
);
245 AssertEquals("test5",null,tab1
);
249 [ExpectedException(typeof(InvalidOperationException
))]
250 public void GetTableMappingBySchemaActionException1()
252 DataTableMappingCollection
.GetTableMappingBySchemaAction(tableMapCollection
,"sourceCustomers","dataSetCustomers",MissingMappingAction
.Error
);
256 public void IndexOf()
258 tableMapCollection
.AddRange(tabs
);
260 ind
=tableMapCollection
.IndexOf(tabs
[0]);
261 AssertEquals("test1",0,ind
);
262 ind
=tableMapCollection
.IndexOf(tabs
[1]);
263 AssertEquals("test2",1,ind
);
265 ind
=tableMapCollection
.IndexOf(tabs
[0].SourceTable
);
266 AssertEquals("test3",0,ind
);
267 ind
=tableMapCollection
.IndexOf(tabs
[1].SourceTable
);
268 AssertEquals("test4",1,ind
);
272 public void IndexOfDataSetTable()
274 tableMapCollection
.AddRange(tabs
);
276 ind
=tableMapCollection
.IndexOfDataSetTable(tabs
[0].DataSetTable
);
277 AssertEquals("test1",0,ind
);
278 ind
=tableMapCollection
.IndexOfDataSetTable(tabs
[1].DataSetTable
);
279 AssertEquals("test2",1,ind
);
281 ind
=tableMapCollection
.IndexOfDataSetTable("datasetcustomers");
282 AssertEquals("test3",0,ind
);
283 ind
=tableMapCollection
.IndexOfDataSetTable("datasetemployees");
284 AssertEquals("test4",1,ind
);
286 ind
=tableMapCollection
.IndexOfDataSetTable("sourcedeter");
287 AssertEquals("test5",-1,ind
);
293 tableMapCollection
.AddRange(tabs
);
294 DataTableMapping mymap
=new DataTableMapping("sourceTestAge","datatestSetAge");
295 tableMapCollection
.Insert(3,mymap
);
296 int ind
=tableMapCollection
.IndexOfDataSetTable("datatestSetAge");
297 AssertEquals("test1",3,ind
);
303 tableMapCollection
.AddRange(tabs
);
304 DataTableMapping mymap
=new DataTableMapping("sourceCustomers","dataSetCustomers");
305 tableMapCollection
.Add(mymap
);
306 tableMapCollection
.Remove((Object
)mymap
);
307 bool eq
=tableMapCollection
.Contains((Object
)mymap
);
308 AssertEquals("test1",false,eq
);
312 [ExpectedException(typeof(InvalidCastException
))]
313 public void RemoveException1()
315 String te
="testingdata";
316 tableMapCollection
.AddRange(tabs
);
317 tableMapCollection
.Remove(te
);
321 [ExpectedException(typeof(ArgumentException
))]
322 public void RemoveException2()
324 tableMapCollection
.AddRange(tabs
);
325 DataTableMapping mymap
=new DataTableMapping("sourceAge","dataSetAge");
326 tableMapCollection
.Remove(mymap
);
330 public void RemoveAt()
332 tableMapCollection
.AddRange(tabs
);
334 tableMapCollection
.RemoveAt(0);
335 eq
=tableMapCollection
.Contains(tabs
[0]);
336 AssertEquals("test1",false,eq
);
337 eq
=tableMapCollection
.Contains(tabs
[1]);
338 AssertEquals("test2",true,eq
);
340 tableMapCollection
.RemoveAt("sourceEmployees");
341 eq
=tableMapCollection
.Contains(tabs
[1]);
342 AssertEquals("test3",false,eq
);
343 eq
=tableMapCollection
.Contains(tabs
[2]);
344 AssertEquals("test4",true,eq
);
348 [ExpectedException(typeof(IndexOutOfRangeException
))]
349 public void RemoveAtException1()
351 tableMapCollection
.RemoveAt(3);
355 [ExpectedException(typeof(IndexOutOfRangeException
))]
356 public void RemoveAtException2()
358 tableMapCollection
.RemoveAt("sourceAge");
362 public void ToStringTest()
364 AssertEquals("test1","System.Data.Common.DataTableMappingCollection",tableMapCollection
.ToString());