/* * This file is part of muCommander, http://www.mucommander.com * Copyright (C) 2002-2016 Maxence Bernard * * muCommander is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * muCommander is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.mucommander.ui.dialog.file; import com.mucommander.commons.file.AbstractFile; import com.mucommander.commons.file.DummyFile; import com.mucommander.commons.file.FileFactory; import com.mucommander.commons.file.FileURL; import com.mucommander.ui.dialog.file.BatchRenameDialog.*; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import java.net.MalformedURLException; import java.util.Calendar; /** * Batch rename dialog test case. * @author Mariusz Jakubowski * */ public class BatchRenameTest { private TestFile abcdef; private TestFile abcdef_ghi; private TestFile _abcdef; private TestFile abcdef_ghi_jkl; private static class TestFile extends DummyFile { private static long date; private AbstractFile parent; static { Calendar c = Calendar.getInstance(); c.set(2008, 2, 10, 13, 5, 37); date = c.getTimeInMillis(); } public TestFile(String name, AbstractFile parent) throws MalformedURLException { super(FileURL.getFileURL(name)); this.parent = parent; } @Override public long getSize() { return 0; } @Override public long getDate() { return date; } @Override public AbstractFile getParent() { return parent; } } @BeforeClass protected void setUp() throws Exception { TestFile parent = new TestFile(FileFactory.getTemporaryFolder() + "parent", null); abcdef = new TestFile(FileFactory.getTemporaryFolder() + "abcdef", parent); abcdef_ghi = new TestFile(FileFactory.getTemporaryFolder() + "abcdef.ghi", parent); abcdef_ghi_jkl = new TestFile(FileFactory.getTemporaryFolder() + "abcdef.ghi.jkl", parent); _abcdef = new TestFile(FileFactory.getTemporaryFolder() + ".abcdef", parent); } @Test public void testName() { NameToken full = new NameToken("N"); full.parse(); assert "abcdef".equals(full.apply(abcdef)); assert "abcdef".equals(full.apply(abcdef_ghi)); assert "abcdef.ghi".equals(full.apply(abcdef_ghi_jkl)); assert "".equals(full.apply(_abcdef)); NameToken sec = new NameToken("N2"); sec.parse(); assert "b".equals(sec.apply(abcdef)); assert "b".equals(sec.apply(abcdef_ghi)); assert "b".equals(sec.apply(abcdef_ghi_jkl)); assert "".equals(sec.apply(_abcdef)); NameToken secback = new NameToken("N-2"); secback.parse(); assert "e".equals(secback.apply(abcdef)); assert "e".equals(secback.apply(abcdef_ghi)); assert "h".equals(secback.apply(abcdef_ghi_jkl)); assert "".equals(secback.apply(_abcdef)); NameToken secthree = new NameToken("N2,3"); secthree.parse(); assert "bcd".equals(secthree.apply(abcdef)); assert "bcd".equals(secthree.apply(abcdef_ghi)); assert "bcd".equals(secthree.apply(abcdef_ghi_jkl)); assert "".equals(secthree.apply(_abcdef)); NameToken sectofifth = new NameToken("N2-5"); sectofifth.parse(); assert "bcde".equals(sectofifth.apply(abcdef)); assert "bcde".equals(sectofifth.apply(abcdef_ghi)); assert "bcde".equals(sectofifth.apply(abcdef_ghi_jkl)); assert "".equals(sectofifth.apply(_abcdef)); NameToken sectoend = new NameToken("N2-"); sectoend.parse(); assert "bcdef".equals(sectoend.apply(abcdef)); assert "bcdef".equals(sectoend.apply(abcdef_ghi)); assert "bcdef.ghi".equals(sectoend.apply(abcdef_ghi_jkl)); assert "".equals(sectoend.apply(_abcdef)); NameToken secbackthree = new NameToken("N-2,3"); secbackthree.parse(); assert "ef".equals(secbackthree.apply(abcdef)); assert "ef".equals(secbackthree.apply(abcdef_ghi)); assert "hi".equals(secbackthree.apply(abcdef_ghi_jkl)); assert "".equals(secbackthree.apply(_abcdef)); NameToken thirdbacksecback = new NameToken("N-3--2"); thirdbacksecback.parse(); assert "de".equals(thirdbacksecback.apply(abcdef)); assert "de".equals(thirdbacksecback.apply(abcdef_ghi)); assert "gh".equals(thirdbacksecback.apply(abcdef_ghi_jkl)); assert "".equals(thirdbacksecback.apply(_abcdef)); NameToken eightbackfourth = new NameToken("N-8-4"); eightbackfourth.parse(); assert "abcd".equals(eightbackfourth.apply(abcdef)); assert "abcd".equals(eightbackfourth.apply(abcdef_ghi)); assert "cd".equals(eightbackfourth.apply(abcdef_ghi_jkl)); assert "".equals(eightbackfourth.apply(_abcdef)); } @Test public void testExt() { NameToken full = new ExtToken("E"); full.parse(); assert "".equals(full.apply(abcdef)); assert "ghi".equals(full.apply(abcdef_ghi)); assert "jkl".equals(full.apply(abcdef_ghi_jkl)); assert "abcdef".equals(full.apply(_abcdef)); } @Test public void testCounter() { CounterToken one = new CounterToken("C", 1, 1, 1); one.parse(); assert "1".equals(one.apply(abcdef)); assert "2".equals(one.apply(abcdef)); CounterToken start5 = new CounterToken("C5", 1, 1, 1); start5.parse(); assert "5".equals(start5.apply(abcdef)); assert "6".equals(start5.apply(abcdef)); CounterToken step2 = new CounterToken("C5,2", 1, 1, 1); step2.parse(); assert "5".equals(step2.apply(abcdef)); assert "7".equals(step2.apply(abcdef)); CounterToken digits2 = new CounterToken("C9,2,2", 1, 1, 1); digits2.parse(); assert "09".equals(digits2.apply(abcdef)); assert "11".equals(digits2.apply(abcdef)); CounterToken digits3def = new CounterToken("C,,3", 10, 5, 1); digits3def.parse(); assert "010".equals(digits3def.apply(abcdef)); assert "015".equals(digits3def.apply(abcdef)); CounterToken step3def = new CounterToken("C,3", 10, 1, 1); step3def.parse(); assert "10".equals(step3def.apply(abcdef)); assert "13".equals(step3def.apply(abcdef)); } @Test public void testDate() { DateToken full = new DateToken("YMDhms"); full.parse(); assert "20080210130537".equals(full.apply(abcdef)); } @Test public void testParent() { ParentDirToken p = new ParentDirToken("P"); p.parse(); assert "parent".equals(p.apply(abcdef)); } }