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
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 Assert
.AreEqual(0, t
, "test1");
66 bool eq1
=tabs
[0].Equals(tableMapCollection
[0]);
67 Assert
.AreEqual(true, eq1
, "test2");
68 Assert
.AreEqual(1, tableMapCollection
.Count
, "test3");
69 DataTableMapping tab2
;
70 tab2
=tableMapCollection
.Add("sourceEmployees", "dataSetEmployees");
71 bool eq2
=tab2
.Equals(tableMapCollection
[1]);
72 Assert
.AreEqual(true, eq2
, "test4");
73 Assert
.AreEqual(2, tableMapCollection
.Count
, "test5");
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 Assert
.AreEqual(1, tableMapCollection
.Count
, "test1");
89 tableMapCollection
.AddRange(tabs
);
90 Assert
.AreEqual(6, tableMapCollection
.Count
, "test2");
92 eq
=tabs
[0].Equals(tableMapCollection
[1]);
93 Assert
.AreEqual(true, eq
, "test3");
94 eq
=tabs
[1].Equals(tableMapCollection
[2]);
95 Assert
.AreEqual(true, eq
, "test4");
96 eq
=tabs
[0].Equals(tableMapCollection
[0]);
97 Assert
.AreEqual(false, eq
, "test5");
98 eq
=tabs
[1].Equals(tableMapCollection
[0]);
99 Assert
.AreEqual(false, eq
, "test6");
105 DataTableMapping tab1
=new DataTableMapping("sourceSuppliers", "dataSetSuppliers");
106 tableMapCollection
.Add((Object
)tab1
);
107 Assert
.AreEqual(1, tableMapCollection
.Count
, "test1");
108 tableMapCollection
.Clear();
109 Assert
.AreEqual(0, tableMapCollection
.Count
, "test2");
110 tableMapCollection
.AddRange(tabs
);
111 Assert
.AreEqual(5, tableMapCollection
.Count
, "test3");
112 tableMapCollection
.Clear();
113 Assert
.AreEqual(0, tableMapCollection
.Count
, "test4");
117 public void Contains()
119 DataTableMapping tab1
=new DataTableMapping("sourceCustomers", "dataSetCustomers");
120 tableMapCollection
.AddRange(tabs
);
122 eq
=tableMapCollection
.Contains((Object
)tabs
[0]);
123 Assert
.AreEqual(true, eq
, "test1");
124 eq
=tableMapCollection
.Contains((Object
)tabs
[1]);
125 Assert
.AreEqual(true, eq
, "test2");
126 eq
=tableMapCollection
.Contains((Object
)tab1
);
127 Assert
.AreEqual(false, eq
, "test3");
128 eq
=tableMapCollection
.Contains(tabs
[0].SourceTable
);
129 Assert
.AreEqual(true, eq
, "test4");
130 eq
=tableMapCollection
.Contains(tabs
[1].SourceTable
);
131 Assert
.AreEqual(true, eq
, "test5");
132 eq
=tableMapCollection
.Contains(tab1
.SourceTable
);
133 Assert
.AreEqual(true, eq
, "test6");
134 eq
=tableMapCollection
.Contains(tabs
[0].DataSetTable
);
135 Assert
.AreEqual(false, eq
, "test7");
136 eq
=tableMapCollection
.Contains(tabs
[1].DataSetTable
);
137 Assert
.AreEqual(false, eq
, "test8");
138 eq
=tableMapCollection
.Contains(tab1
.DataSetTable
);
139 Assert
.AreEqual(false, eq
, "test9");
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 Assert
.AreEqual (true, eq
, "test1" + i
);
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 Assert
.AreEqual (true, eq
, "test2" + i
);
162 eq
=tableMapCollection
[0].Equals(tabcops
[0]);
163 Assert
.AreEqual (false, eq
, "test31");
164 eq
=tableMapCollection
[0].Equals(tabcops
[1]);
165 Assert
.AreEqual (false, eq
, "test32");
171 // DataTableMappingCollection collect2=new DataTableMappingCollection();
172 tableMapCollection
.AddRange(tabs
);
173 // collect2.AddRange(tabs);
174 DataTableMappingCollection copy1
;
175 copy1
=tableMapCollection
;
177 // Assert.AreEqual(false, tableMapCollection.Equals(collect2), "test1");
178 Assert
.AreEqual(true, tableMapCollection
.Equals(copy1
), "test2");
179 // Assert.AreEqual(false, collect2.Equals(tableMapCollection), "test3");
180 Assert
.AreEqual(true, copy1
.Equals(tableMapCollection
), "test4");
181 // Assert.AreEqual(false, collect2.Equals(copy1), "test5");
182 Assert
.AreEqual(true, copy1
.Equals(tableMapCollection
), "test6");
183 Assert
.AreEqual(true, tableMapCollection
.Equals(tableMapCollection
), "test7");
184 // Assert.AreEqual(true, collect2.Equals(collect2), "test8");
185 Assert
.AreEqual(true, copy1
.Equals(copy1
), "test9");
187 // Assert.AreEqual(false, Object.Equals(collect2, tableMapCollection), "test10");
188 Assert
.AreEqual(true, Object
.Equals(copy1
, tableMapCollection
), "test11");
189 // Assert.AreEqual(false, Object.Equals(tableMapCollection, collect2), "test12");
190 Assert
.AreEqual(true, Object
.Equals(tableMapCollection
, copy1
), "test13");
191 // Assert.AreEqual(false, Object.Equals(copy1, collect2), "test14");
192 Assert
.AreEqual(true, Object
.Equals(tableMapCollection
, copy1
), "test15");
193 Assert
.AreEqual(true, Object
.Equals(tableMapCollection
, tableMapCollection
), "test16");
194 // Assert.AreEqual(true, Object.Equals(collect2, collect2), "test17");
195 Assert
.AreEqual(true, Object
.Equals(copy1
, copy1
), "test18");
196 // Assert.AreEqual(false, Object.Equals(tableMapCollection, collect2), "test10");
197 Assert
.AreEqual(true, Object
.Equals(tableMapCollection
, copy1
), "test11");
198 // Assert.AreEqual(false, Object.Equals(collect2, tableMapCollection), "test12");
199 Assert
.AreEqual(true, Object
.Equals(copy1
, tableMapCollection
), "test13");
200 // Assert.AreEqual(false, Object.Equals(collect2, copy1), "test14");
201 Assert
.AreEqual(true, Object
.Equals(copy1
, tableMapCollection
), "test15");
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 Assert
.AreEqual(true, eq
, "test1");
213 tab1
=tableMapCollection
.GetByDataSetTable("dataSetEmployees");
214 eq
=(tab1
.DataSetTable
.Equals("dataSetEmployees") && tab1
.SourceTable
.Equals("sourceEmployees"));
215 Assert
.AreEqual(true, eq
, "test2");
217 tab1
=tableMapCollection
.GetByDataSetTable("datasetcustomers");
218 eq
=(tab1
.DataSetTable
.Equals("dataSetCustomers") && tab1
.SourceTable
.Equals("sourceCustomers"));
219 Assert
.AreEqual(true, eq
, "test3");
220 tab1
=tableMapCollection
.GetByDataSetTable("datasetemployees");
221 eq
=(tab1
.DataSetTable
.Equals("dataSetEmployees") && tab1
.SourceTable
.Equals("sourceEmployees"));
222 Assert
.AreEqual(true, eq
, "test4");
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 Assert
.AreEqual(true, eq
, "test1");
235 tab1
=DataTableMappingCollection
.GetTableMappingBySchemaAction(tableMapCollection
, "sourceEmployees", "dataSetEmployees", MissingMappingAction
.Passthrough
);
236 eq
=(tab1
.DataSetTable
.Equals("dataSetEmployees") && tab1
.SourceTable
.Equals("sourceEmployees"));
237 Assert
.AreEqual(true, eq
, "test2");
239 tab1
=DataTableMappingCollection
.GetTableMappingBySchemaAction(tableMapCollection
, "sourceData", "dataSetData", MissingMappingAction
.Passthrough
);
240 eq
=(tab1
.DataSetTable
.Equals("sourceData") && tab1
.SourceTable
.Equals("dataSetData"));
241 Assert
.AreEqual(false, eq
, "test3");
242 eq
=tableMapCollection
.Contains(tab1
);
243 Assert
.AreEqual(false, eq
, "test4");
244 tab1
=DataTableMappingCollection
.GetTableMappingBySchemaAction(tableMapCollection
, "sourceData", "dataSetData", MissingMappingAction
.Ignore
);
245 Assert
.AreEqual(null, tab1
, "test5");
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 Assert
.AreEqual(0, ind
, "test1");
262 ind
=tableMapCollection
.IndexOf(tabs
[1]);
263 Assert
.AreEqual(1, ind
, "test2");
265 ind
=tableMapCollection
.IndexOf(tabs
[0].SourceTable
);
266 Assert
.AreEqual(0, ind
, "test3");
267 ind
=tableMapCollection
.IndexOf(tabs
[1].SourceTable
);
268 Assert
.AreEqual(1, ind
, "test4");
272 public void IndexOfDataSetTable()
274 tableMapCollection
.AddRange(tabs
);
276 ind
=tableMapCollection
.IndexOfDataSetTable(tabs
[0].DataSetTable
);
277 Assert
.AreEqual(0, ind
, "test1");
278 ind
=tableMapCollection
.IndexOfDataSetTable(tabs
[1].DataSetTable
);
279 Assert
.AreEqual(1, ind
, "test2");
281 ind
=tableMapCollection
.IndexOfDataSetTable("datasetcustomers");
282 Assert
.AreEqual(0, ind
, "test3");
283 ind
=tableMapCollection
.IndexOfDataSetTable("datasetemployees");
284 Assert
.AreEqual(1, ind
, "test4");
286 ind
=tableMapCollection
.IndexOfDataSetTable("sourcedeter");
287 Assert
.AreEqual(-1, ind
, "test5");
293 tableMapCollection
.AddRange(tabs
);
294 DataTableMapping mymap
=new DataTableMapping("sourceTestAge", "datatestSetAge");
295 tableMapCollection
.Insert(3, mymap
);
296 int ind
=tableMapCollection
.IndexOfDataSetTable("datatestSetAge");
297 Assert
.AreEqual(3, ind
, "test1");
301 [Ignore ("This test is invalid; a mapping in a mapcollection must be identical.")]
304 tableMapCollection
.AddRange(tabs
);
305 DataTableMapping mymap
=new DataTableMapping("sourceCustomers", "dataSetCustomers");
306 tableMapCollection
.Add(mymap
);
307 tableMapCollection
.Remove((Object
)mymap
);
308 bool eq
=tableMapCollection
.Contains((Object
)mymap
);
309 Assert
.AreEqual(false, eq
, "test1");
313 [ExpectedException(typeof(InvalidCastException
))]
314 public void RemoveException1()
316 String te
="testingdata";
317 tableMapCollection
.AddRange(tabs
);
318 tableMapCollection
.Remove(te
);
322 [ExpectedException(typeof(ArgumentException
))]
323 public void RemoveException2()
325 tableMapCollection
.AddRange(tabs
);
326 DataTableMapping mymap
=new DataTableMapping("sourceAge", "dataSetAge");
327 tableMapCollection
.Remove(mymap
);
331 public void RemoveAt()
333 tableMapCollection
.AddRange(tabs
);
335 tableMapCollection
.RemoveAt(0);
336 eq
=tableMapCollection
.Contains(tabs
[0]);
337 Assert
.AreEqual(false, eq
, "test1");
338 eq
=tableMapCollection
.Contains(tabs
[1]);
339 Assert
.AreEqual(true, eq
, "test2");
341 tableMapCollection
.RemoveAt("sourceEmployees");
342 eq
=tableMapCollection
.Contains(tabs
[1]);
343 Assert
.AreEqual(false, eq
, "test3");
344 eq
=tableMapCollection
.Contains(tabs
[2]);
345 Assert
.AreEqual(true, eq
, "test4");
349 [ExpectedException(typeof(IndexOutOfRangeException
))]
350 public void RemoveAtException1()
352 tableMapCollection
.RemoveAt(3);
356 [ExpectedException(typeof(IndexOutOfRangeException
))]
357 public void RemoveAtException2()
359 tableMapCollection
.RemoveAt("sourceAge");
363 public void ToStringTest()
365 Assert
.AreEqual("System.Data.Common.DataTableMappingCollection", tableMapCollection
.ToString(), "test1");