package com.stardust.scriptdroid.statics; import android.support.test.InstrumentationRegistry; import com.stardust.autojs.script.FileScriptSource; import com.stardust.autojs.script.ScriptSource; import com.stardust.autojs.script.StringScriptSource; import com.stardust.util.MapEntries; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.*; /** * Created by Stardust on 2017/5/5. */ public class SQLiteStaticsStorageTest { private SQLiteStaticsStorage mStorage; @Before public void setUp() throws Exception { mStorage = new SQLiteStaticsStorage(InstrumentationRegistry.getTargetContext()); } @Test public void record() throws Exception { testOneRecord(); testTwoRecord(); testRepeatedRecord(); } @Test public void testOneRecord() { mStorage.clear(); mStorage.record(new StringScriptSource("Name", "Script")); assertEquals(mStorage.getAll(), new MapEntries<String, String>() .entry("Name.js", "1") .map()); } @Test public void testTwoRecord() { mStorage.clear(); mStorage.record(new StringScriptSource("Name", "Script")); mStorage.record(new FileScriptSource("/test/test.js")); assertEquals(mStorage.getAll(), new MapEntries<String, String>() .entry("Name.js", "1") .entry("/test/test.js", "1") .map()); } @Test public void testRepeatedRecord() { mStorage.clear(); mStorage.record(new FileScriptSource("/test/test.js")); mStorage.record(new StringScriptSource("Name", "Script")); mStorage.record(new FileScriptSource("/test/test.js")); mStorage.record(new FileScriptSource("/test/test.js")); assertEquals(mStorage.getAll(), new MapEntries<String, String>() .entry("Name.js", "1") .entry("/test/test.js", "3") .map()); } @Test public void getMax() throws Exception { mStorage.clear(); put(new FileScriptSource("/test/test.js"), 50); put(new StringScriptSource("Name4", "Script"), 10); put(new StringScriptSource("Name5", "Script"), 5); put(new StringScriptSource("Name6", "Script"), 4); put(new StringScriptSource("Name7", "Script"), 3); put(new StringScriptSource("Name8", "Script"), 1); put(new StringScriptSource("Name9", "Script"), 1); put(new StringScriptSource("Name3", "Script"), 20); put(new StringScriptSource("Name1", "Script"), 100); assertEquals(mStorage.getMax(5), new MapEntries<String, String>() .entry("Name1.js", "100") .entry("/test/test.js", "50") .entry("Name3.js", "20") .entry("Name4.js", "10") .entry("Name5.js", "5") .map()); } private void put(ScriptSource source, int times) { for (int i = 0; i < times; i++) { mStorage.record(source); } } }