Browse Source

FollowPropertyPath with grouping

Cleanup Data-Interfaces
pull/15/head^2
Peter Forstmeier 15 years ago
parent
commit
6c79edf505
  1. 50
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ChildNavigator.cs
  2. 9
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataManager.cs
  3. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs
  4. 78
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs
  5. 38
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/CollectionStrategy.cs
  6. 42
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs
  7. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataNavigator.cs
  8. 8
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataViewStrategy.cs
  9. 35
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/IConnectionDataManagerFixture.cs
  10. 55
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/GroupListFixture.cs
  11. 86
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/IListDataManagerFixture.cs
  12. 30
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/TableStragy/GroupTableFixture.cs
  13. 14
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/TableStragy/TableDataManagerFixture.cs
  14. 22
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/TableStragy/TableStrategyFixture.cs

50
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ChildNavigator.cs

@ -84,20 +84,50 @@ namespace ICSharpCode.Reports.Core @@ -84,20 +84,50 @@ namespace ICSharpCode.Reports.Core
public void Fill(ReportItemCollection collection)
{
foreach (var item in collection)
{
IDataItem dataItem = item as IDataItem;
if (dataItem != null)
{
CurrentItemsCollection currentItemsCollection = dataStore.FillDataRow(this.indexList[CurrentRow].ListIndex);
CurrentItem s = currentItemsCollection.FirstOrDefault(x => x.ColumnName == dataItem.ColumnName);
dataItem.DBValue = s.Value.ToString();
}
var ss = this.indexList[this.indexList.CurrentPosition].ListIndex;
var current = dataStore.CurrentFromPosition(ss);
// CurrentItemsCollection currentItemsCollection = dataStore.FillDataRow(this.indexList[CurrentRow].ListIndex);
foreach (IDataItem item in collection)
{
FillInternal (current,item);
}
}
private void FillInternal(object fillFrom,IDataItem item)
{
if (item is BaseDataItem)
{
var retVal = CollectionStrategy.FollowPropertyPath(fillFrom,item.ColumnName);
if (retVal != null) {
item.DBValue = retVal.ToString();
} else {
item.DBValue = String.Empty;
}
}
else
{
/*
//image processing from IList
BaseImageItem baseImageItem = item as BaseImageItem;
if (baseImageItem != null) {
PropertyDescriptor p = this.listProperties.Find(baseImageItem.ColumnName, true);
if (p != null) {
baseImageItem.Image = p.GetValue(this.Current) as System.Drawing.Image;
}
return;
}
*/
}
}
public bool MoveNext()
{
this.indexList.CurrentPosition ++;

9
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataManager.cs

@ -229,15 +229,6 @@ namespace ICSharpCode.Reports.Core { @@ -229,15 +229,6 @@ namespace ICSharpCode.Reports.Core {
return this.dataSource;
}
}
public bool IsSorted
{
get {
return this.dataViewStrategy.IsSorted;
}
}
#endregion

4
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs

@ -63,10 +63,10 @@ namespace ICSharpCode.Reports.Core @@ -63,10 +63,10 @@ namespace ICSharpCode.Reports.Core
}
public bool IsSorted {get {return this.store.IsSorted;}}
//public bool IsSorted {get {return this.store.IsSorted;}}
public bool IsGrouped {get {return this.store.IsGrouped;}}
//public bool IsGrouped {get {return this.store.IsGrouped;}}
public int CurrentRow {

78
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs

@ -18,8 +18,8 @@ using System.Linq; @@ -18,8 +18,8 @@ using System.Linq;
namespace ICSharpCode.Reports.Core {
public static class SortExtension
internal static class SortExtension
{
public static IOrderedQueryable<BaseComparer> AscendingOrder(this IQueryable<BaseComparer> source )
@ -34,12 +34,11 @@ namespace ICSharpCode.Reports.Core { @@ -34,12 +34,11 @@ namespace ICSharpCode.Reports.Core {
return source.OrderByDescending(x => x.ObjectArray[0]);
}
}
internal abstract class BaseListStrategy :IDataViewStrategy,IEnumerator
{
private IndexList indexList;
private AvailableFieldsCollection availableFields;
@ -51,26 +50,11 @@ namespace ICSharpCode.Reports.Core { @@ -51,26 +50,11 @@ namespace ICSharpCode.Reports.Core {
throw new ArgumentNullException("reportSettings");
}
this.ReportSettings = reportSettings;
this.indexList = new IndexList("IndexList");
this.IndexList = new IndexList("IndexList");
}
#endregion
public IndexList IndexList
{
get {
return indexList;
}
set {
this.indexList = value;
}
}
protected ReportSettings ReportSettings {get;private set;}
#region Sorting delegates
protected static List<BaseComparer> GenericSorter (List<BaseComparer> list)
@ -111,7 +95,7 @@ namespace ICSharpCode.Reports.Core { @@ -111,7 +95,7 @@ namespace ICSharpCode.Reports.Core {
}
compVal = v;
}
ShowIndexList(IndexList);
//ShowIndexList(IndexList);
}
@ -157,7 +141,7 @@ namespace ICSharpCode.Reports.Core { @@ -157,7 +141,7 @@ namespace ICSharpCode.Reports.Core {
public virtual void Reset()
{
this.indexList.CurrentPosition = -1;
this.IndexList.CurrentPosition = -1;
}
@ -171,8 +155,8 @@ namespace ICSharpCode.Reports.Core { @@ -171,8 +155,8 @@ namespace ICSharpCode.Reports.Core {
public virtual bool MoveNext()
{
this.indexList.CurrentPosition ++;
return this.indexList.CurrentPosition<this.indexList.Count;
this.IndexList.CurrentPosition ++;
return this.IndexList.CurrentPosition<this.IndexList.Count;
}
#region test
@ -182,6 +166,7 @@ namespace ICSharpCode.Reports.Core { @@ -182,6 +166,7 @@ namespace ICSharpCode.Reports.Core {
return new CurrentItemsCollection();
}
public virtual object CurrentFromPosition (int pos)
{
throw new NotImplementedException();
@ -192,6 +177,7 @@ namespace ICSharpCode.Reports.Core { @@ -192,6 +177,7 @@ namespace ICSharpCode.Reports.Core {
{
return FillDataRow();
}
#endregion
#region SharpReportCore.IDataViewStrategy interface implementation
@ -218,42 +204,25 @@ namespace ICSharpCode.Reports.Core { @@ -218,42 +204,25 @@ namespace ICSharpCode.Reports.Core {
public virtual int CurrentPosition
{
get {
return this.indexList.CurrentPosition;
return this.IndexList.CurrentPosition;
}
set {
if ((value > -1)|| (value > this.indexList.Count)){
this.indexList.CurrentPosition = value;
if ((value > -1)|| (value > this.IndexList.Count)){
this.IndexList.CurrentPosition = value;
}
}
}
public bool HasMoreData
{
get {
return true;
}
}
public virtual bool IsSorted {get;set;}
public bool IsGrouped {get;set;}
public virtual void Sort()
{
this.indexList.Clear();
this.IndexList.Clear();
}
public virtual void Group()
{
this.indexList.Clear();
this.IsGrouped = true;
this.IndexList.Clear();
}
public virtual void Bind()
@ -267,6 +236,14 @@ namespace ICSharpCode.Reports.Core { @@ -267,6 +236,14 @@ namespace ICSharpCode.Reports.Core {
}
protected ReportSettings ReportSettings {get;set;}
public IndexList IndexList {get; set;}
#endregion
#region IDisposeable
public virtual void Dispose()
{
this.Dispose(true);
@ -281,9 +258,9 @@ namespace ICSharpCode.Reports.Core { @@ -281,9 +258,9 @@ namespace ICSharpCode.Reports.Core {
{
if (disposing) {
// Free other state (managed objects).
if (this.indexList != null) {
this.indexList.Clear();
this.indexList = null;
if (this.IndexList != null) {
this.IndexList.Clear();
this.IndexList = null;
}
}
@ -291,9 +268,8 @@ namespace ICSharpCode.Reports.Core { @@ -291,9 +268,8 @@ namespace ICSharpCode.Reports.Core {
// Set large fields to null.
// Call Dispose on your base class.
}
#endregion
#endregion
}
}

38
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/CollectionStrategy.cs

@ -42,7 +42,6 @@ namespace ICSharpCode.Reports.Core { @@ -42,7 +42,6 @@ namespace ICSharpCode.Reports.Core {
#endregion
#region build sorting
private PropertyDescriptor[] BuildSortProperties (SortColumnCollection col)
@ -166,7 +165,7 @@ namespace ICSharpCode.Reports.Core { @@ -166,7 +165,7 @@ namespace ICSharpCode.Reports.Core {
base.Group();
IndexList gl = new IndexList("group");
gl = this.BuildSortIndex (ReportSettings.GroupColumnsCollection);
ShowIndexList(gl);
//ShowIndexList(gl);
base.BuildGroup(gl);
}
@ -176,12 +175,9 @@ namespace ICSharpCode.Reports.Core { @@ -176,12 +175,9 @@ namespace ICSharpCode.Reports.Core {
base.Sort();
if ((base.ReportSettings.SortColumnsCollection != null)) {
if (base.ReportSettings.SortColumnsCollection.Count > 0) {
base.IndexList = this.BuildSortIndex (ReportSettings.SortColumnsCollection);
base.IsSorted = true;
} else {
base.IndexList = this.IndexBuilder(ReportSettings.SortColumnsCollection);
base.IsSorted = false;
}
}
}
@ -236,12 +232,12 @@ namespace ICSharpCode.Reports.Core { @@ -236,12 +232,12 @@ namespace ICSharpCode.Reports.Core {
}
}
#region Proppath from StackOverflow
#region PropertyPath from StackOverflow
//http://stackoverflow.com/questions/366332/best-way-to-get-sub-properties-using-getproperty
private static object FollowPropertyPath(object value, string path)
public static object FollowPropertyPath(object value, string path)
{
Type currentType = value.GetType();
foreach (string propertyName in path.Split('.'))
@ -274,7 +270,7 @@ namespace ICSharpCode.Reports.Core { @@ -274,7 +270,7 @@ namespace ICSharpCode.Reports.Core {
public override object CurrentFromPosition (int pos)
{
return this.IndexList[this.CurrentPosition];
return this.baseList[pos];
}
@ -303,32 +299,6 @@ namespace ICSharpCode.Reports.Core { @@ -303,32 +299,6 @@ namespace ICSharpCode.Reports.Core {
return ci;
}
public override CurrentItemsCollection FillDataRow(int pos)
{
CurrentItemsCollection ci = new CurrentItemsCollection();
CurrentItem c = null;
foreach (PropertyDescriptor pd in this.listProperties)
{
c = new CurrentItem();
c.ColumnName = pd.Name;
c.DataType = pd.PropertyType;
var s = pd.GetValue(this.Current);
if (s != null)
{
c.Value = s.ToString();
}
else
{
c.Value = String.Empty;
}
ci.Add(c);
}
return ci;
}
#endregion
#region IDisposable

42
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs

@ -86,11 +86,11 @@ namespace ICSharpCode.Reports.Core @@ -86,11 +86,11 @@ namespace ICSharpCode.Reports.Core
if ((base.ReportSettings.SortColumnsCollection != null)) {
if (base.ReportSettings.SortColumnsCollection.Count > 0) {
base.IndexList = this.BuildSortIndex (ReportSettings.SortColumnsCollection);
base.IsSorted = true;
//base.IsSorted = true;
} else {
// if we have no sorting, we build the indexlist as well
base.IndexList = this.IndexBuilder(ReportSettings.SortColumnsCollection);
base.IsSorted = false;
//base.IsSorted = false;
}
}
}
@ -188,31 +188,12 @@ namespace ICSharpCode.Reports.Core @@ -188,31 +188,12 @@ namespace ICSharpCode.Reports.Core
return ci;
}
public override object CurrentFromPosition (int pos)
{
return this.table.Rows[pos];
}
public CurrentItemsCollection FillDataRow(int pos)
{
CurrentItemsCollection ci = new CurrentItemsCollection();
DataRow row = this.table.Rows[pos] as DataRow;
if (row != null) {
CurrentItem c = null;
foreach (DataColumn dc in table.Columns)
{
c = new CurrentItem();
c.ColumnName = dc.ColumnName;
c.DataType = dc.DataType;
c.Value = row[dc.ColumnName];
ci.Add(c);
}
}
return ci;
}
#endregion
@ -259,23 +240,6 @@ namespace ICSharpCode.Reports.Core @@ -259,23 +240,6 @@ namespace ICSharpCode.Reports.Core
}
}
public override int CurrentPosition {
get { return base.CurrentPosition; }
set { base.CurrentPosition = value; }
}
public override bool IsSorted {
get { return base.IsSorted; }
set { base.IsSorted = value; }
}
#endregion
public DataRow Readrandowm (int pos)
{
return this.table.Rows[pos];
}
}
}

4
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataNavigator.cs

@ -30,11 +30,11 @@ using System.ComponentModel; @@ -30,11 +30,11 @@ using System.ComponentModel;
bool HasChildren {get;}
// end child list --------------------
/*
bool IsSorted {get;}
bool IsGrouped {get;}
*/
int CurrentRow {get;}
int Count {get;}

8
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataViewStrategy.cs

@ -16,7 +16,7 @@ namespace ICSharpCode.Reports.Core{ @@ -16,7 +16,7 @@ namespace ICSharpCode.Reports.Core{
void Fill (IDataItem item);
IndexList IndexList {get;}
IndexList IndexList {get;set;}
//test
object CurrentFromPosition(int pos);
@ -29,11 +29,5 @@ namespace ICSharpCode.Reports.Core{ @@ -29,11 +29,5 @@ namespace ICSharpCode.Reports.Core{
int CurrentPosition {get;set;}
bool HasMoreData {get;}
bool IsSorted {get;}
bool IsGrouped {get;set;}
}
}

35
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/IConnectionDataManagerFixture.cs

@ -133,41 +133,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager @@ -133,41 +133,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager
}
[Test]
public void CheckIsSorted()
{
ReportSettings rs = new ReportSettings();
rs.ConnectionString = "goodConnection";
IDataAccessStrategy da = new MockDataAccessStrategy (rs);
ICSharpCode.Reports.Core.DataManager dm = (ICSharpCode.Reports.Core.DataManager)ICSharpCode.Reports.Core.DataManager.CreateInstance(rs,da);
Assert.IsFalse(dm.IsSorted,"IsSorted should be 'false'");
}
/*
[Test]
public void CheckIsGrouped()
{
IDataAccessStrategy da = new MockDataAccessStrategy ();
ReportSettings rs = new ReportSettings();
rs.ConnectionString = "goodConnection";
ICSharpCode.Reports.Core.DataManager dm = (ICSharpCode.Reports.Core.DataManager)ICSharpCode.Reports.Core.DataManager.CreateInstance(rs,da);
Assert.IsFalse(dm.IsGrouped,"IsGrouped should be 'false'");
}
[Test]
public void CheckIsFitered()
{
IDataAccessStrategy da = new MockDataAccessStrategy ();
ReportSettings rs = new ReportSettings();
rs.ConnectionString = "goodConnection";
ICSharpCode.Reports.Core.DataManager dm = (ICSharpCode.Reports.Core.DataManager)ICSharpCode.Reports.Core.DataManager.CreateInstance(rs,da);
Assert.IsFalse(dm.IsFiltered,"IsFiltered should be 'false'");
}
*/
#region Setup/TearDown
[TestFixtureSetUp]

55
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/GroupListFixture.cs

@ -15,26 +15,8 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -15,26 +15,8 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
ContributorCollection contributorCollection;
[Test]
public void GroupingCollection_Empty_IsGrouped_False()
{
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection,new ReportSettings());
DataNavigator dataNav = dm.GetNavigator;
Assert.That(dataNav.IsGrouped == false);
}
#region standard test's
[Test]
public void GroupingCollection_Contains_IsGrouped_True()
{
var dataNavigator = PrepareStringGrouping();
Assert.That(dataNavigator.IsGrouped,Is.True);
}
[Test]
public void AvaiableFields_Should_Be_Set()
{
@ -48,7 +30,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -48,7 +30,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
#endregion
#region group by StringValue
#region Group by StringValue
[Test]
public void Has_Children()
@ -87,6 +69,12 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -87,6 +69,12 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
ColumnName ="Last"
}
);
searchCol.Add(new BaseDataItem ()
{
ColumnName ="GroupItem"
}
);
dataNavigator.Reset();
dataNavigator.MoveNext();
@ -94,21 +82,18 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -94,21 +82,18 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
{
if (dataNavigator.HasChildren)
{
Console.WriteLine("---");
dataNavigator.Fill(searchCol);
var b = (BaseDataItem)searchCol[1];
Console.WriteLine("-- <{0}>-",b.DBValue);
var childNavigator = dataNavigator.GetChildNavigator;
do
{
Assert.That(dataNavigator.HasChildren,Is.True);
// we know that current is a 'contributor'
childNavigator.Fill(searchCol);
var a = (BaseDataItem)searchCol[0];
Console.WriteLine ("\t{0}",a.DBValue);
/*
Contributor c = dataNavigator.Current as Contributor;
string v2 = c.Last + " GroupVal :" + c.GroupItem;
Console.WriteLine(v2);
*/
}
while (childNavigator.MoveNext());
}
@ -118,7 +103,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -118,7 +103,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
[Test]
[Ignore]
public void Collection_Contains_Subclass ()
{
var modifyedCollection = this.ModifyCollection();
@ -142,6 +127,13 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -142,6 +127,13 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
}
);
searchCol.Add(new BaseDataItem ()
{
ColumnName ="GroupItem"
}
);
dataNavigator.Reset();
dataNavigator.MoveNext();
@ -150,8 +142,8 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -150,8 +142,8 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
{
dataNavigator.Fill(searchCol);
var a1 = (BaseDataItem)searchCol[0];
var b1 = (BaseDataItem)searchCol[1];
Console.WriteLine ("{0} - {1}",a1.DBValue,b1.DBValue);
var b1 = (BaseDataItem)searchCol[2];
Console.WriteLine ("-----{0} - {1}------",a1.DBValue,b1.DBValue);
if (dataNavigator.HasChildren)
{
@ -163,7 +155,8 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -163,7 +155,8 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
var a = (BaseDataItem)searchCol[0];
var b = (BaseDataItem)searchCol[1];
Console.WriteLine ("{0} - {1}",a.DBValue,b.DBValue);
var c = (BaseDataItem)searchCol[2];
Console.WriteLine ("\t{0} - {1} - {2}",a.DBValue,b.DBValue,c.DBValue);
// Contributor c = dataNavigator.Current as Contributor;
// string v2 = c.Last + " GroupVal :" + c.GroupItem;
// Console.WriteLine(v2);
@ -176,7 +169,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -176,7 +169,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
#endregion
#region GroupbyDataTime
#region Group by DataTime
[Test]
public void DateTimeCan_FillChild()

86
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/IListDataManagerFixture.cs

@ -169,90 +169,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -169,90 +169,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
#region Sorting
[Test]
public void SortAscendingByOneColumn()
{
SortColumn sc = new SortColumn("Last",System.ComponentModel.ListSortDirection.Ascending);
ReportSettings rs = new ReportSettings();
rs.SortColumnsCollection.Add(sc);
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection,rs);
DataNavigator dataNav = dm.GetNavigator;
string v1 = String.Empty;
while (dataNav.MoveNext()) {
Contributor view = dataNav.Current as Contributor;
string v2 = view.Last;
string ss = String.Format("< {0} > <{1}>",v1,v2);
Console.WriteLine(ss);
// Assert.LessOrEqual(v1,v2);
v1 = v2;
}
Assert.IsTrue(dataNav.IsSorted);
}
/*
[Test]
[Ignore("Sort of integer not working")]
public void SortAscendingByInteger()
{
SortColumn sc = new SortColumn("RandomInt",System.ComponentModel.ListSortDirection.Ascending,
typeof(System.Int16),false);
ReportSettings rs = new ReportSettings();
rs.SortColumnCollection.Add(sc);
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection,rs);
DataNavigator dataNav = dm.GetNavigator;
string v1 = String.Empty;
while (dataNav.MoveNext()) {
Contributor view= dataNav.Current as Contributor;
string v2 = view.RandomInt.ToString();
int i2 = view.RandomInt;
// string ss = String.Format("< {0} > <{1}>",v1,v2);
Console.WriteLine(v2);
Assert.LessOrEqual(v1,v2);
v1 = v2;
}
Assert.IsTrue(dataNav.IsSorted);
}
*/
[Test]
public void SortAscendingByDateTime()
{
SortColumn sc = new SortColumn("RandomDate",System.ComponentModel.ListSortDirection.Ascending,
typeof(System.Int16),false);
ReportSettings rs = new ReportSettings();
rs.SortColumnsCollection.Add(sc);
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection,rs);
DataNavigator dataNav = dm.GetNavigator;
DateTime d1 = new DateTime(1,1,1);
while (dataNav.MoveNext()) {
Contributor view = dataNav.Current as Contributor;
Assert.LessOrEqual(d1,view.RandomDate);
d1 = view.RandomDate;
}
Assert.IsTrue(dataNav.IsSorted);
}
[Test]
public void SortDescendingByDateTime()
{
SortColumn sc = new SortColumn("RandomDate",System.ComponentModel.ListSortDirection.Descending,
typeof(System.Int16),false);
ReportSettings rs = new ReportSettings();
rs.SortColumnsCollection.Add(sc);
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection,rs);
DataNavigator dataNav = dm.GetNavigator;
DateTime d1 = new DateTime(2099,12,30);
while (dataNav.MoveNext()) {
Contributor view = dataNav.Current as Contributor;
Assert.GreaterOrEqual(d1,view.RandomDate);
d1 = view.RandomDate;
}
Assert.IsTrue(dataNav.IsSorted);
}
[Test]
public void SortAscendingByTwoColumns()
{
@ -274,7 +190,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -274,7 +190,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
Assert.LessOrEqual(v1,v2);
v1 = v2;
}
Assert.IsTrue(dataNav.IsSorted);
}
@ -293,7 +208,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -293,7 +208,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
Assert.GreaterOrEqual(compareTo,actual);
compareTo = actual;
}
Assert.IsTrue(dataNav.IsSorted);
}
#endregion

30
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/TableStragy/GroupTableFixture.cs

@ -29,16 +29,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -29,16 +29,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
}
[Test]
public void GroupingCollection_EmptyGrouping_IsGrouped_False()
{
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.table,new ReportSettings());
DataNavigator dataNav = dm.GetNavigator;
Assert.That(dataNav.IsGrouped == false);
}
[Test]
public void AvaiableFields_Should_Be_Set()
{
@ -52,14 +42,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -52,14 +42,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
#region Group by String
[Test]
public void GroupingCollection_ContainsGrouping_IsGrouped_True()
{
var dataNavigator = PrepareStringGrouping();
Assert.That(dataNavigator.IsGrouped == true);
}
[Test]
public void Has_Children()
{
@ -129,14 +111,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -129,14 +111,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
}
[Test]
public void DataTimeCollection_Contains_IsGrouped_False()
{
var dataNavigator = PrepareDateTimeGrouping();
Assert.That(dataNavigator.IsGrouped == true);
}
[Test]
public void DataTime_Has_Children()
{
@ -146,13 +120,10 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -146,13 +120,10 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
}
}
#endregion
#region Try make recursive with ChildNavigator
[Test]
public void Can_Get_ChildNavigator ()
{
@ -174,7 +145,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -174,7 +145,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
}
private void RecursiveCall (IDataNavigator startNavigator)
{
do

14
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/TableStragy/TableDataManagerFixture.cs

@ -80,14 +80,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -80,14 +80,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
}
[Test]
public void DataNavigatorSortedEqualsFalse ()
{
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.table,new ReportSettings());
DataNavigator dataNav = dm.GetNavigator;
Assert.IsFalse(dataNav.IsSorted);
}
[Test]
public void DataNavigatorCountEqualListCount ()
{
@ -112,9 +104,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -112,9 +104,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
#region Sorting
//Tests moved to \Strategy
[Test]
public void SortDescendingByDateTime()
{
@ -133,7 +123,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -133,7 +123,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
Assert.GreaterOrEqual(d1,d2);
d1 = d2;
}
Assert.IsTrue(dataNav.IsSorted);
}
@ -154,7 +143,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -154,7 +143,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
// Console.WriteLine(ss);
compareTo = actual;
}
Assert.IsTrue(dataNav.IsSorted);
}

22
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/TableStragy/TableStrategyFixture.cs

@ -26,18 +26,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -26,18 +26,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
#region Grouping
[Test]
public void Add_GroupColumn_IsGrouped_true()
{
GroupColumn gc = new GroupColumn("GroupItem",1,ListSortDirection.Ascending);
ICSharpCode.Reports.Core.TableStrategy tableStrategy =GroupTableStrategyFactory (gc);
tableStrategy.Bind();
Assert.That(tableStrategy.IsGrouped == true);
}
[Test]
public void CanGroup_All_Elements_are_GroupComparer ()
{
@ -70,16 +58,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -70,16 +58,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
#region Sorting
[Test]
public void TableStrategy_Set_IsSorted()
{
SortColumn sc = new SortColumn("Last",System.ComponentModel.ListSortDirection.Ascending);
var tableStrategy = SortTableStrategyFactory(sc);
tableStrategy.Bind();
Assert.That(tableStrategy.IsSorted == true);
}
[Test]
public void CanSort_String_Ascending()
{

Loading…
Cancel
Save