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;
}
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);
}
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);
}
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");
}
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();
}
Aggregations