use of com.karumi.rosie.doubles.AnyRepositoryValue in project Rosie by Karumi.
the class PaginatedRosieRepositoryTest method shouldReturnValuesFromReadableDataSourceIfCacheDataSourceIsNotValid.
@Test
public void shouldReturnValuesFromReadableDataSourceIfCacheDataSourceIsNotValid() throws Exception {
Page page = Page.withOffsetAndLimit(ANY_OFFSET, ANY_LIMIT);
givenCacheDataSourceReturnsNonValidValues(page);
PaginatedCollection<AnyRepositoryValue> readableValues = givenReadableDataSourceReturnsValues(page);
PaginatedRosieRepository<AnyRepositoryKey, AnyRepositoryValue> repository = givenAPaginatedRepository();
PaginatedCollection<AnyRepositoryValue> values = repository.getPage(page);
assertEquals(readableValues, values);
}
use of com.karumi.rosie.doubles.AnyRepositoryValue in project Rosie by Karumi.
the class PaginatedRosieRepositoryTest method shouldDeleteCacheDataIfItemsAreNotValid.
@Test
public void shouldDeleteCacheDataIfItemsAreNotValid() throws Exception {
Page page = Page.withOffsetAndLimit(ANY_OFFSET, ANY_LIMIT);
givenCacheDataSourceReturnsNonValidValues(page);
PaginatedRosieRepository<AnyRepositoryKey, AnyRepositoryValue> repository = givenAPaginatedRepository();
repository.getPage(page);
verify(cacheDataSource).deleteAll();
}
use of com.karumi.rosie.doubles.AnyRepositoryValue in project Rosie by Karumi.
the class RosieRepositoryTest method shouldPopulateCacheDataSourceWithWriteableDataSourceResult.
@Test
public void shouldPopulateCacheDataSourceWithWriteableDataSourceResult() throws Exception {
AnyRepositoryValue writeableValue = givenWriteableDataSourceWritesValue(ANY_VALUE);
RosieRepository<?, AnyRepositoryValue> repository = givenAWriteableAndCacheRepository();
repository.addOrUpdate(ANY_VALUE);
verify(cacheDataSource).addOrUpdate(writeableValue);
}
use of com.karumi.rosie.doubles.AnyRepositoryValue in project Rosie by Karumi.
the class RosieRepositoryTest method shouldReturnItemFromReadableDataSourceIfCacheDataSourceValueIsNotValid.
@Test
public void shouldReturnItemFromReadableDataSourceIfCacheDataSourceValueIsNotValid() throws Exception {
givenCacheDataSourceReturnsNonValidValueWithKey(ANY_KEY);
AnyRepositoryValue readableValue = givenReadableDataSourceReturnsValidValueWithKey(ANY_KEY);
RosieRepository<AnyRepositoryKey, AnyRepositoryValue> repository = givenAReadableAndCacheRepository();
AnyRepositoryValue value = repository.getByKey(ANY_KEY);
Assert.assertEquals(readableValue, value);
}
use of com.karumi.rosie.doubles.AnyRepositoryValue in project Rosie by Karumi.
the class RosieRepositoryTest method givenCacheDataSourceReturnsValueWithKey.
@NonNull
private AnyRepositoryValue givenCacheDataSourceReturnsValueWithKey(AnyRepositoryKey key, boolean isValidValue) throws Exception {
AnyRepositoryValue value = new AnyRepositoryValue(key);
when(cacheDataSource.getByKey(key)).thenReturn(value);
when(cacheDataSource.isValid(value)).thenReturn(isValidValue);
return value;
}
Aggregations