public async Task GettingRecordsByInsolvencyOrderId_WithPageInformation_ReturnsExpectedNumberOfRecords(
            int currentPage,
            int pageSize,
            int insolvencyOrderId,
            int expected)
        {
            // Arrange
            var pageInformation   = new PageInformation(currentPage, pageSize);
            var insolvencyRecords = InsolvenciesTestData.CreateInsolvenciesActuals();
            var historyRecords    = HistoriesTestData.CreateHistoriesActuals();
            var context           = TestDbContext.CreateContextWithSeededData(insolvencyRecords).Seed(historyRecords);

            var historiesRepository = new InsolvencyOrderHistoriesRepository(context, mockTelemetryClient.Object);

            // Act
            var actualCount =
                (await historiesRepository.GetResultsByAsync(
                     insolvencyOrderId,
                     record => record.InsolvencyOrderId,
                     pageInformation))
                .Count();

            // Assert
            Assert.AreEqual(expected, actualCount);
        }
        public async Task GettingRecordsByInsolvencyOrderId_WithPageInformation_ReturnsMappedModels(
            int currentPage,
            int pageSize,
            int insolvencyOrderId)
        {
            // Arrange
            var pageInformation   = new PageInformation(currentPage, pageSize);
            var expecteds         = HistoriesTestData.GetExpectedsByInsolvencyOrderId(pageInformation, insolvencyOrderId);
            var insolvencyRecords = InsolvenciesTestData.CreateInsolvenciesActuals();
            var historyRecords    = HistoriesTestData.CreateHistoriesActuals();
            var context           = TestDbContext.CreateContextWithSeededData(insolvencyRecords).Seed(historyRecords);

            var historiesRepository = new InsolvencyOrderHistoriesRepository(context, mockTelemetryClient.Object);

            // Act
            var actuals =
                await historiesRepository.GetResultsByAsync(
                    insolvencyOrderId,
                    record => record.InsolvencyOrderId,
                    pageInformation);

            // Assert
            CollectionAssert.AreEqual(
                expecteds.OrderBy(x => x.InsolvencyOrderHistoryId).ToList(),
                actuals.OrderBy(x => x.InsolvencyOrderHistoryId).ToList(),
                new InsolvencyHistoryModelComparer());
        }
        public async Task CountingAllRecords_WithSeededHistoriesRecords_ReturnsCorrectCount(int records)
        {
            // Arrange
            var historyRecords      = HistoriesDataCreationFixture.CreateMany(records);
            var context             = TestDbContext.CreateContextWithSeededData(historyRecords);
            var historiesRepository = new InsolvencyOrderHistoriesRepository(context, mockTelemetryClient.Object);

            // Act
            var actualCount = await historiesRepository.CountAsync();

            // Assert
            Assert.AreEqual(records, actualCount);
        }
        public async Task CountingRecordsById_WithSeededHistoriesRecords_ReturnsCorrectCount()
        {
            // Arrange
            const int recordId      = 1;
            const int expectedCount = 1;

            var insolvencyRecords   = InsolvenciesTestData.CreateInsolvenciesActuals();
            var historyRecords      = HistoriesTestData.CreateHistoriesActuals();
            var context             = TestDbContext.CreateContextWithSeededData(insolvencyRecords).Seed(historyRecords);
            var historiesRepository = new InsolvencyOrderHistoriesRepository(context, mockTelemetryClient.Object);

            // Act
            var actualCount = await historiesRepository.CountByAsync(recordId, record => record.InsolvencyOrderHistoryId);

            // Assert
            Assert.AreEqual(expectedCount, actualCount);
        }
        public async Task GettingAllRecords_WithSeededHistoriesRecords_ReturnsMappedModels()
        {
            // Arrange
            var pageInformation   = new PageInformation(1, 100);
            var expectedRecords   = HistoriesTestData.CreateHistoriesExpecteds();
            var insolvencyRecords = InsolvenciesTestData.CreateInsolvenciesActuals();
            var historyRecords    = HistoriesTestData.CreateHistoriesActuals();
            var context           = TestDbContext.CreateContextWithSeededData(insolvencyRecords).Seed(historyRecords);

            var historiesRepository = new InsolvencyOrderHistoriesRepository(context, mockTelemetryClient.Object);

            // Act
            var actualRecords = await historiesRepository.GetAllAsync(pageInformation);

            // Assert
            CollectionAssert.AreEqual(
                expectedRecords.OrderBy(x => x.InsolvencyOrderHistoryId).ToList(),
                actualRecords.OrderBy(x => x.InsolvencyOrderHistoryId).ToList(),
                new InsolvencyHistoryModelComparer());
        }
        public async Task GettingRecordById_WithSeededHistoriesRecords_ReturnsMappedModel()
        {
            // Arrange
            const int recordId = 1;

            var expectedRecord    = HistoriesTestData.GetHistoriesById(recordId);
            var insolvencyRecords = InsolvenciesTestData.CreateInsolvenciesActuals();
            var historyRecords    = HistoriesTestData.CreateHistoriesActuals();
            var context           = TestDbContext.CreateContextWithSeededData(insolvencyRecords).Seed(historyRecords);

            var historiesRepository = new InsolvencyOrderHistoriesRepository(context, mockTelemetryClient.Object);

            // Act
            var actualRecord = await historiesRepository.GetResultByAsync(recordId, record => record.InsolvencyOrderHistoryId);

            // Assert
            Assert.AreEqual(expectedRecord.InsolvencyOrderId, actualRecord.InsolvencyOrderId);
            Assert.AreEqual(expectedRecord.CaseReference, actualRecord.CaseReference);
            Assert.AreEqual(expectedRecord.InsolvencyOrderHistoryId, actualRecord.InsolvencyOrderHistoryId);
            Assert.AreEqual(expectedRecord.CaseYear, actualRecord.CaseYear);
            Assert.AreEqual(expectedRecord.CourtId, actualRecord.CourtId);
            Assert.AreEqual(expectedRecord.InsolvencyOrderStatusId, actualRecord.InsolvencyOrderStatusId);
        }