package com.github.bjuvensjo.rsimulator.core.util; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.nio.file.Path; import java.util.List; import org.junit.Before; import org.junit.Test; import com.github.bjuvensjo.rsimulator.core.config.CoreModule; import com.google.inject.Guice; import com.google.inject.Injector; public class FileUtilsTest { private FileUtils fileUtils; @Before public void init() { Injector injector = Guice.createInjector(new CoreModule()); fileUtils = injector.getInstance(FileUtils.class); } @Test public void testFindRequests() { List<Path> xmlRequests = fileUtils.findRequests(new File(getClass().getResource("/").getPath()).toPath(), "xml"); assertTrue("xmlRequests", xmlRequests.size() > 0); for (Path path : xmlRequests) { assertTrue("xmlFile", path.toString().endsWith("Request.xml")); } List<Path> txtRequests = fileUtils.findRequests(new File(getClass().getResource("/").getPath()).toPath(), "txt"); assertTrue("txtRequests", txtRequests.size() > 0); for (Path path : txtRequests) { assertTrue("txtFile", path.toString().endsWith("Request.txt")); } } @Test public void testRead() { String resource = "/test1/Test.properties"; try { File file = new File(getClass().getResource(resource).getPath()); String content = fileUtils.read(file.toPath()); String cachedContent = fileUtils.read(file.toPath()); assertNotNull("classFileContent", content); assertNotNull("cachedClassFileContent", cachedContent); assertSame(content, cachedContent); // Rewrite the file to test that FileUtilsCacheinterceptor reads a file that has been modified. FileOutputStream fos = new FileOutputStream(file); fos.write(content.getBytes()); fos.close(); cachedContent = fileUtils.read(file.toPath()); assertNotSame(content, cachedContent); } catch (IOException e) { fail(e.getMessage()); } } }