Search in sources :

Example 1 with Persister

use of com.nytimes.android.external.store3.base.Persister in project Store by NYTimes.

the class StoreUtil method persisterIsStale.

static <Raw, Key> boolean persisterIsStale(@Nonnull Key key, Persister<Raw, Key> persister) {
    if (persister instanceof RecordProvider) {
        RecordProvider<Key> provider = (RecordProvider<Key>) persister;
        RecordState recordState = provider.getRecordState(key);
        return recordState == STALE;
    }
    return false;
}
Also used : RecordProvider(com.nytimes.android.external.store3.base.RecordProvider) RecordState(com.nytimes.android.external.store3.base.RecordState)

Example 2 with Persister

use of com.nytimes.android.external.store3.base.Persister in project Store by NYTimes.

the class SourceDiskDaoStoreTest method testSimple.

@Test
public void testSimple() {
    MockitoAnnotations.initMocks(this);
    GsonSourceParser<Foo> parser = new GsonSourceParser<>(new Gson(), Foo.class);
    Store<Foo, BarCode> store = StoreBuilder.<BarCode, BufferedSource, Foo>parsedWithKey().persister(diskDAO).fetcher(fetcher).parser(parser).open();
    Foo foo = new Foo();
    foo.bar = barCode.getKey();
    String sourceData = new Gson().toJson(foo);
    BufferedSource source = source(sourceData);
    Single<BufferedSource> value = Single.just(source);
    when(fetcher.fetch(barCode)).thenReturn(value);
    when(diskDAO.read(barCode)).thenReturn(Maybe.<BufferedSource>empty()).thenReturn(value.toMaybe());
    when(diskDAO.write(barCode, source)).thenReturn(Single.just(true));
    Foo result = store.get(barCode).blockingGet();
    assertThat(result.bar).isEqualTo(KEY);
    result = store.get(barCode).blockingGet();
    assertThat(result.bar).isEqualTo(KEY);
    verify(fetcher, times(1)).fetch(barCode);
}
Also used : GsonSourceParser(com.nytimes.android.external.store3.middleware.GsonSourceParser) BarCode(com.nytimes.android.external.store3.base.impl.BarCode) Gson(com.google.gson.Gson) BufferedSource(okio.BufferedSource) Test(org.junit.Test)

Example 3 with Persister

use of com.nytimes.android.external.store3.base.Persister in project Store by NYTimes.

the class MoshiStringParserStoreTest method testMoshiString.

@Test
public void testMoshiString() {
    Store<Foo, BarCode> store = ParsingStoreBuilder.<String, Foo>builder().persister(persister).fetcher(fetcher).parser(MoshiParserFactory.createStringParser(Foo.class)).open();
    Foo result = store.get(barCode).blockingGet();
    assertEquals(result.number, 123);
    assertEquals(result.string, "abc");
    assertEquals(result.bars.size(), 2);
    assertEquals(result.bars.get(0).string, "def");
    assertEquals(result.bars.get(1).string, "ghi");
    verify(fetcher, times(1)).fetch(barCode);
}
Also used : Foo(com.nytimes.android.external.store3.middleware.moshi.data.Foo) BarCode(com.nytimes.android.external.store3.base.impl.BarCode) Test(org.junit.Test)

Example 4 with Persister

use of com.nytimes.android.external.store3.base.Persister in project Store by NYTimes.

the class NoopPersisterTest method writeReadTest.

@Test
public void writeReadTest() {
    BarCode barCode = new BarCode("key", "value");
    NoopPersister<String, BarCode> persister = NoopPersister.create();
    boolean success = persister.write(barCode, "foo").blockingGet();
    assertThat(success).isTrue();
    String rawValue = persister.read(barCode).blockingGet();
    assertThat(rawValue).isEqualTo("foo");
}
Also used : BarCode(com.nytimes.android.external.store3.base.impl.BarCode) Test(org.junit.Test)

Example 5 with Persister

use of com.nytimes.android.external.store3.base.Persister in project Store by NYTimes.

the class ClearStoreTest method setUp.

@Before
public void setUp() {
    networkCalls = new AtomicInteger(0);
    store = StoreBuilder.<Integer>barcode().fetcher(barCode -> Single.fromCallable(() -> networkCalls.incrementAndGet())).persister(persister).open();
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Mock(org.mockito.Mock) BarCode(com.nytimes.android.external.store3.base.impl.BarCode) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) RunWith(org.junit.runner.RunWith) Maybe(io.reactivex.Maybe) Test(org.junit.Test) Mockito.when(org.mockito.Mockito.when) Single(io.reactivex.Single) Mockito.verify(org.mockito.Mockito.verify) MockitoJUnitRunner(org.mockito.runners.MockitoJUnitRunner) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) StoreBuilder(com.nytimes.android.external.store3.base.impl.StoreBuilder) Store(com.nytimes.android.external.store3.base.impl.Store) ClearingPersister(com.nytimes.android.external.store3.GetRefreshingTest.ClearingPersister) Before(org.junit.Before) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Before(org.junit.Before)

Aggregations

BarCode (com.nytimes.android.external.store3.base.impl.BarCode)19 Test (org.junit.Test)19 BufferedSource (okio.BufferedSource)7 Foo (com.nytimes.android.external.store3.middleware.jackson.data.Foo)6 Gson (com.google.gson.Gson)4 Single (io.reactivex.Single)4 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)4 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)4 JsonFactory (com.fasterxml.jackson.core.JsonFactory)3 Store (com.nytimes.android.external.store3.base.impl.Store)3 StoreBuilder (com.nytimes.android.external.store3.base.impl.StoreBuilder)3 Maybe (io.reactivex.Maybe)3 Nonnull (javax.annotation.Nonnull)3 Before (org.junit.Before)3 RunWith (org.junit.runner.RunWith)3 Mock (org.mockito.Mock)3 Mockito.when (org.mockito.Mockito.when)3 MockitoJUnitRunner (org.mockito.runners.MockitoJUnitRunner)3 Clearable (com.nytimes.android.external.store3.base.Clearable)2 Persister (com.nytimes.android.external.store3.base.Persister)2