package jalview.io.cache; import java.util.LinkedHashSet; import org.junit.Assert; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class JvCacheableInputBoxTest { private AppCache appCache; private static final String TEST_CACHE_KEY = "CACHE.UNIT_TEST"; private JvCacheableInputBox cacheBox = new JvCacheableInputBox<>( TEST_CACHE_KEY); @BeforeClass(alwaysRun = true) private void setUpCache() { appCache = AppCache.getInstance(); } @Test(groups = { "Functional" }) public void getUserInputTest() { String userInput = cacheBox.getUserInput(); Assert.assertEquals("", userInput); String testInput = "TestInput"; cacheBox.addItem(testInput); cacheBox.setSelectedItem(testInput); cacheBox.updateCacheNow(); // try // { // // This delay is essential to prevent the // // assertion below from executing before // // swing thread finishes updating the combo-box // Thread.sleep(100); // } catch (InterruptedException e) // { // e.printStackTrace(); // } userInput = cacheBox.getUserInput(); Assert.assertEquals(testInput, userInput); } @Test(groups = { "Functional" }) public void updateCacheTest() { String testInput = "TestInput"; cacheBox.addItem(testInput); cacheBox.setSelectedItem(testInput); cacheBox.updateCacheNow(); // synchronized (this) // { // try // { // wait(100); // // This delay is to let // // cacheBox.updateCache() finish updating the cache // Thread.sleep(200); // } catch (InterruptedException e) // { // e.printStackTrace(); // } // } LinkedHashSet foundCache = appCache .getAllCachedItemsFor(TEST_CACHE_KEY); Assert.assertTrue(foundCache.contains(testInput)); } }