228 lines
8.2 KiB
C#
228 lines
8.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using LCU.API.Collections.RepoApi.Factories;
|
|
using Xunit;
|
|
|
|
namespace LCU.API.Collections.RepoApiTests
|
|
{
|
|
internal class DummyDataClass
|
|
{
|
|
public decimal? ValueField { get; set; }
|
|
public int KeyField { get; set; }
|
|
public DateTime DateField { get; set; }
|
|
public string SummationField { get; set; }
|
|
}
|
|
|
|
public class ReportTableFactoryTest
|
|
{
|
|
|
|
[Fact]
|
|
public void CreateHistoricalSummationTable_Currency_Ok()
|
|
{
|
|
// Arrange
|
|
var dummyData = new List<DummyDataClass>()
|
|
{
|
|
new DummyDataClass()
|
|
{
|
|
KeyField = 1,
|
|
DateField = DateTime.Parse("11/15/2019"),
|
|
ValueField = 25.75m,
|
|
SummationField = "Row A"
|
|
},
|
|
new DummyDataClass()
|
|
{
|
|
KeyField = 1,
|
|
DateField = DateTime.Parse("11/15/2019"),
|
|
ValueField = 25.75m,
|
|
SummationField = "Row A"
|
|
},
|
|
new DummyDataClass()
|
|
{
|
|
KeyField = 2,
|
|
DateField = DateTime.Parse("11/05/2019"),
|
|
ValueField = 10.05m,
|
|
SummationField = "Row B"
|
|
},
|
|
new DummyDataClass()
|
|
{
|
|
KeyField = 3,
|
|
DateField = DateTime.Parse("11/20/2019"),
|
|
ValueField = 7.50m,
|
|
SummationField = "Row A"
|
|
},
|
|
new DummyDataClass()
|
|
{
|
|
KeyField = 4,
|
|
DateField = DateTime.Parse("12/10/2019"),
|
|
ValueField = 50.500001m,
|
|
SummationField = "Row B"
|
|
},
|
|
new DummyDataClass()
|
|
{
|
|
KeyField = 5,
|
|
DateField = DateTime.Parse("12/25/2019"),
|
|
ValueField = 75.49m,
|
|
SummationField = "Row C"
|
|
},
|
|
new DummyDataClass()
|
|
{
|
|
KeyField = 6,
|
|
DateField = DateTime.Parse("12/18/2019"),
|
|
ValueField = 32
|
|
},
|
|
};
|
|
|
|
// Act
|
|
var reportTable = ReportTableFactory.CreateHistoricalSummationTable(
|
|
ReportSumType.Currency,
|
|
dummyData,
|
|
"Data Items",
|
|
DateTime.Parse("11/01/2019"),
|
|
DateTime.Parse("12/31/2019"),
|
|
(x) => x.ValueField,
|
|
(x) => x.SummationField,
|
|
(x) => x.DateField,
|
|
(x) => x.KeyField);
|
|
|
|
// Assert
|
|
Assert.NotNull(reportTable);
|
|
Assert.Equal(20, reportTable.Cells.Length);
|
|
|
|
// Assert Table Display
|
|
Assert.Equal("All Data Items", reportTable.Cells[0, 0].Display);
|
|
Assert.Equal("$43.30", reportTable.Cells[0, 1].Display);
|
|
Assert.Equal("$157.99", reportTable.Cells[0, 2].Display);
|
|
Assert.Equal("$201.29", reportTable.Cells[0, 3].Display);
|
|
|
|
Assert.Equal("Row A", reportTable.Cells[1, 0].Display);
|
|
Assert.Equal("$33.25", reportTable.Cells[1, 1].Display);
|
|
Assert.Equal("-", reportTable.Cells[1, 2].Display);
|
|
Assert.Equal("$33.25", reportTable.Cells[1, 3].Display);
|
|
|
|
Assert.Equal("Row B", reportTable.Cells[2, 0].Display);
|
|
Assert.Equal("$10.05", reportTable.Cells[2, 1].Display);
|
|
Assert.Equal("$50.50", reportTable.Cells[2, 2].Display);
|
|
Assert.Equal("$60.55", reportTable.Cells[2, 3].Display);
|
|
|
|
Assert.Equal("Row C", reportTable.Cells[3, 0].Display);
|
|
Assert.Equal("-", reportTable.Cells[3, 1].Display);
|
|
Assert.Equal("$75.49", reportTable.Cells[3, 2].Display);
|
|
Assert.Equal("$75.49", reportTable.Cells[3, 3].Display);
|
|
|
|
Assert.Equal("No Data Items", reportTable.Cells[4, 0].Display);
|
|
Assert.Equal("-", reportTable.Cells[4, 1].Display);
|
|
Assert.Equal("$32.00", reportTable.Cells[4, 2].Display);
|
|
Assert.Equal("$32.00", reportTable.Cells[4, 3].Display);
|
|
}
|
|
|
|
[Fact]
|
|
public void CreateHistoricalSummationTable_PercentageAvg_Ok()
|
|
{
|
|
// Arrange
|
|
var dummyData = new List<DummyDataClass>()
|
|
{
|
|
new DummyDataClass()
|
|
{
|
|
KeyField = 1,
|
|
DateField = DateTime.Parse("11/15/2019"),
|
|
ValueField = 110m,
|
|
SummationField = "Row A"
|
|
},
|
|
new DummyDataClass()
|
|
{
|
|
KeyField = 2,
|
|
DateField = DateTime.Parse("11/12/2019"),
|
|
ValueField = 50m,
|
|
SummationField = "Row A"
|
|
},
|
|
new DummyDataClass()
|
|
{
|
|
KeyField = 3,
|
|
DateField = DateTime.Parse("12/10/2019"),
|
|
ValueField = 75m,
|
|
SummationField = "Row B"
|
|
},
|
|
new DummyDataClass()
|
|
{
|
|
KeyField = 4,
|
|
DateField = DateTime.Parse("12/11/2019"),
|
|
SummationField = "Row B"
|
|
}
|
|
};
|
|
|
|
// Act
|
|
var reportTable = ReportTableFactory.CreateHistoricalSummationTable(
|
|
ReportSumType.PercentageAvg,
|
|
dummyData,
|
|
"Data Items",
|
|
DateTime.Parse("11/01/2019"),
|
|
DateTime.Parse("12/31/2019"),
|
|
(x) => x.ValueField,
|
|
(x) => x.SummationField,
|
|
(x) => x.DateField,
|
|
(x) => x.KeyField,
|
|
false);
|
|
|
|
// Assert
|
|
Assert.NotNull(reportTable);
|
|
Assert.Equal(12, reportTable.Cells.Length);
|
|
|
|
// Assert Table Display
|
|
Assert.Equal("All Data Items", reportTable.Cells[0, 0].Display);
|
|
Assert.Equal("80.00 %", reportTable.Cells[0, 1].Display);
|
|
Assert.Equal("75.00 %", reportTable.Cells[0, 2].Display);
|
|
Assert.Equal("78.33 %", reportTable.Cells[0, 3].Display);
|
|
|
|
Assert.Equal("Row A", reportTable.Cells[1, 0].Display);
|
|
Assert.Equal("80.00 %", reportTable.Cells[1, 1].Display);
|
|
Assert.Equal("-", reportTable.Cells[1, 2].Display);
|
|
Assert.Equal("80.00 %", reportTable.Cells[1, 3].Display);
|
|
|
|
Assert.Equal("Row B", reportTable.Cells[2, 0].Display);
|
|
Assert.Equal("-", reportTable.Cells[2, 1].Display);
|
|
Assert.Equal("75.00 %", reportTable.Cells[2, 2].Display);
|
|
Assert.Equal("75.00 %", reportTable.Cells[2, 3].Display);
|
|
}
|
|
|
|
[Fact]
|
|
public void CreateHistoricalSummationTable_RenersSingleRow_Ok()
|
|
{
|
|
// Arrange
|
|
var dummyData = new List<DummyDataClass>()
|
|
{
|
|
new DummyDataClass()
|
|
{
|
|
KeyField = 1,
|
|
DateField = DateTime.Parse("11/15/2019"),
|
|
ValueField = 1000
|
|
}
|
|
};
|
|
|
|
// Act
|
|
var reportTable = ReportTableFactory.CreateHistoricalSummationTable(
|
|
ReportSumType.Currency,
|
|
dummyData,
|
|
"Data Items",
|
|
DateTime.Parse("11/01/2019"),
|
|
DateTime.Parse("12/31/2019"),
|
|
(x) => x.ValueField,
|
|
(x) => null,
|
|
(x) => x.DateField,
|
|
(x) => x.KeyField,
|
|
false);
|
|
|
|
// Assert
|
|
Assert.NotNull(reportTable);
|
|
Assert.Equal(4, reportTable.Cells.Length);
|
|
|
|
// Assert Table Display
|
|
Assert.Equal("All Data Items", reportTable.Cells[0, 0].Display);
|
|
Assert.Equal("$1,000.00", reportTable.Cells[0, 1].Display);
|
|
Assert.Equal("-", reportTable.Cells[0, 2].Display);
|
|
Assert.Equal("$1,000.00", reportTable.Cells[0, 3].Display);
|
|
}
|
|
|
|
}
|
|
}
|