use of de.invesdwin.util.time.date.FDate in project invesdwin-context-persistence by subes.
the class ALiveSegmentedTimeSeriesDBWithCacheTest method testKeysWithReturnMaxResults.
@Test
public void testKeysWithReturnMaxResults() {
returnMaxResults = testReturnMaxResultsValue;
final Iterable<FDate> iterable = cache.query().getKeys(FDate.MIN_DATE, FDate.MAX_DATE);
final List<FDate> previousKeys = new ArrayList<FDate>();
for (final FDate d : iterable) {
previousKeys.add(d);
}
Assertions.assertThat(previousKeys).isEqualTo(entities);
Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(2);
Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
}
use of de.invesdwin.util.time.date.FDate in project invesdwin-context-persistence by subes.
the class ALiveSegmentedTimeSeriesDBWithCacheTest method testNoData.
@Test
public void testNoData() {
final List<FDate> liste = new ArrayList<FDate>(entities);
table.deleteRange(KEY);
entities.clear();
for (final FDate entity : liste) {
final FDate cachedEntity = cache.query().getValue(entity);
Assertions.assertThat(cachedEntity).isNull();
}
Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(6);
Assertions.assertThat(countReadNewestValueTo).isEqualTo(18);
// new minKey limit gets tested
final Collection<FDate> values = asList(cache.query().getPreviousValues(FDate.MIN_DATE, 5));
Assertions.assertThat(values).isEmpty();
Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(7);
Assertions.assertThat(countReadNewestValueTo).isEqualTo(21);
}
use of de.invesdwin.util.time.date.FDate in project invesdwin-context-persistence by subes.
the class ALiveSegmentedTimeSeriesDBWithCacheTest method testNewEntityIncomingPushingAdjustKeyProviderWithoutInitialPush.
@Test
public void testNewEntityIncomingPushingAdjustKeyProviderWithoutInitialPush() throws IncompleteUpdateFoundException {
final APushingHistoricalCacheAdjustKeyProvider adjustKeyProvider = new APushingHistoricalCacheAdjustKeyProvider(cache) {
@Override
protected FDate getInitialHighestAllowedKey() {
return null;
}
@Override
protected boolean isPullingRecursive() {
return false;
}
};
cache.setAdjustKeyProvider(adjustKeyProvider);
final List<FDate> newEntities = new ArrayList<FDate>(entities);
final FDate newEntity = FDateBuilder.newDate(1996, 1, 1);
newEntities.add(newEntity);
for (final FDate entity : newEntities) {
final FDate value = cache.query().getValue(entity);
if (newEntity.equals(entity)) {
Assertions.assertThat(value).isNotEqualTo(newEntity);
Assertions.assertThat(value).isEqualTo(entities.get(entities.size() - 1));
} else {
Assertions.assertThat(value).isEqualTo(entity);
}
}
adjustKeyProvider.pushHighestAllowedKey(newEntity);
entities.add(newEntity);
table.putNextLiveValue(KEY, newEntity);
final FDate correctValue = cache.query().getValue(newEntity);
Assertions.assertThat(correctValue).isEqualTo(newEntity);
}
use of de.invesdwin.util.time.date.FDate in project invesdwin-context-persistence by subes.
the class ALiveSegmentedTimeSeriesDBWithCacheTest method testPreviousValueWithQueryCacheWithJumpingAroundTwoValues.
@Test
public void testPreviousValueWithQueryCacheWithJumpingAroundTwoValues() {
// first
FDate previousValue = cache.query().getPreviousValue(entities.get(1), 2);
FDate expectedValue = entities.get(0);
Assertions.assertThat(previousValue).isEqualTo(expectedValue);
Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(1);
Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
Assertions.assertThat(countInnerExtractKey).isEqualTo(1);
Assertions.assertThat(countAdjustKey).isEqualTo(0);
// last
previousValue = cache.query().getPreviousValue(entities.get(entities.size() - 1), 2);
expectedValue = entities.get(entities.size() - 3);
Assertions.assertThat(previousValue).isEqualTo(expectedValue);
Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(1);
Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
Assertions.assertThat(countInnerExtractKey).isEqualTo(1);
Assertions.assertThat(countAdjustKey).isEqualTo(0);
// first +1
previousValue = cache.query().getPreviousValue(entities.get(2), 2);
expectedValue = entities.get(0);
Assertions.assertThat(previousValue).isEqualTo(expectedValue);
Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(1);
Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
Assertions.assertThat(countInnerExtractKey).isEqualTo(1);
Assertions.assertThat(countAdjustKey).isEqualTo(0);
// last -1
previousValue = cache.query().getPreviousValue(entities.get(entities.size() - 2), 2);
expectedValue = entities.get(entities.size() - 4);
Assertions.assertThat(previousValue).isEqualTo(expectedValue);
Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(1);
Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
Assertions.assertThat(countInnerExtractKey).isEqualTo(1);
Assertions.assertThat(countAdjustKey).isEqualTo(0);
}
use of de.invesdwin.util.time.date.FDate in project invesdwin-context-persistence by subes.
the class ALiveSegmentedTimeSeriesDBWithCacheTest method testSubListWhenSwitchingFromFilterToNonFilter.
@Test
public void testSubListWhenSwitchingFromFilterToNonFilter() {
final FDate key = new FDate();
final Collection<FDate> previousValues = asList(cache.query().getPreviousValues(key, 10));
final List<FDate> expectedValues = entities;
Assertions.assertThat(previousValues).isEqualTo(expectedValues);
Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(4);
Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
Assertions.assertThat(countInnerExtractKey).isEqualTo(4);
Assertions.assertThat(countAdjustKey).isEqualTo(0);
final Collection<FDate> previousValuesCached = asList(cache.query().getPreviousValues(key, 10));
Assertions.assertThat(previousValuesCached).isEqualTo(entities);
Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(4);
Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
Assertions.assertThat(countInnerExtractKey).isEqualTo(4);
Assertions.assertThat(countAdjustKey).isEqualTo(0);
}
Aggregations