Search in sources :

Example 21 with Mock

use of io.rx_cache2.internal.Mock in project RxCache by VictorAlbertos.

the class TwoLayersCacheTest method When_Save_Dynamic_Key_And_Evict_One_Dynamic_Key_Get_Others.

@Test
public void When_Save_Dynamic_Key_And_Evict_One_Dynamic_Key_Get_Others() {
    twoLayersCacheUT = new io.rx_cache2.internal.cache.TwoLayersCache(evictRecord(memory), retrieveRecord(memory), saveRecord(memory));
    twoLayersCacheUT.save(PROVIDER_KEY, "filer_1", "", new Mock(MOCK_VALUE), DUMMY_LIFE_TIME, true, false);
    twoLayersCacheUT.save(PROVIDER_KEY, "filer_2", "", new Mock(MOCK_VALUE + 1), DUMMY_LIFE_TIME, true, false);
    twoLayersCacheUT.save(PROVIDER_KEY, "filer_3", "", new Mock(MOCK_VALUE + 2), DUMMY_LIFE_TIME, true, false);
    twoLayersCacheUT.evictDynamicKey(PROVIDER_KEY, "filer_1");
    assertThat(twoLayersCacheUT.retrieve(PROVIDER_KEY, "filer_1", "", false, ONE_SECOND_LIFE, false), is(nullValue()));
    Record<Mock> record1 = twoLayersCacheUT.retrieve(PROVIDER_KEY, "filer_2", "", false, ONE_SECOND_LIFE, false);
    assertThat(record1.getData().getMessage(), is(MOCK_VALUE + 1));
    Record<Mock> record2 = twoLayersCacheUT.retrieve(PROVIDER_KEY, "filer_3", "", false, ONE_SECOND_LIFE, false);
    assertThat(record2.getData().getMessage(), is(MOCK_VALUE + 2));
}
Also used : Mock(io.rx_cache2.internal.Mock) BaseTest(io.rx_cache2.internal.common.BaseTest) Test(org.junit.Test)

Example 22 with Mock

use of io.rx_cache2.internal.Mock in project RxCache by VictorAlbertos.

the class TwoLayersCacheTest method When_Save_And_Evict_All_Get_Null.

@Test
public void When_Save_And_Evict_All_Get_Null() {
    twoLayersCacheUT = new io.rx_cache2.internal.cache.TwoLayersCache(evictRecord(memory), retrieveRecord(memory), saveRecord(memory));
    twoLayersCacheUT.save(PROVIDER_KEY, "", "", new Mock(MOCK_VALUE), DUMMY_LIFE_TIME, true, false);
    twoLayersCacheUT.save(PROVIDER_KEY, "" + 1, "", new Mock(MOCK_VALUE), DUMMY_LIFE_TIME, true, false);
    twoLayersCacheUT.save(PROVIDER_KEY + 1, "", "", new Mock(MOCK_VALUE), DUMMY_LIFE_TIME, true, false);
    twoLayersCacheUT.save(PROVIDER_KEY + 1, "" + 1, "", new Mock(MOCK_VALUE), DUMMY_LIFE_TIME, true, false);
    twoLayersCacheUT.evictAll();
    Record<Mock> record = twoLayersCacheUT.retrieve(PROVIDER_KEY, "", "", false, ONE_SECOND_LIFE, false);
    assertThat(record, is(nullValue()));
    record = twoLayersCacheUT.retrieve(PROVIDER_KEY, "", "", false, ONE_SECOND_LIFE, false);
    assertThat(record, is(nullValue()));
    record = twoLayersCacheUT.retrieve(PROVIDER_KEY + 1, "", "", false, ONE_SECOND_LIFE, false);
    assertThat(record, is(nullValue()));
    record = twoLayersCacheUT.retrieve(PROVIDER_KEY + 1, "", "", false, ONE_SECOND_LIFE, false);
    assertThat(record, is(nullValue()));
}
Also used : Mock(io.rx_cache2.internal.Mock) BaseTest(io.rx_cache2.internal.common.BaseTest) Test(org.junit.Test)

Example 23 with Mock

use of io.rx_cache2.internal.Mock in project RxCache by VictorAlbertos.

the class TwoLayersCacheTest method When_Save_And_Object_Not_Expired_And_Memory_Not_Destroyed_Retrieve_It_From_Memory.

