use of com.karumi.rosie.doubles.AnyRepositoryKey in project Rosie by Karumi.
the class PaginatedRosieRepositoryTest method shouldReturnItemsFromReadableDataSourceIfCacheDataSourceHasNoData.
@Test
public void shouldReturnItemsFromReadableDataSourceIfCacheDataSourceHasNoData() throws Exception {
Page page = Page.withOffsetAndLimit(ANY_OFFSET, ANY_LIMIT);
givenCacheDataSourceReturnsNull(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.AnyRepositoryKey in project Rosie by Karumi.
the class PaginatedRosieRepositoryTest method shouldNotRemoveDataFromCacheIfCacheDoNotHaveThisPage.
@Test
public void shouldNotRemoveDataFromCacheIfCacheDoNotHaveThisPage() throws Exception {
Page page = Page.withOffsetAndLimit(ANY_OFFSET, ANY_LIMIT);
givenCacheDataSourceReturnsNonValidValues(page);
givenReadableDataSourceReturnsValues(page);
PaginatedRosieRepository<AnyRepositoryKey, AnyRepositoryValue> repository = givenAPaginatedRepository();
repository.getPage(page);
Page nextPage = Page.withOffsetAndLimit(ANY_OFFSET + ANY_LIMIT, ANY_LIMIT);
repository.getPage(nextPage);
verify(cacheDataSource, times(1)).deleteAll();
}
use of com.karumi.rosie.doubles.AnyRepositoryKey in project Rosie by Karumi.
the class PaginatedRosieRepositoryTest method shouldReturnValuesFromReadableDataSourceIfCacheDoNotHaveThisPage.
@Test
public void shouldReturnValuesFromReadableDataSourceIfCacheDoNotHaveThisPage() throws Exception {
Page page = Page.withOffsetAndLimit(ANY_OFFSET, ANY_LIMIT);
givenCacheDataSourceReturnsNonValidValues(page);
givenReadableDataSourceReturnsValues(page);
PaginatedRosieRepository<AnyRepositoryKey, AnyRepositoryValue> repository = givenAPaginatedRepository();
repository.getPage(page);
Page nextPage = Page.withOffsetAndLimit(ANY_OFFSET + ANY_LIMIT, ANY_LIMIT);
repository.getPage(nextPage);
verify(cacheDataSource).getPage(page);
verify(readableDataSource).getPage(page);
verify(cacheDataSource).getPage(nextPage);
verify(readableDataSource).getPage(nextPage);
}
use of com.karumi.rosie.doubles.AnyRepositoryKey in project Rosie by Karumi.
the class PaginatedRosieRepositoryTest method shouldReturnValuesFromCacheDataSourceIfDataIsValid.
@Test
public void shouldReturnValuesFromCacheDataSourceIfDataIsValid() throws Exception {
Page page = Page.withOffsetAndLimit(ANY_OFFSET, ANY_LIMIT);
PaginatedCollection<AnyRepositoryValue> cacheValues = givenCacheDataSourceReturnsValidValues(page);
PaginatedRosieRepository<AnyRepositoryKey, AnyRepositoryValue> repository = givenAPaginatedRepository();
PaginatedCollection<AnyRepositoryValue> values = repository.getPage(page);
assertEquals(cacheValues, values);
}
use of com.karumi.rosie.doubles.AnyRepositoryKey in project Rosie by Karumi.
the class RosieRepositoryTest method shouldReturnValueByKeyFromCacheDataSource.
@Test
public void shouldReturnValueByKeyFromCacheDataSource() throws Exception {
givenReadableDataSourceReturnsNull();
AnyRepositoryValue cacheValue = givenCacheDataSourceReturnsValidValueWithKey(ANY_KEY);
RosieRepository<AnyRepositoryKey, AnyRepositoryValue> repository = givenAReadableAndCacheRepository();
AnyRepositoryValue value = repository.getByKey(ANY_KEY);
Assert.assertEquals(cacheValue, value);
}
Aggregations