~halega/+junk/sharpdevelop

« back to all changes in this revision

Viewing changes to src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/IListDataManagerFixture.cs

  • Committer: sk
  • Date: 2011-09-10 05:17:57 UTC
  • Revision ID: halega@halega.com-20110910051757-qfouz1llya9m6boy
4.1.0.7915 Release Candidate 1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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)
 
3
 
 
4
using System;
 
5
using System.ComponentModel;
 
6
using System.Data;
 
7
using System.Reflection;
 
8
 
 
9
using ICSharpCode.Reports.Core;
 
10
using ICSharpCode.Reports.Core.Test.TestHelpers;
 
11
using NUnit.Framework;
 
12
 
 
13
namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
 
14
{
 
15
        [TestFixture]
 
16
        
 
17
        public class IListDataManagerFixture
 
18
        {
 
19
                
 
20
                ContributorCollection contributorCollection;
 
21
                
 
22
                [Test]
 
23
                public void DefaultConstructor()
 
24
                {
 
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'");
 
27
                }
 
28
                
 
29
                
 
30
                [Test]
 
31
                [ExpectedException(typeof(ArgumentNullException))]
 
32
                public void ConstructorWithNullIList()
 
33
                {
 
34
                        IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance((System.Collections.IList)null,new ReportSettings());
 
35
                        Assert.IsNotNull( dm);
 
36
                }
 
37
                
 
38
                
 
39
                [Test]
 
40
                [ExpectedException(typeof(ArgumentNullException))]
 
41
                public void ConstructorWithNullSettings()
 
42
                {
 
43
                        IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection,null);
 
44
                        Assert.IsNotNull( dm);
 
45
                }
 
46
                
 
47
                
 
48
                [Test]
 
49
                public void DataNavigatorNotNull ()
 
50
                {
 
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'");
 
55
                }
 
56
                
 
57
                
 
58
                [Test]
 
59
                public void DataNavigatorCountEqualListCount ()
 
60
                {
 
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,
 
65
                                        dataNav.Count,
 
66
                                        "Count of LstItems should be equal");
 
67
                }
 
68
                
 
69
                
 
70
                [Test]
 
71
                public void DataNavigatorCorrectPosition ()
 
72
                {
 
73
                        IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection as System.Collections.IList,new ReportSettings());
 
74
                        IDataNavigator dataNav = dm.GetNavigator;
 
75
                        Assert.AreEqual(-1,
 
76
                                        dataNav.CurrentRow,
 
77
                                        "CurrentRow should be -1");
 
78
                }
 
79
                
 
80
                
 
81
                [Test]
 
82
                public void DataNavigator_Return_ErrMessage_If_ColumnName_NotExist ()
 
83
                {
 
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();
 
89
                        items.Add(item);
 
90
                        dataNav.Reset();
 
91
                        dataNav.MoveNext();
 
92
                        dataNav.Fill(items);
 
93
//                      string str = "<" + item.ColumnName +">";
 
94
                        Assert.That(item.DBValue.StartsWith("Error"));
 
95
                }
 
96
                
 
97
                
 
98
                #region Standart Enumerator
 
99
                
 
100
                [Test]
 
101
                public void EnumeratorStartFromBegin ()
 
102
                {
 
103
                        IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection, new ReportSettings());
 
104
                                                                                             
 
105
                        IDataNavigator dataNav = dm.GetNavigator;
 
106
                        dataNav.MoveNext();
 
107
                        int start = 0;
 
108
                        do {
 
109
                                Contributor view = dataNav.Current as Contributor;
 
110
                                start ++;
 
111
                        }
 
112
                        while (dataNav.MoveNext());
 
113
                        Assert.AreEqual(this.contributorCollection.Count,start);
 
114
                }
 
115
                
 
116
                
 
117
                
 
118
                [Test]
 
119
                public void NullValue_In_Property_Should_Return_EmptyString ()
 
120
                {
 
121
                        ContributorsList contributorsList = new ContributorsList();
 
122
                        var contColl = contributorsList.ContributorCollection;
 
123
                        
 
124
                        foreach (Contributor element in contColl) {
 
125
                                element.GroupItem = null;
 
126
                        }
 
127
                        
 
128
                        IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(contColl, new ReportSettings());
 
129
                        IDataNavigator dataNav = dm.GetNavigator;
 
130
                        
 
131
                        
 
132
                        ReportItemCollection searchCol = new ReportItemCollection();
 
133
                        searchCol.Add(new BaseDataItem ()
 
134
                                     {
 
135
                                        Name ="GroupItem",
 
136
                                        ColumnName ="GroupItem"
 
137
                                                
 
138
                                     }
 
139
                                    );
 
140
                        dataNav.Reset();
 
141
                        dataNav.MoveNext();
 
142
                        do 
 
143
                        {
 
144
                                dataNav.Fill(searchCol);
 
145
                                BaseDataItem resultItem = searchCol[0] as BaseDataItem;
 
146
                                
 
147
                                Assert.That (resultItem.Name,Is.EqualTo("GroupItem"));
 
148
                                Assert.That(resultItem.DBValue,Is.EqualTo(String.Empty));
 
149
                                
 
150
                        }
 
151
                        while (dataNav.MoveNext());
 
152
                }
 
153
                        
 
154
                
 
155
                #endregion
 
156
                
 
157
                #region Available Fields
 
158
                
 
159
                [Test]
 
160
                public void AvailableFields ()
 
161
                {
 
162
                        IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection,new ReportSettings());
 
163
                        DataNavigator dataNav = dm.GetNavigator;
 
164
                        Assert.AreEqual(7,dataNav.AvailableFields.Count);
 
