package org.ggp.base.test; import java.io.BufferedWriter; import java.io.File; import java.io.FileFilter; import java.io.FileWriter; import java.io.IOException; import org.ggp.base.util.files.FileUtils; import org.junit.Assert; import org.junit.Test; public class NoTabsInRulesheetsTest extends Assert { // Check that GGP-Base's games use spaces, not tabs. @Test public void testNoTabsInRulesheets() { File testGamesFolder = new File("games", "test"); assertTrue(testGamesFolder.isDirectory()); for (File gameFile : testGamesFolder.listFiles(new KifFileFilter())) { String fileContents = FileUtils.readFileAsString(gameFile); assertFalse("The game "+gameFile+" contains tabs. Run the main method in NoTabsInRulesheetsTest to fix this.", fileContents.contains("\t")); } } // Modify the test games to use spaces instead of tabs. public static void main(String[] args) throws Exception { File testGamesFolder = new File("games", "test"); assertTrue(testGamesFolder.isDirectory()); for (File gameFile : testGamesFolder.listFiles(new KifFileFilter())) { String fileContents = FileUtils.readFileAsString(gameFile); String newContents = fileContents.replaceAll("\t", " "); //four spaces overwriteFileWithString(gameFile, newContents); } } static void overwriteFileWithString(File file, String newContents) throws IOException { BufferedWriter writer = new BufferedWriter(new FileWriter(file)); writer.append(newContents); writer.close(); } static class KifFileFilter implements FileFilter { @Override public boolean accept(File pathname) { return pathname.getName().endsWith(".kif"); } } }