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()); }