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
public void Fill(ReportItemCollection collection) public void Fill(ReportItemCollection collection)
{ {
foreach (var item in collection) var ss = this.indexList[this.indexList.CurrentPosition].ListIndex;
{ var current = dataStore.CurrentFromPosition(ss);
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();
}
// 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() public bool MoveNext()
{ {
this.indexList.CurrentPosition ++; this.indexList.CurrentPosition ++;

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

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

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

@ -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 { public int CurrentRow {

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

@ -18,8 +18,8 @@ using System.Linq;
namespace ICSharpCode.Reports.Core { namespace ICSharpCode.Reports.Core {
public static class SortExtension internal static class SortExtension
{ {
public static IOrderedQueryable<BaseComparer> AscendingOrder(this IQueryable<BaseComparer> source ) public static IOrderedQueryable<BaseComparer> AscendingOrder(this IQueryable<BaseComparer> source )
@ -34,12 +34,11 @@ namespace ICSharpCode.Reports.Core {
return source.OrderByDescending(x => x.ObjectArray[0]); return source.OrderByDescending(x => x.ObjectArray[0]);
} }
} }
internal abstract class BaseListStrategy :IDataViewStrategy,IEnumerator internal abstract class BaseListStrategy :IDataViewStrategy,IEnumerator
{ {
private IndexList indexList;
private AvailableFieldsCollection availableFields; private AvailableFieldsCollection availableFields;
@ -51,26 +50,11 @@ namespace ICSharpCode.Reports.Core {
throw new ArgumentNullException("reportSettings"); throw new ArgumentNullException("reportSettings");
} }
this.ReportSettings = reportSettings; this.ReportSettings = reportSettings;
this.indexList = new IndexList("IndexList"); this.IndexList = new IndexList("IndexList");
} }
#endregion #endregion
public IndexList IndexList
{
get {
return indexList;
}
set {
this.indexList = value;
}
}
protected ReportSettings ReportSettings {get;private set;}
#region Sorting delegates #region Sorting delegates
protected static List<BaseComparer> GenericSorter (List<BaseComparer> list) protected static List<BaseComparer> GenericSorter (List<BaseComparer> list)
@ -111,7 +95,7 @@ namespace ICSharpCode.Reports.Core {
} }
compVal = v; compVal = v;
} }
ShowIndexList(IndexList); //ShowIndexList(IndexList);
} }
@ -157,7 +141,7 @@ namespace ICSharpCode.Reports.Core {
public virtual void Reset() public virtual void Reset()
{ {
this.indexList.CurrentPosition = -1; this.IndexList.CurrentPosition = -1;
} }
@ -171,8 +155,8 @@ namespace ICSharpCode.Reports.Core {
public virtual bool MoveNext() public virtual bool MoveNext()
{ {
this.indexList.CurrentPosition ++; this.IndexList.CurrentPosition ++;
return this.indexList.CurrentPosition<this.indexList.Count; return this.IndexList.CurrentPosition<this.IndexList.Count;
} }
#region test #region test
@ -182,6 +166,7 @@ namespace ICSharpCode.Reports.Core {
return new CurrentItemsCollection(); return new CurrentItemsCollection();
} }
public virtual object CurrentFromPosition (int pos) public virtual object CurrentFromPosition (int pos)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
@ -192,6 +177,7 @@ namespace ICSharpCode.Reports.Core {
{ {
return FillDataRow(); return FillDataRow();
} }
#endregion #endregion
#region SharpReportCore.IDataViewStrategy interface implementation #region SharpReportCore.IDataViewStrategy interface implementation
@ -218,42 +204,25 @@ namespace ICSharpCode.Reports.Core {
public virtual int CurrentPosition public virtual int CurrentPosition
{ {
get { get {
return this.indexList.CurrentPosition; return this.IndexList.CurrentPosition;
} }
set { set {
if ((value > -1)|| (value > this.indexList.Count)){ if ((value > -1)|| (value > this.IndexList.Count)){
this.indexList.CurrentPosition = value; 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() public virtual void Sort()
{ {
this.indexList.Clear(); this.IndexList.Clear();
} }
public virtual void Group() public virtual void Group()
{ {
this.indexList.Clear(); this.IndexList.Clear();
this.IsGrouped = true;
} }
public virtual void Bind() public virtual void Bind()
@ -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() public virtual void Dispose()
{ {
this.Dispose(true); this.Dispose(true);
@ -281,9 +258,9 @@ namespace ICSharpCode.Reports.Core {
{ {
if (disposing) { if (disposing) {
// Free other state (managed objects). // Free other state (managed objects).
if (this.indexList != null) { if (this.IndexList != null) {
this.indexList.Clear(); this.IndexList.Clear();
this.indexList = null; this.IndexList = null;
} }
} }
@ -291,9 +268,8 @@ namespace ICSharpCode.Reports.Core {
// Set large fields to null. // Set large fields to null.
// Call Dispose on your base class. // 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 {
#endregion #endregion
#region build sorting #region build sorting
private PropertyDescriptor[] BuildSortProperties (SortColumnCollection col) private PropertyDescriptor[] BuildSortProperties (SortColumnCollection col)
@ -166,7 +165,7 @@ namespace ICSharpCode.Reports.Core {
base.Group(); base.Group();
IndexList gl = new IndexList("group"); IndexList gl = new IndexList("group");
gl = this.BuildSortIndex (ReportSettings.GroupColumnsCollection); gl = this.BuildSortIndex (ReportSettings.GroupColumnsCollection);
ShowIndexList(gl); //ShowIndexList(gl);
base.BuildGroup(gl); base.BuildGroup(gl);
} }
@ -176,12 +175,9 @@ namespace ICSharpCode.Reports.Core {
base.Sort(); base.Sort();
if ((base.ReportSettings.SortColumnsCollection != null)) { if ((base.ReportSettings.SortColumnsCollection != null)) {
if (base.ReportSettings.SortColumnsCollection.Count > 0) { if (base.ReportSettings.SortColumnsCollection.Count > 0) {
base.IndexList = this.BuildSortIndex (ReportSettings.SortColumnsCollection); base.IndexList = this.BuildSortIndex (ReportSettings.SortColumnsCollection);
base.IsSorted = true;
} else { } else {
base.IndexList = this.IndexBuilder(ReportSettings.SortColumnsCollection); base.IndexList = this.IndexBuilder(ReportSettings.SortColumnsCollection);
base.IsSorted = false;
} }
} }
} }
@ -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 //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(); Type currentType = value.GetType();
foreach (string propertyName in path.Split('.')) foreach (string propertyName in path.Split('.'))
@ -274,7 +270,7 @@ namespace ICSharpCode.Reports.Core {
public override object CurrentFromPosition (int pos) public override object CurrentFromPosition (int pos)
{ {
return this.IndexList[this.CurrentPosition]; return this.baseList[pos];
} }
@ -303,32 +299,6 @@ namespace ICSharpCode.Reports.Core {
return ci; 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 #endregion
#region IDisposable #region IDisposable

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

@ -86,11 +86,11 @@ namespace ICSharpCode.Reports.Core
if ((base.ReportSettings.SortColumnsCollection != null)) { if ((base.ReportSettings.SortColumnsCollection != null)) {
if (base.ReportSettings.SortColumnsCollection.Count > 0) { if (base.ReportSettings.SortColumnsCollection.Count > 0) {
base.IndexList = this.BuildSortIndex (ReportSettings.SortColumnsCollection); base.IndexList = this.BuildSortIndex (ReportSettings.SortColumnsCollection);
base.IsSorted = true; //base.IsSorted = true;
} else { } else {
// if we have no sorting, we build the indexlist as well // if we have no sorting, we build the indexlist as well
base.IndexList = this.IndexBuilder(ReportSettings.SortColumnsCollection); base.IndexList = this.IndexBuilder(ReportSettings.SortColumnsCollection);
base.IsSorted = false; //base.IsSorted = false;
} }
} }
} }
@ -188,31 +188,12 @@ namespace ICSharpCode.Reports.Core
return ci; return ci;
} }
public override object CurrentFromPosition (int pos) public override object CurrentFromPosition (int pos)
{ {
return this.table.Rows[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 #endregion
@ -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 #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;
bool HasChildren {get;} bool HasChildren {get;}
// end child list -------------------- // end child list --------------------
/*
bool IsSorted {get;} bool IsSorted {get;}
bool IsGrouped {get;} bool IsGrouped {get;}
*/
int CurrentRow {get;} int CurrentRow {get;}
int Count {get;} int Count {get;}

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

@ -16,7 +16,7 @@ namespace ICSharpCode.Reports.Core{
void Fill (IDataItem item); void Fill (IDataItem item);
IndexList IndexList {get;} IndexList IndexList {get;set;}
//test //test
object CurrentFromPosition(int pos); object CurrentFromPosition(int pos);
@ -29,11 +29,5 @@ namespace ICSharpCode.Reports.Core{
int CurrentPosition {get;set;} 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
} }
[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 #region Setup/TearDown
[TestFixtureSetUp] [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
ContributorCollection contributorCollection; 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 #region standard test's
[Test]
public void GroupingCollection_Contains_IsGrouped_True()
{
var dataNavigator = PrepareStringGrouping();
Assert.That(dataNavigator.IsGrouped,Is.True);
}
[Test] [Test]
public void AvaiableFields_Should_Be_Set() public void AvaiableFields_Should_Be_Set()
{ {
@ -48,7 +30,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
#endregion #endregion
#region group by StringValue #region Group by StringValue
[Test] [Test]
public void Has_Children() public void Has_Children()
@ -87,6 +69,12 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
ColumnName ="Last" ColumnName ="Last"
} }
); );
searchCol.Add(new BaseDataItem ()
{
ColumnName ="GroupItem"
}
);
dataNavigator.Reset(); dataNavigator.Reset();
dataNavigator.MoveNext(); dataNavigator.MoveNext();
@ -94,21 +82,18 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
{ {
if (dataNavigator.HasChildren) if (dataNavigator.HasChildren)
{ {
Console.WriteLine("---"); dataNavigator.Fill(searchCol);
var b = (BaseDataItem)searchCol[1];
Console.WriteLine("-- <{0}>-",b.DBValue);
var childNavigator = dataNavigator.GetChildNavigator; var childNavigator = dataNavigator.GetChildNavigator;
do do
{ {
Assert.That(dataNavigator.HasChildren,Is.True); Assert.That(dataNavigator.HasChildren,Is.True);
// we know that current is a 'contributor' // we know that current is a 'contributor'
childNavigator.Fill(searchCol); childNavigator.Fill(searchCol);
var a = (BaseDataItem)searchCol[0]; var a = (BaseDataItem)searchCol[0];
Console.WriteLine ("\t{0}",a.DBValue); 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()); while (childNavigator.MoveNext());
} }
@ -118,7 +103,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
[Test] [Test]
[Ignore]
public void Collection_Contains_Subclass () public void Collection_Contains_Subclass ()
{ {
var modifyedCollection = this.ModifyCollection(); var modifyedCollection = this.ModifyCollection();
@ -142,6 +127,13 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
} }
); );
searchCol.Add(new BaseDataItem ()
{
ColumnName ="GroupItem"
}
);
dataNavigator.Reset(); dataNavigator.Reset();
dataNavigator.MoveNext(); dataNavigator.MoveNext();
@ -150,8 +142,8 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
{ {
dataNavigator.Fill(searchCol); dataNavigator.Fill(searchCol);
var a1 = (BaseDataItem)searchCol[0]; var a1 = (BaseDataItem)searchCol[0];
var b1 = (BaseDataItem)searchCol[1]; var b1 = (BaseDataItem)searchCol[2];
Console.WriteLine ("{0} - {1}",a1.DBValue,b1.DBValue); Console.WriteLine ("-----{0} - {1}------",a1.DBValue,b1.DBValue);
if (dataNavigator.HasChildren) if (dataNavigator.HasChildren)
{ {
@ -163,7 +155,8 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
var a = (BaseDataItem)searchCol[0]; var a = (BaseDataItem)searchCol[0];
var b = (BaseDataItem)searchCol[1]; 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; // Contributor c = dataNavigator.Current as Contributor;
// string v2 = c.Last + " GroupVal :" + c.GroupItem; // string v2 = c.Last + " GroupVal :" + c.GroupItem;
// Console.WriteLine(v2); // Console.WriteLine(v2);
@ -176,7 +169,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
#endregion #endregion
#region GroupbyDataTime #region Group by DataTime
[Test] [Test]
public void DateTimeCan_FillChild() 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
#region Sorting #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] [Test]
public void SortAscendingByTwoColumns() public void SortAscendingByTwoColumns()
{ {
@ -274,7 +190,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
Assert.LessOrEqual(v1,v2); Assert.LessOrEqual(v1,v2);
v1 = v2; v1 = v2;
} }
Assert.IsTrue(dataNav.IsSorted);
} }
@ -293,7 +208,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
Assert.GreaterOrEqual(compareTo,actual); Assert.GreaterOrEqual(compareTo,actual);
compareTo = actual; compareTo = actual;
} }
Assert.IsTrue(dataNav.IsSorted);
} }
#endregion #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
} }
[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] [Test]
public void AvaiableFields_Should_Be_Set() public void AvaiableFields_Should_Be_Set()
{ {
@ -52,14 +42,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
#region Group by String #region Group by String
[Test]
public void GroupingCollection_ContainsGrouping_IsGrouped_True()
{
var dataNavigator = PrepareStringGrouping();
Assert.That(dataNavigator.IsGrouped == true);
}
[Test] [Test]
public void Has_Children() public void Has_Children()
{ {
@ -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] [Test]
public void DataTime_Has_Children() public void DataTime_Has_Children()
{ {
@ -146,13 +120,10 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
} }
} }
#endregion #endregion
#region Try make recursive with ChildNavigator #region Try make recursive with ChildNavigator
[Test] [Test]
public void Can_Get_ChildNavigator () public void Can_Get_ChildNavigator ()
{ {
@ -174,7 +145,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
} }
private void RecursiveCall (IDataNavigator startNavigator) private void RecursiveCall (IDataNavigator startNavigator)
{ {
do 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
} }
[Test]
public void DataNavigatorSortedEqualsFalse ()
{
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.table,new ReportSettings());
DataNavigator dataNav = dm.GetNavigator;
Assert.IsFalse(dataNav.IsSorted);
}
[Test] [Test]
public void DataNavigatorCountEqualListCount () public void DataNavigatorCountEqualListCount ()
{ {
@ -112,9 +104,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
#region Sorting #region Sorting
//Tests moved to \Strategy
[Test] [Test]
public void SortDescendingByDateTime() public void SortDescendingByDateTime()
{ {
@ -133,7 +123,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
Assert.GreaterOrEqual(d1,d2); Assert.GreaterOrEqual(d1,d2);
d1 = d2; d1 = d2;
} }
Assert.IsTrue(dataNav.IsSorted);
} }
@ -154,7 +143,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
// Console.WriteLine(ss); // Console.WriteLine(ss);
compareTo = actual; 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
#region Grouping #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] [Test]
public void CanGroup_All_Elements_are_GroupComparer () public void CanGroup_All_Elements_are_GroupComparer ()
{ {
@ -70,16 +58,6 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
#region Sorting #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] [Test]
public void CanSort_String_Ascending() public void CanSort_String_Ascending()
{ {

Loading…
Cancel
Save