165
                }
 
166
                
 
167
                
 
168
                #endregion
 
169
                
 
170
                #region Sorting
 
171
                
 
172
                [Test]
 
173
                public void SortAscendingByTwoColumns()
 
174
                {
 
175
                        SortColumn sc = new SortColumn("Last",System.ComponentModel.ListSortDirection.Ascending);
 
176
                        SortColumn sc1 = new SortColumn("RandomInt",System.ComponentModel.ListSortDirection.Ascending);
 
177
                        
 
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);
 
191
                                v1 = v2;
 
192
                        }
 
193
                }
 
194
                
 
195
                
 
196
                [Test]
 
197
                public void SortDescendingByOneColumn()
 
198
                {
 
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);
 
209
                                compareTo = actual;
 
210
                        }
 
211
                }
 
212
                
 
213
                #endregion
 
214
                
 
215
                #region DataRow
 
216
                
 
217
                [Test]
 
218
                public void CreatePlainDataRow ()
 
219
                {
 
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);
 
230
                        }
 
231
                }
 
232
                
 
233
                [Test]
 
234
                public void DataRowCountEqualListCount ()
 
235
                {
 
236
                        ReportSettings rs = new ReportSettings();
 
237
                        IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection,rs);
 
238
                        DataNavigator dataNav = dm.GetNavigator;
 
239
                        int count = 0;
 
240
                        while (dataNav.MoveNext()) {
 
241
                                CurrentItemsCollection c = dataNav.GetDataRow;
 
242
                                if ( c != null) {
 
243
                                        count ++;
 
244
                                }
 
245
                        }
 
246
                        Assert.AreEqual(this.contributorCollection.Count,count);
 
247
                }
 
248
                
 
249
                #endregion
 
250
                
 
251
                
 
252
                #region get included class
 
253
                        
 
254
                ContributorCollection ModifyCollection ()
 
255
                {
 
256
                        var newcol = this.contributorCollection;
 
257
                        MyDummyClass dummy;
 
258
                        int start = 0;
 
259
                        foreach (var element in newcol) 
 
260
                        {
 
261
                                dummy = new MyDummyClass();
 
262
                                dummy.DummyString = "dummy" + start.ToString();
 
263
                                dummy.DummyInt = start;
 
264
                                element.DummyClass = dummy;
 
265
                                start ++;
 
266
                        }
 
267
                        return newcol;
 
268
                }
 
269
                
 
270
                
 
271
                [Test]
 
272
                public void Collection_Contains_Subclass ()
 
273
                {
 
274
                        var modifyedCollection = this.ModifyCollection();
 
275
                        IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(modifyedCollection,new ReportSettings());
 
276
                        IDataNavigator dn = dm.GetNavigator;
 
277
                        
 
278
                        ReportItemCollection searchCol = new ReportItemCollection();
 
279
                        searchCol.Add(new BaseDataItem ()
 
280
                                      {
 
281
                                        ColumnName ="DummyClass.DummyString"                         
 
282
                                      }
 
283
                                     );
 
284
                        
 
285
                                searchCol.Add(new BaseDataItem ()
 
286
                                      {
 
287
                                        Name ="GroupItem",                                 
 
288
                                        ColumnName ="GroupItem" 
 
289
                                      }
 
290
                                     );
 
291
                        
 
292
                        dn.Reset();
 
293
                        dn.MoveNext();
 
294
 
 
295
                        while (dn.MoveNext()) {
 
296
                                dn.Fill(searchCol);
 
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);
 
302
                        }
 
303
                }
 
304
                
 
305
                
 
306
                [Test]
 
307
                public void SubClassName_Is_Wrong ()
 
308
                {
 
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 ()
 
314
                                      {
 
315
                                        ColumnName ="wrong.DummyString",
 
316
                                                        DataType = "System.Int32"                               
 
317
                                      }
 
318
                                     );
 
319
                        
 
320
                        dn.Reset();
 
321
                        dn.MoveNext();
 
322
 
 
323
                        while (dn.MoveNext()) {
 
324
                                dn.Fill(searchCol);
 
325
                                var a = (BaseDataItem)searchCol[0];
 
326
                                Assert.That(a.DBValue.StartsWith("Error"));
 
327
                        }
 
328
                }
 
329
                
 
330
                [Test]
 
331
                public void SubPropertyName_Is_Wrong ()
 
332
                {
 
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 ()
 
338
                                      {
 
339
                                        Name ="GroupItem",
 
340
                                        ColumnName ="DummyClass.Wrong",
 
341
                                                        DataType = "System.Int32"                               
 
342
                                      }
 
343
                                     );
 
344
                        dn.Reset();
 
345
                        dn.MoveNext();
 
346
                        while (dn.MoveNext()) {
 
347
                                dn.Fill(searchCol);
 
348
                                var a = (BaseDataItem)searchCol[0];
 
349
                                Assert.That(a.DBValue.StartsWith("Error"));
 
350
                        }
 
351
                }
 
352
                
 
353
                #endregion
 
354
                
 
355
                #region Setup/TearDown
 
356
        
 
357
                [TestFixtureSetUp]
 
358
                public void Init()
 
359
                {
 
360
                        ContributorsList contributorsList = new ContributorsList();
 
361
                        this.contributorCollection = contributorsList.ContributorCollection;
 
362
                }
 
363
                
 
364
                [TestFixtureTearDown]
 
365
                public void Dispose()
 
366
                {
 
367
                        if (this.contributorCollection == null) {
 
368
                                this.contributorCollection = null;
 
369
                        }
 
370
                }
 
371
                
 
372
                #endregion
 
373
                
 
374
        }
 
375
}