public async Task GettingAllRecords_WithPageInformation_ReturnsExpectedNumberOfRecords( int currentPage, int pageSize, int expected) { // Arrange var pageInformation = new PageInformation(currentPage, pageSize); var insolvencyRecords = InsolvenciesTestData.CreateInsolvenciesActuals(); var disputeRecords = DisputeTestData.CreateDisputeActuals(); var context = TestDbContext.CreateContextWithSeededData(insolvencyRecords).Seed(disputeRecords); var operationDateProvider = new Mock <IOperationDateProvider>(); operationDateProvider.Setup(x => x.GetOperationDate()).Returns(DateTime.Now); IOptions <RetentionOptions> retentionOptions = new ConfigurationOption( new RetentionOptions() { RetentionPeriod = 10, CutOffPeriod = 6 }); var disputesFilteredBaseData = new DisputeFilterContext(retentionOptions, operationDateProvider.Object); var disputeRepository = new DisputesRepository(context, disputesFilteredBaseData, mockTelemetryClient.Object); // Act var actualCount = (await disputeRepository.GetAllAsync(pageInformation)).Count(); // Assert Assert.AreEqual(expected, actualCount); }
public async Task UsingGetAllAsync_WithDisplayedFilter_ReturnsExpectedRecords() { // Arrange var pageInformation = new PageInformation(1, 100); var expectedRecords = DisputeTestData.CreateDisputeExpecteds().Where(dispute => dispute.Displayed.Value); var insolvencyRecords = InsolvenciesTestData.CreateInsolvenciesActuals(); var disputeRecords = DisputeTestData.CreateDisputeActuals(); var context = TestDbContext.CreateContextWithSeededData(insolvencyRecords).Seed(disputeRecords); var operationDateProvider = new Mock <IOperationDateProvider>(); operationDateProvider.Setup(x => x.GetOperationDate()).Returns(DateTime.Now); IOptions <RetentionOptions> retentionOptions = new ConfigurationOption( new RetentionOptions() { RetentionPeriod = 10, CutOffPeriod = 6 }); var disputesFilteredBaseData = new DisputeFilterContext(retentionOptions, operationDateProvider.Object); var disputeRepository = new DisputesRepository(context, disputesFilteredBaseData, mockTelemetryClient.Object); // Act var actualRecords = await disputeRepository.GetAllAsync(pageInformation); // Assert CollectionAssert.AreEqual( expectedRecords.OrderBy(x => x.DisputeId).ToList(), actualRecords.OrderBy(x => x.DisputeId).ToList(), new DisputeModelComparer()); }
public async Task CountingRecordsById_WithSeededDisputeRecords_ReturnsCorrectCount() { // Arrange const int recordId = 1; const int expectedCount = 1; var insolvencyRecords = InsolvenciesTestData.CreateInsolvenciesActuals(); var disputeRecords = DisputeTestData.CreateDisputeActuals(); var context = TestDbContext.CreateContextWithSeededData(insolvencyRecords).Seed(disputeRecords); var operationDateProvider = new Mock <IOperationDateProvider>(); operationDateProvider.Setup(x => x.GetOperationDate()).Returns(DateTime.Now); IOptions <RetentionOptions> retentionOptions = new ConfigurationOption( new RetentionOptions() { RetentionPeriod = 10, CutOffPeriod = 6 }); var disputesFilteredBaseData = new DisputeFilterContext(retentionOptions, operationDateProvider.Object); var disputeRepository = new DisputesRepository(context, disputesFilteredBaseData, mockTelemetryClient.Object); // Act var actualCount = await disputeRepository.CountByAsync(recordId, record => record.DisputeId); // Assert Assert.AreEqual(expectedCount, actualCount); }
public async Task CountingAllRecords_WithSeededDisputeRecords_ReturnsCorrectCount(int records) { // Arrange var disputeRecords = DisputesDataCreationFixture.CreateMany(records); var context = TestDbContext.CreateContextWithSeededData(disputeRecords); var operationDateProvider = new Mock <IOperationDateProvider>(); operationDateProvider.Setup(x => x.GetOperationDate()).Returns(DateTime.Now); IOptions <RetentionOptions> retentionOptions = new ConfigurationOption( new RetentionOptions() { RetentionPeriod = 10, CutOffPeriod = 6 }); var disputesFilteredBaseData = new DisputeFilterContext(retentionOptions, operationDateProvider.Object); var disputeRepository = new DisputesRepository(context, disputesFilteredBaseData, mockTelemetryClient.Object); // Act var actualCount = await disputeRepository.CountAsync(); // Assert Assert.AreEqual(records, actualCount); }
public async Task GettingAllRecords_WithPageInformation_ReturnsMappedModels(int currentPage, int pageSize) { // Arrange var pageInformation = new PageInformation(currentPage, pageSize); var expectedRecords = InsolvenciesTestData.CreateInsolvenciesExpecteds(pageInformation).ToList(); var insolvencyRecords = InsolvenciesTestData.CreateInsolvenciesActuals(); var context = TestDbContext.CreateContextWithSeededData(insolvencyRecords); var operationDateProvider = new Mock <IOperationDateProvider>(); operationDateProvider.Setup(x => x.GetOperationDate()).Returns(DateTime.Now); IOptions <RetentionOptions> retentionOptions = new ConfigurationOption( new RetentionOptions() { RetentionPeriod = 10, CutOffPeriod = 6 }); var insolvencyOrdersFilteredBaseData = new InsolvencyOrderFilterContext(retentionOptions, operationDateProvider.Object); var disputesFilteredBaseData = new DisputeFilterContext(retentionOptions, operationDateProvider.Object); var insolvencyOrdersRepository = new InsolvencyOrdersRepository( context, insolvencyOrdersFilteredBaseData, disputesFilteredBaseData, mockTelemetryClient.Object); // Act var actualRecords = (await insolvencyOrdersRepository.GetAllAsync(pageInformation)).ToList(); // Assert CollectionAssert.AreEqual(expectedRecords, actualRecords, new InsolvencyModelComparer()); }
public async Task GettingRecordById_WithDisputesAndPageInformation_ReturnsInsolvenciesRecordsWithFilteredDisputes() { // Arrange const int recordId = 1; const string includes = DomainResources.Disputes; var pageInformation = new PageInformation(1, 100); var expectedInsolvencyRecord = new List <InsolvencyOrderModel> { InsolvenciesWithDisputesTestData.GetInsolvencyById(recordId) }; var expectedDisputeRecords = expectedInsolvencyRecord.SelectMany(insolvencyModel => insolvencyModel.Disputes); var insolvencyRecords = InsolvenciesWithDisputesTestData.CreateInsolvenciesActuals(); var context = TestDbContext.CreateContextWithSeededData(insolvencyRecords); var operationDateProvider = new Mock <IOperationDateProvider>(); operationDateProvider.Setup(x => x.GetOperationDate()).Returns(DateTime.Now); IOptions <RetentionOptions> retentionOptions = new ConfigurationOption( new RetentionOptions() { RetentionPeriod = 10, CutOffPeriod = 6 }); var insolvencyOrdersFilteredBaseData = new InsolvencyOrderFilterContext(retentionOptions, operationDateProvider.Object); var disputesFilteredBaseData = new DisputeFilterContext(retentionOptions, operationDateProvider.Object); var insolvencyOrdersRepository = new InsolvencyOrdersRepository( context, insolvencyOrdersFilteredBaseData, disputesFilteredBaseData, mockTelemetryClient.Object); // Act var actualInsolvencyRecord = await insolvencyOrdersRepository.GetResultsByAsync( recordId, record => record.InsolvencyOrderId, pageInformation, includes); var actualDisputeRecord = actualInsolvencyRecord.SelectMany(insolvencyModel => insolvencyModel.Disputes); // Assert CollectionAssert.AreEqual( expectedInsolvencyRecord.ToList(), actualInsolvencyRecord.ToList(), new InsolvencyModelComparer()); CollectionAssert.AreEqual( expectedDisputeRecords.ToList(), actualDisputeRecord.ToList(), new DisputeModelComparer()); }
public async Task GettingRecordById_WithDisputes_ReturnsInsolvencyRecordWithFilteredDisputes() { // Arrange const int recordId = 1; const string includes = DomainResources.Disputes; var expectedRecord = InsolvenciesWithDisputesTestData.GetInsolvencyById(recordId); var insolvencyRecords = InsolvenciesWithDisputesTestData.CreateInsolvenciesActuals(); var context = TestDbContext.CreateContextWithSeededData(insolvencyRecords); var operationDateProvider = new Mock <IOperationDateProvider>(); operationDateProvider.Setup(x => x.GetOperationDate()).Returns(DateTime.Now); IOptions <RetentionOptions> retentionOptions = new ConfigurationOption( new RetentionOptions() { RetentionPeriod = 10, CutOffPeriod = 6 }); var insolvencyOrdersFilteredBaseData = new InsolvencyOrderFilterContext(retentionOptions, operationDateProvider.Object); var disputesFilteredBaseData = new DisputeFilterContext(retentionOptions, operationDateProvider.Object); var insolvencyOrdersRepository = new InsolvencyOrdersRepository( context, insolvencyOrdersFilteredBaseData, disputesFilteredBaseData, mockTelemetryClient.Object); // Act var actualRecord = await insolvencyOrdersRepository.GetResultByAsync(recordId, record => record.InsolvencyOrderId, includes); // Assert Assert.AreEqual(expectedRecord.InsolvencyOrderId, actualRecord.InsolvencyOrderId); Assert.AreEqual(expectedRecord.DischargeDate, actualRecord.DischargeDate); Assert.AreEqual(expectedRecord.LineOfBusiness, actualRecord.LineOfBusiness); Assert.AreEqual(expectedRecord.OrderDate, actualRecord.OrderDate); Assert.AreEqual(expectedRecord.RestrictionsEndDate, actualRecord.RestrictionsEndDate); Assert.AreEqual(expectedRecord.RestrictionsStartDate, actualRecord.RestrictionsStartDate); CollectionAssert.AreEqual(expectedRecord.Disputes, actualRecord.Disputes, new DisputeModelComparer()); }
public async Task GettingRecordsByResidenceId_WithSeededInsolvenciesRecords_ReturnsMappedModels(int residenceId) { // Arrange var pageInformation = new PageInformation(1, 100); var expecteds = InsolvenciesTestData.GetExpectedsByResidenceId(residenceId); var insolvencyRecords = InsolvenciesTestData.CreateInsolvenciesActuals(); var context = TestDbContext.CreateContextWithSeededData(insolvencyRecords); var operationDateProvider = new Mock <IOperationDateProvider>(); operationDateProvider.Setup(x => x.GetOperationDate()).Returns(DateTime.Now); IOptions <RetentionOptions> retentionOptions = new ConfigurationOption( new RetentionOptions() { RetentionPeriod = 10, CutOffPeriod = 6 }); var insolvencyOrdersFilteredBaseData = new InsolvencyOrderFilterContext(retentionOptions, operationDateProvider.Object); var disputesFilteredBaseData = new DisputeFilterContext(retentionOptions, operationDateProvider.Object); var insolvencyOrdersRepository = new InsolvencyOrdersRepository( context, insolvencyOrdersFilteredBaseData, disputesFilteredBaseData, mockTelemetryClient.Object); // Act var actuals = await insolvencyOrdersRepository.GetResultsByAsync( residenceId, record => record.ResidenceId, pageInformation); // Assert CollectionAssert.AreEqual( expecteds.OrderBy(x => x.InsolvencyOrderId).ToList(), actuals.OrderBy(x => x.InsolvencyOrderId).ToList(), new InsolvencyModelComparer()); }
public async Task GettingRecordById_WithSeededDisputeRecords_ReturnsMappedModel() { // Arrange const int recordId = 1; var expectedRecord = DisputeTestData.GetDisputeById(recordId); var insolvencyRecords = InsolvenciesTestData.CreateInsolvenciesActuals(); var disputeRecords = DisputeTestData.CreateDisputeActuals(); var context = TestDbContext.CreateContextWithSeededData(insolvencyRecords).Seed(disputeRecords); var operationDateProvider = new Mock <IOperationDateProvider>(); operationDateProvider.Setup(x => x.GetOperationDate()).Returns(DateTime.Now); IOptions <RetentionOptions> retentionOptions = new ConfigurationOption( new RetentionOptions() { RetentionPeriod = 10, CutOffPeriod = 6 }); var disputesFilteredBaseData = new DisputeFilterContext(retentionOptions, operationDateProvider.Object); var disputeRepository = new DisputesRepository(context, disputesFilteredBaseData, mockTelemetryClient.Object); // Act var actualRecord = await disputeRepository.GetResultByAsync(recordId, record => record.DisputeId); // Assert Assert.AreEqual(expectedRecord.InsolvencyOrderId, actualRecord.InsolvencyOrderId); Assert.AreEqual(expectedRecord.DateRaised, actualRecord.DateRaised); Assert.AreEqual(expectedRecord.Displayed, actualRecord.Displayed); Assert.AreEqual(expectedRecord.DisputeId, actualRecord.DisputeId); Assert.AreEqual(expectedRecord.ReferenceNumber, actualRecord.ReferenceNumber); }