Search in sources :

Example 1 with AnyRepositoryKey

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);
}
Also used : AnyRepositoryKey(com.karumi.rosie.doubles.AnyRepositoryKey) Page(com.karumi.rosie.repository.datasource.paginated.Page) AnyRepositoryValue(com.karumi.rosie.doubles.AnyRepositoryValue) Test(org.junit.Test)

Example 2 with AnyRepositoryKey

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();
}
Also used : AnyRepositoryKey(com.karumi.rosie.doubles.AnyRepositoryKey) Page(com.karumi.rosie.repository.datasource.paginated.Page) AnyRepositoryValue(com.karumi.rosie.doubles.AnyRepositoryValue) Test(org.junit.Test)

Example 3 with AnyRepositoryKey

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);
}
Also used : AnyRepositoryKey(com.karumi.rosie.doubles.AnyRepositoryKey) Page(com.karumi.rosie.repository.datasource.paginated.Page) AnyRepositoryValue(com.karumi.rosie.doubles.AnyRepositoryValue) Test(org.junit.Test)

Example 4 with AnyRepositoryKey

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);
}
Also used : AnyRepositoryKey(com.karumi.rosie.doubles.AnyRepositoryKey) Page(com.karumi.rosie.repository.datasource.paginated.Page) AnyRepositoryValue(com.karumi.rosie.doubles.AnyRepositoryValue) Test(org.junit.Test)

Example 5 with AnyRepositoryKey

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);
}
Also used : AnyRepositoryKey(com.karumi.rosie.doubles.AnyRepositoryKey) AnyRepositoryValue(com.karumi.rosie.doubles.AnyRepositoryValue) Test(org.junit.Test)

Aggregations

AnyRepositoryKey (com.karumi.rosie.doubles.AnyRepositoryKey)21 AnyRepositoryValue (com.karumi.rosie.doubles.AnyRepositoryValue)21 Test (org.junit.Test)18 Page (com.karumi.rosie.repository.datasource.paginated.Page)12 LinkedList (java.util.LinkedList)3