334 lines
14 KiB
C#
334 lines
14 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using LCU.API.Collections.RepoApi.Services.Reporting;
|
|
using LCU.Shared.Collections.RepoApiLib.Models.Reporting;
|
|
using LCU.Shared.Collections.RepoApiLib.Repositories;
|
|
using Moq;
|
|
using Xunit;
|
|
|
|
namespace LCU.API.Collections.RepoApiTests.Services
|
|
{
|
|
public class RepoCompanyReportingServiceTest
|
|
{
|
|
private IRepoCompanyReportingService _repoCompanyReportingService;
|
|
private Mock<IReportingRepository> _mockReportingRepository;
|
|
|
|
public RepoCompanyReportingServiceTest()
|
|
{
|
|
_mockReportingRepository = new Mock<IReportingRepository>();
|
|
_repoCompanyReportingService =
|
|
new RepoCompanyReportingService(_mockReportingRepository.Object);
|
|
}
|
|
|
|
[Fact]
|
|
public async void GetActiveCountReport_Ok()
|
|
{
|
|
// Arrange
|
|
var reportData = new List<StdReportEntry>()
|
|
{
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 1,
|
|
RepoCompanyAssignmentDate = DateTime.Parse("11/05/2019"),
|
|
RepoCompany = "Company A"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 1,
|
|
RepoCompanyAssignmentDate = DateTime.Parse("11/05/2019"),
|
|
RepoCompany = "Company A"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 2,
|
|
RepoCompanyAssignmentDate = DateTime.Parse("11/15/2019"),
|
|
RepoCompany = "Company A"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 3,
|
|
RepoCompanyAssignmentDate = DateTime.Parse("11/15/2019"),
|
|
RepoCompany = "Company B"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 4,
|
|
RepoCompanyAssignmentDate = DateTime.Parse("12/20/2019"),
|
|
RepoCompany = "Company B"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 5,
|
|
RepoCompanyAssignmentDate = DateTime.Parse("12/22/2019")
|
|
}
|
|
};
|
|
_mockReportingRepository.Setup(x => x.GetAccountsByDateAssigned(It.IsAny<DateTime>(), It.IsAny<DateTime>()))
|
|
.ReturnsAsync(reportData);
|
|
|
|
// act
|
|
var result =
|
|
await _repoCompanyReportingService.GetAssignmentCountReport(DateTime.Parse("11/01/2019"),
|
|
DateTime.Parse("12/31/2019"));
|
|
|
|
// assert
|
|
Assert.NotNull(result);
|
|
Assert.Equal(6, result.DataTable.Rows.Count());
|
|
Assert.Equal(16, result.ReportTable.Cells.Length); // 4 rows of 4.
|
|
|
|
Assert.Equal("All Repo Companies", result.ReportTable.Cells[0, 0].Display);
|
|
Assert.Equal("3", result.ReportTable.Cells[0, 1].Display);
|
|
Assert.Equal("2", result.ReportTable.Cells[0, 2].Display);
|
|
Assert.Equal("5", result.ReportTable.Cells[0, 3].Display);
|
|
|
|
Assert.Equal("Company A", result.ReportTable.Cells[1, 0].Display);
|
|
Assert.Equal("2", result.ReportTable.Cells[1, 1].Display);
|
|
Assert.Equal("-", result.ReportTable.Cells[1, 2].Display);
|
|
Assert.Equal("2", result.ReportTable.Cells[1, 3].Display);
|
|
|
|
Assert.Equal("Company B", result.ReportTable.Cells[2, 0].Display);
|
|
Assert.Equal("1", result.ReportTable.Cells[2, 1].Display);
|
|
Assert.Equal("1", result.ReportTable.Cells[2, 2].Display);
|
|
Assert.Equal("2", result.ReportTable.Cells[2, 3].Display);
|
|
|
|
Assert.Equal("No Repo Companies", result.ReportTable.Cells[3, 0].Display);
|
|
Assert.Equal("-", result.ReportTable.Cells[3, 1].Display);
|
|
Assert.Equal("1", result.ReportTable.Cells[3, 2].Display);
|
|
Assert.Equal("1", result.ReportTable.Cells[3, 3].Display);
|
|
}
|
|
|
|
[Fact]
|
|
public async void GetAvgDaysAssignedToRepoed_Ok()
|
|
{
|
|
// Arrange
|
|
var reportData = new List<StdReportEntry>()
|
|
{
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 1,
|
|
RepoDuration = 10,
|
|
DateRepoed = DateTime.Parse("11/05/2019"),
|
|
RepoCompany = "Company A"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 2,
|
|
RepoDuration = 20,
|
|
DateRepoed = DateTime.Parse("11/01/2019"),
|
|
RepoCompany = "Company A"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 3,
|
|
RepoDuration = 5,
|
|
DateRepoed = DateTime.Parse("11/29/2019"),
|
|
RepoCompany = "Company A"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 4,
|
|
RepoDuration = 1,
|
|
DateRepoed = DateTime.Parse("12/08/2019"),
|
|
RepoCompany = "Company B"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 5,
|
|
RepoDuration = 5,
|
|
DateRepoed = DateTime.Parse("12/31/2019"),
|
|
RepoCompany = "Company B"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 6,
|
|
DateRepoed = DateTime.Parse("11/21/2019"),
|
|
}
|
|
};
|
|
_mockReportingRepository.Setup(x => x.GetAccountsByDateRepoed(It.IsAny<DateTime>(), It.IsAny<DateTime>()))
|
|
.ReturnsAsync(reportData);
|
|
|
|
// act
|
|
var result =
|
|
await _repoCompanyReportingService.GetAvgDaysAssignedToRepoed(DateTime.Parse("11/01/2019"),
|
|
DateTime.Parse("12/31/2019"));
|
|
|
|
// assert
|
|
Assert.NotNull(result);
|
|
Assert.Equal(6, result.DataTable.Rows.Count());
|
|
Assert.Equal(12, result.ReportTable.Cells.Length);
|
|
|
|
Assert.Equal("All Repo Companies", result.ReportTable.Cells[0, 0].Display);
|
|
Assert.Equal("12", result.ReportTable.Cells[0, 1].Display);
|
|
Assert.Equal("3", result.ReportTable.Cells[0, 2].Display);
|
|
Assert.Equal("8", result.ReportTable.Cells[0, 3].Display);
|
|
|
|
Assert.Equal("Company A", result.ReportTable.Cells[1, 0].Display);
|
|
Assert.Equal("12", result.ReportTable.Cells[1, 1].Display);
|
|
Assert.Equal("-", result.ReportTable.Cells[1, 2].Display);
|
|
Assert.Equal("12", result.ReportTable.Cells[1, 3].Display);
|
|
|
|
Assert.Equal("Company B", result.ReportTable.Cells[2, 0].Display);
|
|
Assert.Equal("-", result.ReportTable.Cells[2, 1].Display);
|
|
Assert.Equal("3", result.ReportTable.Cells[2, 2].Display);
|
|
Assert.Equal("3", result.ReportTable.Cells[2, 3].Display);
|
|
}
|
|
|
|
[Fact]
|
|
public async void GetRepoCountReport_Ok()
|
|
{
|
|
// Arrange
|
|
var reportData = new List<StdReportEntry>()
|
|
{
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 1,
|
|
DateRepoed = DateTime.Parse("11/05/2019"),
|
|
RepoCompany = "Company A"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 8,
|
|
DateRepoed = DateTime.Parse("11/05/2019"),
|
|
RepoCompany = "Company A"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 2,
|
|
DateRepoed = DateTime.Parse("11/15/2019"),
|
|
RepoCompany = "Company A"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 3,
|
|
DateRepoed = DateTime.Parse("11/15/2019"),
|
|
RepoCompany = "Company B"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 4,
|
|
DateRepoed = DateTime.Parse("12/20/2019"),
|
|
RepoCompany = "Company B"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 5,
|
|
DateRepoed = DateTime.Parse("12/22/2019")
|
|
}
|
|
};
|
|
_mockReportingRepository.Setup(x => x.GetAccountsByDateRepoed(It.IsAny<DateTime>(), It.IsAny<DateTime>()))
|
|
.ReturnsAsync(reportData);
|
|
|
|
// act
|
|
var result =
|
|
await _repoCompanyReportingService.GetRepoedCountReport(DateTime.Parse("11/01/2019"),
|
|
DateTime.Parse("12/31/2019"));
|
|
|
|
// assert
|
|
Assert.NotNull(result);
|
|
Assert.Equal(6, result.DataTable.Rows.Count());
|
|
Assert.Equal(16, result.ReportTable.Cells.Length); // 4 rows of 4.
|
|
|
|
Assert.Equal("All Repo Companies", result.ReportTable.Cells[0, 0].Display);
|
|
Assert.Equal("4", result.ReportTable.Cells[0, 1].Display);
|
|
Assert.Equal("2", result.ReportTable.Cells[0, 2].Display);
|
|
Assert.Equal("6", result.ReportTable.Cells[0, 3].Display);
|
|
|
|
Assert.Equal("Company A", result.ReportTable.Cells[1, 0].Display);
|
|
Assert.Equal("3", result.ReportTable.Cells[1, 1].Display);
|
|
Assert.Equal("-", result.ReportTable.Cells[1, 2].Display);
|
|
Assert.Equal("3", result.ReportTable.Cells[1, 3].Display);
|
|
|
|
Assert.Equal("Company B", result.ReportTable.Cells[2, 0].Display);
|
|
Assert.Equal("1", result.ReportTable.Cells[2, 1].Display);
|
|
Assert.Equal("1", result.ReportTable.Cells[2, 2].Display);
|
|
Assert.Equal("2", result.ReportTable.Cells[2, 3].Display);
|
|
|
|
Assert.Equal("No Repo Companies", result.ReportTable.Cells[3, 0].Display);
|
|
Assert.Equal("-", result.ReportTable.Cells[3, 1].Display);
|
|
Assert.Equal("1", result.ReportTable.Cells[3, 2].Display);
|
|
Assert.Equal("1", result.ReportTable.Cells[3, 3].Display);
|
|
}
|
|
|
|
[Fact]
|
|
public async void GetAssignedBalance_Ok()
|
|
{
|
|
// Arrange
|
|
var reportData = new List<StdReportEntry>()
|
|
{
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 1,
|
|
Balance = 500,
|
|
RepoCompanyAssignmentDate = DateTime.Parse("11/05/2019"),
|
|
RepoCompany = "Company A"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 8,
|
|
Balance = 425.51m,
|
|
RepoCompanyAssignmentDate = DateTime.Parse("11/05/2019"),
|
|
RepoCompany = "Company A"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 2,
|
|
Balance = 121,
|
|
RepoCompanyAssignmentDate = DateTime.Parse("11/15/2019"),
|
|
RepoCompany = "Company A"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 3,
|
|
Balance = 383,
|
|
RepoCompanyAssignmentDate = DateTime.Parse("11/15/2019"),
|
|
RepoCompany = "Company B"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 4,
|
|
Balance = 99.011m,
|
|
RepoCompanyAssignmentDate = DateTime.Parse("12/20/2019"),
|
|
RepoCompany = "Company B"
|
|
},
|
|
new StdReportEntry()
|
|
{
|
|
CollateralId = 5,
|
|
Balance = 4,
|
|
RepoCompanyAssignmentDate = DateTime.Parse("12/22/2019")
|
|
}
|
|
};
|
|
_mockReportingRepository.Setup(x => x.GetAccountsByDateAssigned(It.IsAny<DateTime>(), It.IsAny<DateTime>()))
|
|
.ReturnsAsync(reportData);
|
|
|
|
// act
|
|
var result =
|
|
await _repoCompanyReportingService.GetAssignedBalance(DateTime.Parse("11/01/2019"),
|
|
DateTime.Parse("12/31/2019"));
|
|
|
|
// assert
|
|
Assert.NotNull(result);
|
|
Assert.Equal(6, result.DataTable.Rows.Count());
|
|
Assert.Equal(16, result.ReportTable.Cells.Length); // 4 rows of 4.
|
|
|
|
Assert.Equal("All Repo Companies", result.ReportTable.Cells[0, 0].Display);
|
|
Assert.Equal("$1,429.51", result.ReportTable.Cells[0, 1].Display);
|
|
Assert.Equal("$103.01", result.ReportTable.Cells[0, 2].Display);
|
|
Assert.Equal("$1,532.52", result.ReportTable.Cells[0, 3].Display);
|
|
|
|
Assert.Equal("Company A", result.ReportTable.Cells[1, 0].Display);
|
|
Assert.Equal("$1,046.51", result.ReportTable.Cells[1, 1].Display);
|
|
Assert.Equal("-", result.ReportTable.Cells[1, 2].Display);
|
|
Assert.Equal("$1,046.51", result.ReportTable.Cells[1, 3].Display);
|
|
|
|
Assert.Equal("Company B", result.ReportTable.Cells[2, 0].Display);
|
|
Assert.Equal("$383.00", result.ReportTable.Cells[2, 1].Display);
|
|
Assert.Equal("$99.01", result.ReportTable.Cells[2, 2].Display);
|
|
Assert.Equal("$482.01", result.ReportTable.Cells[2, 3].Display);
|
|
|
|
Assert.Equal("No Repo Companies", result.ReportTable.Cells[3, 0].Display);
|
|
Assert.Equal("-", result.ReportTable.Cells[3, 1].Display);
|
|
Assert.Equal("$4.00", result.ReportTable.Cells[3, 2].Display);
|
|
Assert.Equal("$4.00", result.ReportTable.Cells[3, 3].Display);
|
|
}
|
|
}
|
|
} |