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 15 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 @@ -92,13 +92,10 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
public string ConnectionString {get;set;}
public string SqlString {get;set;}
public CommandType CommandType {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 @@ @@ -8,10 +8,10 @@
*/
using System;
using System.ComponentModel;
using ICSharpCode.Core;
using ICSharpCode.Reports.Addin.ReportWizard;
using ICSharpCode.Reports.Core;
using NUnit.Framework;
namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
@ -29,22 +29,58 @@ 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(1,m.ReportSettings.AvailableFieldsCollection.Count);
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);
}
[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;
Assert.AreEqual(1,s.Items.Count);
ICSharpCode.Reports.Core.BaseTextItem item = (ICSharpCode.Reports.Core.BaseTextItem)s.Items[0];
Assert.IsNotNull(item);
}
#endregion
#region PageHeader
[Test]
public void PageHeaderShouldContainRowItem()
public void PageHeader_Should_Contain_RowItem()
{
ICSharpCode.Reports.Core.BaseSection s = this.reportModel.PageHeader;
BaseReportItem item = s.Items[0];
@ -54,7 +90,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators @@ -54,7 +90,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
[Test]
public void PageHeaderRowShouldContainTextItems()
public void PageHeader_Row_Should_Contain_TextItems()
{
ICSharpCode.Reports.Core.BaseSection section = this.reportModel.PageHeader;
BaseReportItem item = section.Items[0];
@ -64,10 +100,11 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators @@ -64,10 +100,11 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
#endregion
#region Detail
[Test]
public void PageDetailShouldContainRowItem()
public void PageDetail_Should_Contain_RowItem()
{
ICSharpCode.Reports.Core.BaseSection s = this.reportModel.DetailSection;
BaseReportItem item = s.Items[0];
@ -76,7 +113,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators @@ -76,7 +113,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
[Test]
public void PageDetailShouldContainDataItems()
public void PageDetail_Row_Should_Contain_DataItems()
{
ICSharpCode.Reports.Core.BaseSection s = this.reportModel.DetailSection;
ICSharpCode.Reports.Core.BaseRowItem rowItem = (ICSharpCode.Reports.Core.BaseRowItem)s.Items[0];
@ -91,7 +128,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators @@ -91,7 +128,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
#region PageFooter
[Test]
public void PageFooterShouldContainOneItem ()
public void PageFooter_Should_Contain_OneItem ()
{
ICSharpCode.Reports.Core.BaseSection s = this.reportModel.PageFooter;
Assert.AreEqual(1,s.Items.Count);
@ -101,7 +138,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators @@ -101,7 +138,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
[Test]
public void PageFooterContainsPageNumberFunction()
public void PageFooter_Should_Contain_PageNumberFunction()
{
ICSharpCode.Reports.Core.BaseSection s = this.reportModel.PageFooter;
ICSharpCode.Reports.Core.BaseTextItem item = (ICSharpCode.Reports.Core.BaseTextItem)s.Items[0];
@ -111,6 +148,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators @@ -111,6 +148,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
#endregion
#region Setup/Teardown
[TestFixtureSetUp]

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

@ -8,11 +8,10 @@ @@ -8,11 +8,10 @@
*/
using System;
using System.ComponentModel;
using ICSharpCode.Core;
using ICSharpCode.Reports.Addin.ReportWizard;
using ICSharpCode.Reports.Core;
using NUnit.Framework;
namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
@ -23,6 +22,8 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators @@ -23,6 +22,8 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
private const string reportName = "TableBasedReport";
ReportModel reportModel;
#region General generated Properties
[Test]
public void InitModel()
{
@ -30,10 +31,39 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators @@ -30,10 +31,39 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators
Assert.AreEqual(reportName,m.ReportSettings.ReportName);
Assert.AreEqual(1,m.ReportSettings.AvailableFieldsCollection.Count);
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);
}
[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

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

@ -124,58 +124,60 @@ namespace ICSharpCode.Reports.Core @@ -124,58 +124,60 @@ namespace ICSharpCode.Reports.Core
#endregion
#region aaaaaa
#region GroupedList
public bool HasChildren
{
get{
TableStrategy t = store as TableStrategy;
IndexList i = t.IndexList;
GroupComparer gc = i[t.CurrentPosition] as GroupComparer;
return gc.IndexList.Count > 0;
IndexList ind = BuildChildList();
return ((ind != null) && (ind.Count > 0));
// return BuildChildList().Count > 0;
}
}
IndexList childList;
private System.Collections.Generic.List<BaseComparer>.Enumerator ce;
public void MoveToChilds()
public void SwitchGroup()
{
childList = new IndexList();
TableStrategy t = store as TableStrategy;
IndexList i = t.IndexList;
GroupComparer gc = i[t.CurrentPosition] as GroupComparer;
childList = gc.IndexList;
this.childList = BuildChildList();
ce = childList.GetEnumerator();
ce.MoveNext();
}
public object ReadChild()
{
var i = ce.Current.ListIndex;
TableStrategy t = store as TableStrategy;
return t.Readrandowm (i);
}
public int ChildListCount
{
get {
return BuildChildList().Count;
}
}
public bool ChildMoveNext()
{
return ce.MoveNext();
}
#endregion
}
public class ChildNavigator
{
public ChildNavigator (IndexList list)
private IndexList BuildChildList()
{
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 @@ -117,7 +117,7 @@ namespace ICSharpCode.Reports.Core.Exporter
void ReadFromChilds (IDataNavigator nav)
{
nav.MoveToChilds();
nav.SwitchGroup();
do {
var o = nav.ReadChild() as System.Data.DataRow;
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; @@ -22,13 +22,18 @@ using System.ComponentModel;
get;
}
//Test
// ChildNavigator GetChildNavigator();
bool HasChildren {get;}
void MoveToChilds();
void SwitchGroup();
object ReadChild ();
bool ChildMoveNext();
int ChildListCount {get;}
//endtest
bool IsSorted {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 @@ -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]
public void Read_Children()
public void Can_Read_Grouped_List()
{
var dataNav = PrepareStandardGrouping();
while (dataNav.MoveNext()) {
if (dataNav.HasChildren) {
Assert.That(dataNav.HasChildren,Is.True);
DataRow r = dataNav.Current as DataRow;
string v2 = r["last"].ToString() + " GroupVal :" + r[3].ToString();
Console.WriteLine(v2);
ReadFromChilds(dataNav);
ReadChildList(dataNav);
}
}
}
void ReadFromChilds (IDataNavigator nav)
void ReadChildList (IDataNavigator nav)
{
nav.MoveToChilds();
nav.SwitchGroup();
do {
var o = nav.ReadChild() as DataRow;
string v = o.ItemArray[3].ToString();
@ -80,20 +90,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager @@ -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]
public void ChildNavigator_Can_Init()
{

Loading…
Cancel
Save