@Test
public void When_Save_And_Object_Not_Expired_And_Memory_Not_Destroyed_Retrieve_It_From_Memory() {
    twoLayersCacheUT = new io.rx_cache2.internal.cache.TwoLayersCache(evictRecord(memory), retrieveRecord(memory), saveRecord(memory));
    twoLayersCacheUT.save(PROVIDER_KEY, "", "", new Mock(MOCK_VALUE), DUMMY_LIFE_TIME, true, false);
    Record<Mock> record = twoLayersCacheUT.retrieve(PROVIDER_KEY, "", "", false, ONE_SECOND_LIFE + 1000, false);
    Mock mock = record.getData();
    assertThat(mock.getMessage(), is(MOCK_VALUE));
    assertThat(record.getSource(), is(Source.MEMORY));
}
Also used : Mock(io.rx_cache2.internal.Mock) BaseTest(io.rx_cache2.internal.common.BaseTest) Test(org.junit.Test)

Example 24 with Mock

use of io.rx_cache2.internal.Mock in project RxCache by VictorAlbertos.

the class TwoLayersCacheTest method When_Expired_Date_But_Use_ExpiredDataIfLoaderNotAvailable_Then_GetMock.

@Test
public void When_Expired_Date_But_Use_ExpiredDataIfLoaderNotAvailable_Then_GetMock() {
    twoLayersCacheUT = new TwoLayersCache(evictRecord(memory), retrieveRecord(memory), saveRecord(memory));
    twoLayersCacheUT.save(PROVIDER_KEY, "1", "", new Mock(MOCK_VALUE), DUMMY_LIFE_TIME, true, false);
    waitTime(MORE_THAN_ONE_SECOND_LIFE);
    Record<Mock> record = twoLayersCacheUT.retrieve(PROVIDER_KEY, "1", "", true, ONE_SECOND_LIFE, false);
    assertThat(record.getData().getMessage(), is(MOCK_VALUE));
}
Also used : Mock(io.rx_cache2.internal.Mock) BaseTest(io.rx_cache2.internal.common.BaseTest) Test(org.junit.Test)

Example 25 with Mock

use of io.rx_cache2.internal.Mock in project RxCache by VictorAlbertos.

the class TwoLayersCacheTest method When_Save_And_Record_Has_Not_Expired_And_Memory_Destroyed_Retrieve_It_From_Disk.

@Test
public void When_Save_And_Record_Has_Not_Expired_And_Memory_Destroyed_Retrieve_It_From_Disk() {
    twoLayersCacheUT = new io.rx_cache2.internal.cache.TwoLayersCache(evictRecord(memory), retrieveRecord(memory), saveRecord(memory));
    twoLayersCacheUT.save(PROVIDER_KEY, "", "", new Mock(MOCK_VALUE), DUMMY_LIFE_TIME, true, false);
    twoLayersCacheUT.mockMemoryDestroyed();
    Record<Mock> record = twoLayersCacheUT.retrieve(PROVIDER_KEY, "", "", false, ONE_SECOND_LIFE, false);
    Mock mock = record.getData();
    assertThat(mock.getMessage(), is(MOCK_VALUE));
    assertThat(record.getSource(), is(Source.PERSISTENCE));
    record = twoLayersCacheUT.retrieve(PROVIDER_KEY, "", "", false, ONE_SECOND_LIFE, false);
    assertThat(mock.getMessage(), is(MOCK_VALUE));
    assertThat(record.getSource(), is(Source.MEMORY));
}
Also used : Mock(io.rx_cache2.internal.Mock) BaseTest(io.rx_cache2.internal.common.BaseTest) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)22 BaseTest (io.rx_cache2.internal.common.BaseTest)21 Mock (io.rx_cache2.internal.Mock)20 TestObserver (io.reactivex.observers.TestObserver)5 Reply (io.rx_cache2.Reply)3 ArrayList (java.util.ArrayList)3 EvictProvider (io.rx_cache2.EvictProvider)2 Observable (io.reactivex.Observable)1 ObservableEmitter (io.reactivex.ObservableEmitter)1 ObservableOnSubscribe (io.reactivex.ObservableOnSubscribe)1 ConfigProvider (io.rx_cache2.ConfigProvider)1 Record (io.rx_cache2.internal.Record)1 Type (java.lang.reflect.Type)1 List (java.util.List)1 DataPoint (org.junit.experimental.theories.DataPoint)1