Search in sources :

Example 16 with AnyRepositoryValue

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);
}
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 17 with AnyRepositoryValue

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();
}
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 18 with AnyRepositoryValue

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

Example 19 with AnyRepositoryValue

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

Example 20 with AnyRepositoryValue

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;
}
Also used : AnyRepositoryValue(com.karumi.rosie.doubles.AnyRepositoryValue) NonNull(android.support.annotation.NonNull)

Aggregations

AnyRepositoryValue (com.karumi.rosie.doubles.AnyRepositoryValue)25 AnyRepositoryKey (com.karumi.rosie.doubles.AnyRepositoryKey)21 Test (org.junit.Test)19 Page (com.karumi.rosie.repository.datasource.paginated.Page)12 LinkedList (java.util.LinkedList)3 NonNull (android.support.annotation.NonNull)2