package info.toyonos.subtitles4j.helper; import info.toyonos.subtitles4j.SubtitlesFileHandler; import info.toyonos.subtitles4j.SubtitlesFileHandler.SubtitlesFile; import info.toyonos.subtitles4j.factory.Subtitles4jException; import info.toyonos.subtitles4j.factory.SubtitlesType; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.junit.Assert; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; public class Subtitles4jUtilsTest { @Rule public SubtitlesFileHandler subtitlesFileHandler = new SubtitlesFileHandler(); @Rule public TemporaryFolder folder = new TemporaryFolder(); @Test @SubtitlesFile(type=SubtitlesType.SRT, name={"test1", "shifted1"}) public void testShiftPositive() throws Subtitles4jException, IOException { File inputFile = folder.newFile("tmp.srt"); FileUtils.copyFile(subtitlesFileHandler.getFile("test1"), inputFile); Assert.assertEquals( FileUtils.readLines(subtitlesFileHandler.getFile("shifted1")), FileUtils.readLines(Subtitles4jUtils.shift(inputFile, 2500)) ); } @Test @SubtitlesFile(type=SubtitlesType.SRT, name={"test1", "shifted2"}) public void testShiftNegative() throws Subtitles4jException, IOException { File inputFile = folder.newFile("tmp.srt"); FileUtils.copyFile(subtitlesFileHandler.getFile("test1"), inputFile); Assert.assertEquals( FileUtils.readLines(subtitlesFileHandler.getFile("shifted2")), FileUtils.readLines(Subtitles4jUtils.shift(inputFile, -1000)) ); } @Test @SubtitlesFile(type=SubtitlesType.SRT, name={"test1", "shifted3"}) public void testShiftNegativeZeroValue() throws Subtitles4jException, IOException { File inputFile = folder.newFile("tmp.srt"); FileUtils.copyFile(subtitlesFileHandler.getFile("test1"), inputFile); Assert.assertEquals( FileUtils.readLines(subtitlesFileHandler.getFile("shifted3")), FileUtils.readLines(Subtitles4jUtils.shift(inputFile, -2500)) ); } @Test @SubtitlesFile(type=SubtitlesType.SRT, name={"test5", "removed1"}) public void testRemoveCaptionsSimplePatternCaseSensitive() throws Subtitles4jException, IOException { File inputFile = folder.newFile("tmp.srt"); FileUtils.copyFile(subtitlesFileHandler.getFile("test5"), inputFile); Assert.assertEquals( FileUtils.readLines(subtitlesFileHandler.getFile("removed1")), FileUtils.readLines(Subtitles4jUtils.removeCaptions(inputFile, "test")) ); } @Test @SubtitlesFile(type=SubtitlesType.SRT, name={"test5", "removed2"}) public void testRemoveCaptionsRegularPatternCaseSensitive() throws Subtitles4jException, IOException { File inputFile = folder.newFile("tmp.srt"); FileUtils.copyFile(subtitlesFileHandler.getFile("test5"), inputFile); Assert.assertEquals( FileUtils.readLines(subtitlesFileHandler.getFile("removed2")), FileUtils.readLines(Subtitles4jUtils.removeCaptions(inputFile, "thi[a-z]+")) ); } @Test @SubtitlesFile(type=SubtitlesType.SRT, name={"test5", "removed3"}) public void testRemoveCaptionsSimplePatternCaseInsensitive() throws Subtitles4jException, IOException { File inputFile = folder.newFile("tmp.srt"); FileUtils.copyFile(subtitlesFileHandler.getFile("test5"), inputFile); Assert.assertEquals( FileUtils.readLines(subtitlesFileHandler.getFile("removed3")), FileUtils.readLines(Subtitles4jUtils.removeCaptionsIgnoreCase(inputFile, "test")) ); } @Test @SubtitlesFile(type=SubtitlesType.SRT, name={"test5", "removed4"}) public void testRemoveCaptionsRegularPatternCaseInsensitive() throws Subtitles4jException, IOException { File inputFile = folder.newFile("tmp.srt"); FileUtils.copyFile(subtitlesFileHandler.getFile("test5"), inputFile); Assert.assertEquals( FileUtils.readLines(subtitlesFileHandler.getFile("removed4")), FileUtils.readLines(Subtitles4jUtils.removeCaptionsIgnoreCase(inputFile, "thi[a-z]+")) ); } }