Browse Source

ReportGenerator - Test's for GroupColumnCollection,

Tests for DataManager/DataNavigator.cs - Read ChildRows

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/reports@6270 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Peter Forstmeier 16 years ago
parent
commit
3504876c41
  1. 3
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs
  2. 54
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs
  3. 34
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs
  4. 48
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs
  5. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/RowConverter.cs
  6. 9
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataNavigator.cs
  7. 33
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/GroupTableFixture.cs

3
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs

@ -92,13 +92,10 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
public string ConnectionString {get;set;} public string ConnectionString {get;set;}
public string SqlString {get;set;} public string SqlString {get;set;}
public CommandType CommandType {get;set;} public CommandType CommandType {get;set;}
public ICSharpCode.Reports.Core.GlobalEnums.PushPullModel DataModel {get;set;} public ICSharpCode.Reports.Core.GlobalEnums.PushPullModel DataModel {get;set;}

54
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs

@ -8,10 +8,10 @@
*/ */
using System; using System;
using System.ComponentModel;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.Reports.Addin.ReportWizard; using ICSharpCode.Reports.Addin.ReportWizard;
using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core;
using NUnit.Framework; using NUnit.Framework;
namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
@ -29,22 +29,58 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
Assert.AreEqual(reportName,m.ReportSettings.ReportName); Assert.AreEqual(reportName,m.ReportSettings.ReportName);
Assert.AreEqual(1,m.ReportSettings.AvailableFieldsCollection.Count); Assert.AreEqual(1,m.ReportSettings.AvailableFieldsCollection.Count);
Assert.AreEqual(GlobalEnums.ReportType.DataReport,m.ReportSettings.ReportType); Assert.AreEqual(GlobalEnums.ReportType.DataReport,m.ReportSettings.ReportType);
}
#region General generated Properties
[Test]
public void Datamodel_Should_PushModel()
{
ReportModel m = ReportGenerationHelper.CreateModel(reportName);
Assert.AreEqual(GlobalEnums.PushPullModel.PushData,m.ReportSettings.DataModel); Assert.AreEqual(GlobalEnums.PushPullModel.PushData,m.ReportSettings.DataModel);
} }
[Test] [Test]
public void ReportHeaderShouldContainOneItem () public void GroupColumCollection_Should_Null ()
{
ReportModel m = ReportGenerationHelper.CreateModel(reportName);
Assert.That(m.ReportSettings.GroupColumnsCollection,Is.Empty);
}
[Test]
public void GroupColumCollection_Grouping_Should_Set()
{
ReportModel m = ReportGenerationHelper.CreateModel(reportName);
var rs = m.ReportSettings;
GroupColumn gc = new GroupColumn("GroupItem",1,ListSortDirection.Ascending);
rs.GroupColumnsCollection.Add(gc);
Assert.AreEqual(rs.GroupColumnsCollection.Count,1);
}
#endregion
#region ReportHeader
[Test]
public void ReportHeader_ShouldContain_OneItem ()
{ {
ICSharpCode.Reports.Core.BaseSection s = this.reportModel.ReportHeader; ICSharpCode.Reports.Core.BaseSection s = this.reportModel.ReportHeader;
Assert.AreEqual(1,s.Items.Count); Assert.AreEqual(1,s.Items.Count);
ICSharpCode.Reports.Core.BaseTextItem item = (ICSharpCode.Reports.Core.BaseTextItem)s.Items[0]; ICSharpCode.Reports.Core.BaseTextItem item = (ICSharpCode.Reports.Core.BaseTextItem)s.Items[0];
Assert.IsNotNull(item); Assert.IsNotNull(item);
} }
#endregion
#region PageHeader #region PageHeader
[Test] [Test]
public void PageHeaderShouldContainRowItem() public void PageHeader_Should_Contain_RowItem()
{ {
ICSharpCode.Reports.Core.BaseSection s = this.reportModel.PageHeader; ICSharpCode.Reports.Core.BaseSection s = this.reportModel.PageHeader;
BaseReportItem item = s.Items[0]; BaseReportItem item = s.Items[0];
@ -54,7 +90,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
[Test] [Test]
public void PageHeaderRowShouldContainTextItems() public void PageHeader_Row_Should_Contain_TextItems()
{ {
ICSharpCode.Reports.Core.BaseSection section = this.reportModel.PageHeader; ICSharpCode.Reports.Core.BaseSection section = this.reportModel.PageHeader;
BaseReportItem item = section.Items[0]; BaseReportItem item = section.Items[0];
@ -64,10 +100,11 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
#endregion #endregion
#region Detail #region Detail
[Test] [Test]
public void PageDetailShouldContainRowItem() public void PageDetail_Should_Contain_RowItem()
{ {
ICSharpCode.Reports.Core.BaseSection s = this.reportModel.DetailSection; ICSharpCode.Reports.Core.BaseSection s = this.reportModel.DetailSection;
BaseReportItem item = s.Items[0]; BaseReportItem item = s.Items[0];
@ -76,7 +113,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
[Test] [Test]
public void PageDetailShouldContainDataItems() public void PageDetail_Row_Should_Contain_DataItems()
{ {
ICSharpCode.Reports.Core.BaseSection s = this.reportModel.DetailSection; ICSharpCode.Reports.Core.BaseSection s = this.reportModel.DetailSection;
ICSharpCode.Reports.Core.BaseRowItem rowItem = (ICSharpCode.Reports.Core.BaseRowItem)s.Items[0]; ICSharpCode.Reports.Core.BaseRowItem rowItem = (ICSharpCode.Reports.Core.BaseRowItem)s.Items[0];
@ -91,7 +128,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
#region PageFooter #region PageFooter
[Test] [Test]
public void PageFooterShouldContainOneItem () public void PageFooter_Should_Contain_OneItem ()
{ {
ICSharpCode.Reports.Core.BaseSection s = this.reportModel.PageFooter; ICSharpCode.Reports.Core.BaseSection s = this.reportModel.PageFooter;
Assert.AreEqual(1,s.Items.Count); Assert.AreEqual(1,s.Items.Count);
@ -101,7 +138,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
[Test] [Test]
public void PageFooterContainsPageNumberFunction() public void PageFooter_Should_Contain_PageNumberFunction()
{ {
ICSharpCode.Reports.Core.BaseSection s = this.reportModel.PageFooter; ICSharpCode.Reports.Core.BaseSection s = this.reportModel.PageFooter;
ICSharpCode.Reports.Core.BaseTextItem item = (ICSharpCode.Reports.Core.BaseTextItem)s.Items[0]; ICSharpCode.Reports.Core.BaseTextItem item = (ICSharpCode.Reports.Core.BaseTextItem)s.Items[0];
@ -111,6 +148,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
#endregion #endregion
#region Setup/Teardown #region Setup/Teardown
[TestFixtureSetUp] [TestFixtureSetUp]

34
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs

@ -8,11 +8,10 @@
*/ */
using System; using System;
using System.ComponentModel;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.Reports.Addin.ReportWizard; using ICSharpCode.Reports.Addin.ReportWizard;
using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core;
using NUnit.Framework; using NUnit.Framework;
namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
@ -23,6 +22,8 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
private const string reportName = "TableBasedReport"; private const string reportName = "TableBasedReport";
ReportModel reportModel; ReportModel reportModel;
#region General generated Properties
[Test] [Test]
public void InitModel() public void InitModel()
{ {
@ -30,10 +31,39 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
Assert.AreEqual(reportName,m.ReportSettings.ReportName); Assert.AreEqual(reportName,m.ReportSettings.ReportName);
Assert.AreEqual(1,m.ReportSettings.AvailableFieldsCollection.Count); Assert.AreEqual(1,m.ReportSettings.AvailableFieldsCollection.Count);
Assert.AreEqual(GlobalEnums.ReportType.DataReport,m.ReportSettings.ReportType); Assert.AreEqual(GlobalEnums.ReportType.DataReport,m.ReportSettings.ReportType);
}
[Test]
public void Datamodel_Should_PushModel()
{
ReportModel m = ReportGenerationHelper.CreateModel(reportName);
Assert.AreEqual(GlobalEnums.PushPullModel.PushData,m.ReportSettings.DataModel); Assert.AreEqual(GlobalEnums.PushPullModel.PushData,m.ReportSettings.DataModel);
} }
[Test]
public void GroupColumCollection_Should_Null ()
{
ReportModel m = ReportGenerationHelper.CreateModel(reportName);
Assert.That(m.ReportSettings.GroupColumnsCollection,Is.Empty);
}
[Test]
public void GroupColumCollection_Grouping_Should_Set()
{
ReportModel m = ReportGenerationHelper.CreateModel(reportName);
var rs = m.ReportSettings;
GroupColumn gc = new GroupColumn("GroupItem",1,ListSortDirection.Ascending);
rs.GroupColumnsCollection.Add(gc);
Assert.AreEqual(rs.GroupColumnsCollection.Count,1);
}
#endregion
#region PageHeader #region PageHeader

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

@ -124,58 +124,60 @@ namespace ICSharpCode.Reports.Core
#endregion #endregion
#region aaaaaa #region GroupedList
public bool HasChildren public bool HasChildren
{ {
get{ get{
TableStrategy t = store as TableStrategy; IndexList ind = BuildChildList();
IndexList i = t.IndexList; return ((ind != null) && (ind.Count > 0));
GroupComparer gc = i[t.CurrentPosition] as GroupComparer; // return BuildChildList().Count > 0;
return gc.IndexList.Count > 0;
} }
} }
IndexList childList; IndexList childList;
private System.Collections.Generic.List<BaseComparer>.Enumerator ce; private System.Collections.Generic.List<BaseComparer>.Enumerator ce;
public void MoveToChilds() public void SwitchGroup()
{ {
childList = new IndexList(); this.childList = BuildChildList();
TableStrategy t = store as TableStrategy;
IndexList i = t.IndexList;
GroupComparer gc = i[t.CurrentPosition] as GroupComparer;
childList = gc.IndexList;
ce = childList.GetEnumerator(); ce = childList.GetEnumerator();
ce.MoveNext(); ce.MoveNext();
} }
public object ReadChild() public object ReadChild()
{ {
var i = ce.Current.ListIndex; var i = ce.Current.ListIndex;
TableStrategy t = store as TableStrategy; TableStrategy t = store as TableStrategy;
return t.Readrandowm (i); return t.Readrandowm (i);
} }
public int ChildListCount
{
get {
return BuildChildList().Count;
}
}
public bool ChildMoveNext() public bool ChildMoveNext()
{ {
return ce.MoveNext(); return ce.MoveNext();
} }
#endregion
}
private IndexList BuildChildList()
public class ChildNavigator
{
public ChildNavigator (IndexList list)
{ {
IndexList = list; TableStrategy t = store as TableStrategy;
IndexList i = t.IndexList;
GroupComparer gc = i[t.CurrentPosition] as GroupComparer;
if (gc == null) {
return null;
}
return gc.IndexList;
} }
public IndexList IndexList {get; private set;} #endregion
} }
} }

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/RowConverter.cs

@ -117,7 +117,7 @@ namespace ICSharpCode.Reports.Core.Exporter
void ReadFromChilds (IDataNavigator nav) void ReadFromChilds (IDataNavigator nav)
{ {
nav.MoveToChilds(); nav.SwitchGroup();
do { do {
var o = nav.ReadChild() as System.Data.DataRow; var o = nav.ReadChild() as System.Data.DataRow;
string v = o.ItemArray[3].ToString(); string v = o.ItemArray[3].ToString();

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

@ -22,13 +22,18 @@ using System.ComponentModel;
get; get;
} }
//Test //Test
// ChildNavigator GetChildNavigator();
bool HasChildren {get;} bool HasChildren {get;}
void MoveToChilds(); void SwitchGroup();
object ReadChild (); object ReadChild ();
bool ChildMoveNext(); bool ChildMoveNext();
int ChildListCount {get;}
//endtest //endtest
bool IsSorted {get;} bool IsSorted {get;}
bool IsGrouped {get;} bool IsGrouped {get;}

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

@ -49,26 +49,36 @@ namespace ICSharpCode.Reports.Core.Test.DataManager
} }
} }
[Test]
public void Can_Read_Child_Count ()
{
var dataNav = PrepareStandardGrouping();
while (dataNav.MoveNext())
{
Assert.That(dataNav.ChildListCount,Is.GreaterThan(0));
}
}
[Test] [Test]
public void Read_Children() public void Can_Read_Grouped_List()
{ {
var dataNav = PrepareStandardGrouping(); var dataNav = PrepareStandardGrouping();
while (dataNav.MoveNext()) { while (dataNav.MoveNext()) {
if (dataNav.HasChildren) { if (dataNav.HasChildren) {
Assert.That(dataNav.HasChildren,Is.True);
DataRow r = dataNav.Current as DataRow; DataRow r = dataNav.Current as DataRow;
string v2 = r["last"].ToString() + " GroupVal :" + r[3].ToString(); string v2 = r["last"].ToString() + " GroupVal :" + r[3].ToString();
Console.WriteLine(v2); Console.WriteLine(v2);
ReadFromChilds(dataNav); ReadChildList(dataNav);
} }
} }
} }
void ReadFromChilds (IDataNavigator nav) void ReadChildList (IDataNavigator nav)
{ {
nav.MoveToChilds(); nav.SwitchGroup();
do { do {
var o = nav.ReadChild() as DataRow; var o = nav.ReadChild() as DataRow;
string v = o.ItemArray[3].ToString(); string v = o.ItemArray[3].ToString();
@ -80,20 +90,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager
/* /*
[Test]
public void aaa()
{
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.table,new ReportSettings());
DataNavigator dataNav = dm.GetNavigator;
while (dataNav.MoveNext()) {
DataRow r = dataNav.Current as DataRow;
string v2 = r["Groupitem"].ToString();
Console.WriteLine(v2);
}
}
[Test] [Test]
public void ChildNavigator_Can_Init() public void ChildNavigator_Can_Init()
{ {

Loading…
Cancel
Save