: null;
boolean includeEnd = Math.random() > 0.5 ? true : false;
Integer maxPoints = Math.random() > 0.5 ? random(356 * 5) : null;
// Fetch series/sub-series directly from in-memory mock source
HistoricalTimeSeries inMemSeries =
(startDate == null && endDate == null && maxPoints == null)
? inMemoryHistoricalSource.getHistoricalTimeSeries(ids, dataSource, dataProvider, field)
: (maxPoints == null)
? inMemoryHistoricalSource.getHistoricalTimeSeries(ids, dataSource, dataProvider, field,
startDate, includeStart, endDate, includeEnd)
: inMemoryHistoricalSource.getHistoricalTimeSeries(ids, dataSource, dataProvider, field,
startDate, includeStart, endDate, includeEnd, maxPoints);
// Fetch latest data point directly from in-memory mock source
Pair<LocalDate, Double> inMemLatest =
(startDate == null && endDate == null)
? inMemoryHistoricalSource.getLatestDataPoint(ids, dataSource, dataProvider, field)
: inMemoryHistoricalSource.getLatestDataPoint(ids, dataSource, dataProvider, field,
startDate, includeStart, endDate, includeEnd);
// Compare latest data point with cached by externalid/source/provider/field
assertEquals(inMemLatest, (startDate == null && endDate == null)
? cachedProvider.getLatestDataPoint(ids, dataSource, dataProvider, field)
: cachedProvider.getLatestDataPoint(ids, dataSource, dataProvider, field,
startDate, includeStart, endDate, includeEnd));
// Compare latest data point with cached by uniqueId
assertEquals(inMemLatest, (startDate == null && endDate == null)
? cachedProvider.getLatestDataPoint(inMemSeries.getUniqueId())
: cachedProvider.getLatestDataPoint(inMemSeries.getUniqueId(),
startDate, includeStart, endDate, includeEnd));
// Select a testing order randomly (order might affect cache patterns)
if (Math.random() > 0.5) {
// First compare series/sub-series with cached by externalid/source/provider/field
HistoricalTimeSeries cachedSeries =
(startDate == null && endDate == null && maxPoints == null)
? cachedProvider.getHistoricalTimeSeries(ids, dataSource, dataProvider, field)
: (maxPoints == null)
? cachedProvider.getHistoricalTimeSeries(ids, dataSource, dataProvider, field,
startDate, includeStart, endDate, includeEnd)
: cachedProvider.getHistoricalTimeSeries(ids, dataSource, dataProvider, field,
startDate, includeStart, endDate, includeEnd, maxPoints);
assertEquals(inMemSeries, cachedSeries);
// Then compare series/sub-series with cached by UniqueId
cachedSeries =
(startDate == null && endDate == null && maxPoints == null)
? cachedProvider.getHistoricalTimeSeries(cachedSeries.getUniqueId())
: (maxPoints == null)
? cachedProvider.getHistoricalTimeSeries(inMemSeries.getUniqueId(),
startDate, includeStart, endDate, includeEnd)
: cachedProvider.getHistoricalTimeSeries(inMemSeries.getUniqueId(),
startDate, includeStart, endDate, includeEnd, maxPoints);
assertEquals(inMemSeries, cachedSeries);
} else {
// First compare series/sub-series with cached by UniqueId
HistoricalTimeSeries cachedSeries =
(startDate == null && endDate == null && maxPoints == null)
? cachedProvider.getHistoricalTimeSeries(inMemSeries.getUniqueId())
: (maxPoints == null)
? cachedProvider.getHistoricalTimeSeries(inMemSeries.getUniqueId(),
startDate, includeStart, endDate, includeEnd)
: cachedProvider.getHistoricalTimeSeries(inMemSeries.getUniqueId(),
startDate, includeStart, endDate, includeEnd, maxPoints);
assertEquals(inMemSeries, cachedSeries);
// Then compare series/sub-series with cached by externalid/source/provider/field
cachedSeries =
(startDate == null && endDate == null && maxPoints == null)
? cachedProvider.getHistoricalTimeSeries(ids, dataSource, dataProvider, field)
: (maxPoints == null)
? cachedProvider.getHistoricalTimeSeries(ids, dataSource, dataProvider, field,
startDate, includeStart, endDate, includeEnd)
: cachedProvider.getHistoricalTimeSeries(ids, dataSource, dataProvider, field,
startDate, includeStart, endDate, includeEnd, maxPoints);
assertEquals(inMemSeries, cachedSeries);
}
// Test getting id bundle
HistoricalTimeSeries historicalTimeSeries = cachedProvider.getHistoricalTimeSeries(ids, dataSource, dataProvider, field);
assertEquals(ids, cachedProvider.getExternalIdBundle(historicalTimeSeries.getUniqueId()));
}
// Shut down cache
cachedProvider.shutdown();
}