package krasa.formatter.settings.provider; import com.intellij.openapi.util.io.FileUtil; import krasa.formatter.common.ModifiableFile; import org.apache.commons.io.FileUtils; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import java.io.File; import java.io.IOException; /** * @author Vojtech Krasa */ public class CachedProviderTest { protected CachedProvider<String> cachedProvider; protected File tempFile; @Before public void setUp() throws Exception { tempFile = File.createTempFile("12311", "2"); cachedProvider = new CachedProvider<String>(new ModifiableFile(tempFile.getPath())) { @Override protected String readFile(File file) { try { return FileUtils.readFileToString(file); } catch (IOException e) { throw new RuntimeException(e); } } }; } @Test public void testWasChanged() throws Exception { cachedProvider.get(); Assert.assertFalse(cachedProvider.wasChanged()); tempFile.setLastModified(tempFile.lastModified() + 1000); Assert.assertTrue(cachedProvider.wasChanged()); } @Test public void testGet() throws Exception { FileUtil.writeToFile(tempFile, "foo"); tempFile.setLastModified(1000); String s = cachedProvider.get(); Assert.assertEquals("foo", s); FileUtil.writeToFile(tempFile, "bar"); tempFile.setLastModified(1000); s = cachedProvider.get(); Assert.assertEquals("foo", s); tempFile.setLastModified(2000); s = cachedProvider.get(); Assert.assertEquals("bar", s); } }