package com.github.droidfu.cachefu; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import java.io.IOException; import org.junit.Test; import org.junit.runner.RunWith; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import android.os.Parcel; import android.util.Log; import com.github.droidfu.TestBase; @RunWith(PowerMockRunner.class) @PrepareForTest({ Log.class }) public class ModelCacheTest extends TestBase { class TestObject extends CachedModel { private String testString; public String getTestString() { return testString; } public void setTestString(String testString) { this.testString = testString; } @Override public boolean reloadFromCachedModel(ModelCache modelCache, CachedModel cachedModel) { TestObject cachedTestObject = (TestObject) cachedModel; testString = cachedTestObject.testString; return false; } @Override public void readFromParcel(Parcel source) throws IOException { super.readFromParcel(source); testString = source.readString(); } @Override public void writeToParcel(Parcel dest, int flags) { super.writeToParcel(dest, flags); dest.writeString(testString); } @Override public String createKey(String id) { return "test_object_" + id; } } @Test public void testCachesObject() { ModelCache modelCache = new ModelCache(1, 1, 1); String key = "test_object"; assertNull(modelCache.get(key)); TestObject preObject = new TestObject(); preObject.setTestString("this is a test"); modelCache.put(key, preObject); TestObject postObject = (TestObject) modelCache.get(key); assertEquals("this is a test", postObject.getTestString()); } }