package com.jcwhatever.nucleus.collections.timed; import static org.junit.Assert.assertEquals; import com.jcwhatever.v1_8_R3.BukkitTester; import com.jcwhatever.v1_8_R3.MockPlugin; import com.jcwhatever.nucleus.NucleusTest; import com.jcwhatever.nucleus.collections.java.ListRunnable; import com.jcwhatever.nucleus.utils.TimeScale; import org.junit.Test; public class TimedArrayListTest { @Test public void testListInterface() { NucleusTest.init(); MockPlugin plugin = new MockPlugin("dummy"); plugin.onEnable(); TimedArrayList<String> list = new TimedArrayList<String>(plugin); ListRunnable<String> listTest = new ListRunnable<>(list, "a", "b", "c"); listTest.run(); } @Test public void testElementLifespan() throws Exception { NucleusTest.init(); MockPlugin plugin = new MockPlugin("dummy"); plugin.onEnable(); TimedArrayList<String> list = new TimedArrayList<String>(plugin); list.add("a", 1000, TimeScale.MILLISECONDS); long expires = System.currentTimeMillis() + 1000; while (System.currentTimeMillis() < expires + 100) { assertEquals(list.contains("a"), System.currentTimeMillis() < expires); Thread.sleep(5); } } @Test public void testElementLifespan1() throws Exception { NucleusTest.init(); MockPlugin plugin = new MockPlugin("dummy"); plugin.onEnable(); TimedArrayList<String> list = new TimedArrayList<String>(plugin); list.add("a", 20, TimeScale.TICKS); BukkitTester.pause(22); assertEquals(0, list.size()); } }