use of com.karumi.rosie.repository.datasource.paginated.Page in project Rosie by Karumi.
the class InMemoryPaginatedCacheDataSourceTest method shouldReturnHasMoreIfThereAreMoreItemsToLoad.
@Test
public void shouldReturnHasMoreIfThereAreMoreItemsToLoad() throws Exception {
Page page = Page.withOffsetAndLimit(ANY_OFFSET, ANY_LIMIT);
Collection<AnyRepositoryValue> values = givenSomeItems(ANY_OFFSET + ANY_LIMIT);
PaginatedCacheDataSource<AnyRepositoryKey, AnyRepositoryValue> cache = givenAnInMemoryPaginatedCacheDataSource();
cache.addOrUpdatePage(page, values, ANY_HAS_MORE);
PaginatedCollection<AnyRepositoryValue> paginatedCollection = cache.getPage(page);
assertEquals(ANY_HAS_MORE, paginatedCollection.hasMore());
}
use of com.karumi.rosie.repository.datasource.paginated.Page in project Rosie by Karumi.
the class PaginatedRosieRepositoryTest method shouldPopulateCacheDataSourceAfterGetPageFromReadableDataSource.
@Test
public void shouldPopulateCacheDataSourceAfterGetPageFromReadableDataSource() throws Exception {
Page page = Page.withOffsetAndLimit(ANY_OFFSET, ANY_LIMIT);
givenCacheDataSourceReturnsNull(page);
PaginatedCollection<AnyRepositoryValue> readableValues = givenReadableDataSourceReturnsValues(page);
PaginatedRosieRepository<AnyRepositoryKey, AnyRepositoryValue> repository = givenAPaginatedRepository();
repository.getPage(page);
verify(cacheDataSource).addOrUpdatePage(page, readableValues.getItems(), true);
}
use of com.karumi.rosie.repository.datasource.paginated.Page in project Rosie by Karumi.
the class PaginatedRosieRepositoryTest method shouldReturnValuesFromReadableDataSourceIfPolicyForcesOnlyReadable.
@Test
public void shouldReturnValuesFromReadableDataSourceIfPolicyForcesOnlyReadable() throws Exception {
Page page = Page.withOffsetAndLimit(ANY_OFFSET, ANY_LIMIT);
givenCacheDataSourceReturnsValidValues(page);
PaginatedCollection<AnyRepositoryValue> readableValues = givenReadableDataSourceReturnsValues(page);
PaginatedRosieRepository<AnyRepositoryKey, AnyRepositoryValue> repository = givenAPaginatedRepository();
PaginatedCollection<AnyRepositoryValue> values = repository.getPage(page, ReadPolicy.READABLE_ONLY);
assertEquals(readableValues, values);
}
use of com.karumi.rosie.repository.datasource.paginated.Page 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.repository.datasource.paginated.Page 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();
}
Aggregations