1
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
2
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
5
using System.ComponentModel;
7
using System.Reflection;
9
using ICSharpCode.Reports.Core;
10
using ICSharpCode.Reports.Core.Test.TestHelpers;
11
using NUnit.Framework;
13
namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
17
public class IListDataManagerFixture
20
ContributorCollection contributorCollection;
23
public void DefaultConstructor()
25
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection as System.Collections.IList,new ReportSettings());
26
Assert.IsNotNull(dm,"IDataManager should not be 'null'");
31
[ExpectedException(typeof(ArgumentNullException))]
32
public void ConstructorWithNullIList()
34
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance((System.Collections.IList)null,new ReportSettings());
35
Assert.IsNotNull( dm);
40
[ExpectedException(typeof(ArgumentNullException))]
41
public void ConstructorWithNullSettings()
43
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection,null);
44
Assert.IsNotNull( dm);
49
public void DataNavigatorNotNull ()
51
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection as System.Collections.IList,new ReportSettings());
52
Assert.IsNotNull( dm);
53
DataNavigator n = dm.GetNavigator;
54
Assert.IsNotNull (n,"Navigator should not be 'null'");
59
public void DataNavigatorCountEqualListCount ()
61
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection as System.Collections.IList,new ReportSettings());
62
Assert.IsNotNull( dm);
63
IDataNavigator dataNav = dm.GetNavigator;
64
Assert.AreEqual(this.contributorCollection.Count,
66
"Count of LstItems should be equal");
71
public void DataNavigatorCorrectPosition ()
73
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection as System.Collections.IList,new ReportSettings());
74
IDataNavigator dataNav = dm.GetNavigator;
77
"CurrentRow should be -1");
82
public void DataNavigator_Return_ErrMessage_If_ColumnName_NotExist ()
84
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection,new ReportSettings());
85
IDataNavigator dataNav = dm.GetNavigator;
86
BaseDataItem item = new BaseDataItem();
87
item.ColumnName = "ColumnNotExist";
88
var items = new ReportItemCollection();
93
// string str = "<" + item.ColumnName +">";
94
Assert.That(item.DBValue.StartsWith("Error"));
98
#region Standart Enumerator
101
public void EnumeratorStartFromBegin ()
103
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection, new ReportSettings());
105
IDataNavigator dataNav = dm.GetNavigator;
109
Contributor view = dataNav.Current as Contributor;
112
while (dataNav.MoveNext());
113
Assert.AreEqual(this.contributorCollection.Count,start);
119
public void NullValue_In_Property_Should_Return_EmptyString ()
121
ContributorsList contributorsList = new ContributorsList();
122
var contColl = contributorsList.ContributorCollection;
124
foreach (Contributor element in contColl) {
125
element.GroupItem = null;
128
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(contColl, new ReportSettings());
129
IDataNavigator dataNav = dm.GetNavigator;
132
ReportItemCollection searchCol = new ReportItemCollection();
133
searchCol.Add(new BaseDataItem ()
136
ColumnName ="GroupItem"
144
dataNav.Fill(searchCol);
145
BaseDataItem resultItem = searchCol[0] as BaseDataItem;
147
Assert.That (resultItem.Name,Is.EqualTo("GroupItem"));
148
Assert.That(resultItem.DBValue,Is.EqualTo(String.Empty));
151
while (dataNav.MoveNext());
157
#region Available Fields
160
public void AvailableFields ()
162
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection,new ReportSettings());
163
DataNavigator dataNav = dm.GetNavigator;
164
Assert.AreEqual(7,dataNav.AvailableFields.Count);
173
public void SortAscendingByTwoColumns()
175
SortColumn sc = new SortColumn("Last",System.ComponentModel.ListSortDirection.Ascending);
176
SortColumn sc1 = new SortColumn("RandomInt",System.ComponentModel.ListSortDirection.Ascending);
178
ReportSettings rs = new ReportSettings();
179
rs.SortColumnsCollection.Add(sc);
180
rs.SortColumnsCollection.Add(sc1);
181
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection,rs);
182
DataNavigator dataNav = dm.GetNavigator;
183
string v1 = String.Empty;
184
while (dataNav.MoveNext()) {
185
Contributor view = dataNav.Current as Contributor;
186
string v2 = view.Last + "-" + view.RandomInt;
187
//string ss = String.Format("< {0} > <{1}>",v1,v2);
188
//Console.WriteLine(ss);
189
//Console.WriteLine(v2);
190
Assert.LessOrEqual(v1,v2);
197
public void SortDescendingByOneColumn()
199
SortColumn sc = new SortColumn("Last",System.ComponentModel.ListSortDirection.Descending);
200
ReportSettings rs = new ReportSettings();
201
rs.SortColumnsCollection.Add(sc);
202
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection,rs);
203
DataNavigator dataNav = dm.GetNavigator;
204
string compareTo = "z";
205
while (dataNav.MoveNext()) {
206
Contributor view = dataNav.Current as Contributor;
207
string actual = view.Last;
208
Assert.GreaterOrEqual(compareTo,actual);
218
public void CreatePlainDataRow ()
220
ReportSettings rs = new ReportSettings();
221
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection,rs);
222
DataNavigator dataNav = dm.GetNavigator;
223
while (dataNav.MoveNext()) {
224
CurrentItemsCollection c = dataNav.GetDataRow;
225
Assert.AreEqual(typeof(string),c[0].DataType);
226
Assert.AreEqual(typeof(string),c[1].DataType);
227
Assert.AreEqual(typeof(string),c[2].DataType);
228
Assert.AreEqual(typeof(int),c[3].DataType);
229
Assert.AreEqual(typeof(DateTime),c[4].DataType);
234
public void DataRowCountEqualListCount ()
236
ReportSettings rs = new ReportSettings();
237
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection,rs);
238
DataNavigator dataNav = dm.GetNavigator;
240
while (dataNav.MoveNext()) {
241
CurrentItemsCollection c = dataNav.GetDataRow;
246
Assert.AreEqual(this.contributorCollection.Count,count);
252
#region get included class
254
ContributorCollection ModifyCollection ()
256
var newcol = this.contributorCollection;
259
foreach (var element in newcol)
261
dummy = new MyDummyClass();
262
dummy.DummyString = "dummy" + start.ToString();
263
dummy.DummyInt = start;
264
element.DummyClass = dummy;
272
public void Collection_Contains_Subclass ()
274
var modifyedCollection = this.ModifyCollection();
275
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(modifyedCollection,new ReportSettings());
276
IDataNavigator dn = dm.GetNavigator;
278
ReportItemCollection searchCol = new ReportItemCollection();
279
searchCol.Add(new BaseDataItem ()
281
ColumnName ="DummyClass.DummyString"
285
searchCol.Add(new BaseDataItem ()
288
ColumnName ="GroupItem"
295
while (dn.MoveNext()) {
297
var a = (BaseDataItem)searchCol[0];
298
var b = (BaseDataItem)searchCol[1];
299
var c = modifyedCollection[dn.CurrentRow];
300
Assert.AreEqual(a.DBValue,c.DummyClass.DummyString);
301
Assert.AreEqual(b.DBValue,c.GroupItem);
307
public void SubClassName_Is_Wrong ()
309
var modifyedCollection = this.ModifyCollection();
310
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(modifyedCollection,new ReportSettings());
311
IDataNavigator dn = dm.GetNavigator;
312
ReportItemCollection searchCol = new ReportItemCollection();
313
searchCol.Add(new BaseDataItem ()
315
ColumnName ="wrong.DummyString",
316
DataType = "System.Int32"
323
while (dn.MoveNext()) {
325
var a = (BaseDataItem)searchCol[0];
326
Assert.That(a.DBValue.StartsWith("Error"));
331
public void SubPropertyName_Is_Wrong ()
333
var modifyedCollection = this.ModifyCollection();
334
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(modifyedCollection,new ReportSettings());
335
IDataNavigator dn = dm.GetNavigator;
336
ReportItemCollection searchCol = new ReportItemCollection();
337
searchCol.Add(new BaseDataItem ()
340
ColumnName ="DummyClass.Wrong",
341
DataType = "System.Int32"
346
while (dn.MoveNext()) {
348
var a = (BaseDataItem)searchCol[0];
349
Assert.That(a.DBValue.StartsWith("Error"));
355
#region Setup/TearDown
360
ContributorsList contributorsList = new ContributorsList();
361
this.contributorCollection = contributorsList.ContributorCollection;
364
[TestFixtureTearDown]
365
public void Dispose()
367
if (this.contributorCollection == null) {
368
this.contributorCollection = null;