X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2FBackupFilesTest.java;h=7f04749521e667902f229217c581dd5f3251cced;hb=a7169b1c72607f3c9357195b4999869650a2a891;hp=86322b854a81809d25882dc6d4045a240e146fc0;hpb=186dc58ccd8bb825ac2743d5f4e0d99a50bd324b;p=jalview.git
diff --git a/test/jalview/io/BackupFilesTest.java b/test/jalview/io/BackupFilesTest.java
index 86322b8..7f04749 100644
--- a/test/jalview/io/BackupFilesTest.java
+++ b/test/jalview/io/BackupFilesTest.java
@@ -1,12 +1,25 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview 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.
+ *
+ * Jalview 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 Jalview. If not, see .
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.io;
-import jalview.bin.Cache;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.Sequence;
-import jalview.datamodel.SequenceI;
-import jalview.gui.AlignFrame;
-import jalview.gui.JvOptionPane;
-
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
@@ -24,6 +37,13 @@ import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
+import jalview.bin.Cache;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.Sequence;
+import jalview.datamodel.SequenceI;
+import jalview.gui.AlignFrame;
+import jalview.gui.JvOptionPane;
+
public class BackupFilesTest
{
@BeforeClass(alwaysRun = true)
@@ -34,7 +54,8 @@ public class BackupFilesTest
}
private static boolean actuallyDeleteTmpFiles = true;
- private static String testDir = "examples";
+
+ private static String testDir = "test/jalview/io";
private static String testBasename = "backupfilestest";
@@ -42,7 +63,6 @@ public class BackupFilesTest
private static String testFilename = testBasename + testExt;
-
private static String testFile = testDir + File.separatorChar
+ testFilename;
@@ -61,7 +81,7 @@ public class BackupFilesTest
private static String suffix = "_BACKUPTEST-%n";
- private static int digits = 8;
+ private static int digits = 6;
private static int rollMax = 2;
@@ -84,7 +104,35 @@ public class BackupFilesTest
// check no backup files
File[] backupFiles = getBackupFiles();
- Assert.assertTrue(backupFiles.length == 0);
+ Assert.assertEquals(backupFiles.length, 0, "Number of backup files is "
+ + backupFiles.length + ", not " + 0);
+ }
+
+ // save with no numbers in the backup file names
+ @Test(groups = { "Functional" })
+ public void backupsEnabledSingleFileBackupTest() throws Exception
+ {
+ // Enable BackupFiles and set noMax so all backupfiles get kept
+ String mysuffix = "~";
+ BackupFilesPresetEntry bfpe = new BackupFilesPresetEntry(mysuffix, 1,
+ false, true, 1, false);
+ setBackupFilesOptions(true, false, true,
+ "test/jalview/io/testProps_singlefilebackup.jvprops", bfpe);
+
+ // init the newFile and backups (i.e. make sure newFile exists on its own
+ // and has no backups)
+ initNewFileForTesting();
+ HashMap correctindexmap = new HashMap<>();
+ correctindexmap.put(0, "backupfilestestTemp.fa~");
+
+ save();
+ Assert.assertTrue(checkBackupFiles(correctindexmap, newFile, "~", 1));
+
+ // and a second time -- see JAL-3628
+ save();
+ Assert.assertTrue(checkBackupFiles(correctindexmap, newFile, "~", 1));
+
+ cleanupTmpFiles(newFile, "~", 1);
}
// save keeping all backup files
@@ -107,28 +155,28 @@ public class BackupFilesTest
}
// check 10 backup files
- HashMap correctindexmap = new HashMap();
- correctindexmap.put(1, "backupfilestestTemp.fa_BACKUPTEST-00000001");
- correctindexmap.put(2, "backupfilestestTemp.fa_BACKUPTEST-00000002");
- correctindexmap.put(3, "backupfilestestTemp.fa_BACKUPTEST-00000003");
- correctindexmap.put(4, "backupfilestestTemp.fa_BACKUPTEST-00000004");
- correctindexmap.put(5, "backupfilestestTemp.fa_BACKUPTEST-00000005");
- correctindexmap.put(6, "backupfilestestTemp.fa_BACKUPTEST-00000006");
- correctindexmap.put(7, "backupfilestestTemp.fa_BACKUPTEST-00000007");
- correctindexmap.put(8, "backupfilestestTemp.fa_BACKUPTEST-00000008");
- correctindexmap.put(9, "backupfilestestTemp.fa_BACKUPTEST-00000009");
- correctindexmap.put(10, "backupfilestestTemp.fa_BACKUPTEST-00000010");
- HashMap wrongindexmap = new HashMap();
+ HashMap correctindexmap = new HashMap<>();
+ correctindexmap.put(1, "backupfilestestTemp.fa_BACKUPTEST-000001");
+ correctindexmap.put(2, "backupfilestestTemp.fa_BACKUPTEST-000002");
+ correctindexmap.put(3, "backupfilestestTemp.fa_BACKUPTEST-000003");
+ correctindexmap.put(4, "backupfilestestTemp.fa_BACKUPTEST-000004");
+ correctindexmap.put(5, "backupfilestestTemp.fa_BACKUPTEST-000005");
+ correctindexmap.put(6, "backupfilestestTemp.fa_BACKUPTEST-000006");
+ correctindexmap.put(7, "backupfilestestTemp.fa_BACKUPTEST-000007");
+ correctindexmap.put(8, "backupfilestestTemp.fa_BACKUPTEST-000008");
+ correctindexmap.put(9, "backupfilestestTemp.fa_BACKUPTEST-000009");
+ correctindexmap.put(10, "backupfilestestTemp.fa_BACKUPTEST-000010");
+ HashMap wrongindexmap = new HashMap<>();
wrongindexmap.put(1, "backupfilestestTemp.fa_BACKUPTEST-1");
- wrongindexmap.put(2, "backupfilestestTemp.fa_BACKUPTEST-00000002");
- wrongindexmap.put(3, "backupfilestestTemp.fa_BACKUPTEST-00000003");
- wrongindexmap.put(4, "backupfilestestTemp.fa_BACKUPTEST-00000004");
- wrongindexmap.put(5, "backupfilestestTemp.fa_BACKUPTEST-00000005");
- wrongindexmap.put(6, "backupfilestestTemp.fa_BACKUPTEST-00000006");
- wrongindexmap.put(7, "backupfilestestTemp.fa_BACKUPTEST-00000007");
- wrongindexmap.put(8, "backupfilestestTemp.fa_BACKUPTEST-00000008");
- wrongindexmap.put(9, "backupfilestestTemp.fa_BACKUPTEST-00000009");
- wrongindexmap.put(10, "backupfilestestTemp.fa_BACKUPTEST-00000010");
+ wrongindexmap.put(2, "backupfilestestTemp.fa_BACKUPTEST-000002");
+ wrongindexmap.put(3, "backupfilestestTemp.fa_BACKUPTEST-000003");
+ wrongindexmap.put(4, "backupfilestestTemp.fa_BACKUPTEST-000004");
+ wrongindexmap.put(5, "backupfilestestTemp.fa_BACKUPTEST-000005");
+ wrongindexmap.put(6, "backupfilestestTemp.fa_BACKUPTEST-000006");
+ wrongindexmap.put(7, "backupfilestestTemp.fa_BACKUPTEST-000007");
+ wrongindexmap.put(8, "backupfilestestTemp.fa_BACKUPTEST-000008");
+ wrongindexmap.put(9, "backupfilestestTemp.fa_BACKUPTEST-000009");
+ wrongindexmap.put(10, "backupfilestestTemp.fa_BACKUPTEST-000010");
int[] indexes2 = { 3, 4, 5, 6, 7, 8, 9, 10 };
int[] indexes3 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
Assert.assertTrue(checkBackupFiles(correctindexmap));
@@ -158,9 +206,9 @@ public class BackupFilesTest
// check there are "rollMax" backup files and they are all saved correctly
// check 10 backup files
- HashMap correctindexmap = new HashMap();
- correctindexmap.put(9, "backupfilestestTemp.fa_BACKUPTEST-00000009");
- correctindexmap.put(10, "backupfilestestTemp.fa_BACKUPTEST-00000010");
+ HashMap correctindexmap = new HashMap<>();
+ correctindexmap.put(9, "backupfilestestTemp.fa_BACKUPTEST-000009");
+ correctindexmap.put(10, "backupfilestestTemp.fa_BACKUPTEST-000010");
int[] indexes2 = { 10 };
int[] indexes3 = { 8, 9, 10 };
Assert.assertTrue(checkBackupFiles(correctindexmap));
@@ -189,9 +237,9 @@ public class BackupFilesTest
// check there are "rollMax" backup files and they are all saved correctly
// check 10 backup files
- HashMap correctindexmap = new HashMap();
- correctindexmap.put(1, "backupfilestestTemp.fa_BACKUPTEST-00000001");
- correctindexmap.put(2, "backupfilestestTemp.fa_BACKUPTEST-00000002");
+ HashMap correctindexmap = new HashMap<>();
+ correctindexmap.put(1, "backupfilestestTemp.fa_BACKUPTEST-000001");
+ correctindexmap.put(2, "backupfilestestTemp.fa_BACKUPTEST-000002");
int[] indexes2 = { 1 };
int[] indexes3 = { 1, 2, 3 };
Assert.assertTrue(checkBackupFiles(correctindexmap));
@@ -207,10 +255,24 @@ public class BackupFilesTest
private void setBackupFilesOptions(boolean enabled, boolean reverse,
boolean noMax)
{
- Cache.loadProperties("test/jalview/io/testProps.jvprops");
+ BackupFilesPresetEntry bfpe = new BackupFilesPresetEntry(suffix, digits,
+ reverse, noMax, rollMax, false);
+ setBackupFilesOptions(enabled, reverse, noMax,
+ "test/jalview/io/testProps.jvprops", bfpe);
+ }
+
+ private void setBackupFilesOptions(boolean enabled, boolean reverse,
+ boolean noMax, String propsFile, BackupFilesPresetEntry bfpe)
+ {
+ Cache.loadProperties(propsFile);
Cache.applicationProperties.setProperty(BackupFiles.ENABLED,
Boolean.toString(enabled));
+ Cache.applicationProperties.setProperty(
+ BackupFilesPresetEntry.SAVEDCONFIG, bfpe.toString());
+ /*
+ Cache.applicationProperties.setProperty(BackupFiles.ENABLED,
+ Boolean.toString(enabled));
Cache.applicationProperties.setProperty(BackupFiles.SUFFIX, suffix);
Cache.applicationProperties.setProperty(BackupFiles.SUFFIX_DIGITS,
Integer.toString(digits));
@@ -222,13 +284,14 @@ public class BackupFilesTest
Integer.toString(rollMax));
Cache.applicationProperties.setProperty(BackupFiles.CONFIRM_DELETE_OLD,
"false");
+ */
}
private void save()
{
if (af != null)
{
- af.saveAlignment(newFile, jalview.io.FileFormat.Fasta);
+ af.saveAlignment(newFile, jalview.io.FileFormat.Fasta);
}
}
@@ -267,12 +330,18 @@ public class BackupFilesTest
@AfterClass(alwaysRun = true)
private void cleanupTmpFiles()
{
- File newfile = new File(newFile);
+ cleanupTmpFiles(newFile, suffix, digits);
+ }
+
+ protected static void cleanupTmpFiles(String file, String mysuffix,
+ int mydigits)
+ {
+ File newfile = new File(file);
if (newfile.exists())
{
newfile.delete();
}
- File[] tmpFiles = getBackupFiles(newFile, suffix, digits);
+ File[] tmpFiles = getBackupFiles(file, mysuffix, mydigits);
for (int i = 0; i < tmpFiles.length; i++)
{
if (actuallyDeleteTmpFiles)
@@ -288,8 +357,8 @@ public class BackupFilesTest
private static File[] getBackupFiles(String f, String s, int i)
{
- TreeMap bfTreeMap = BackupFiles.getBackupFilesAsTreeMap(f,
- s, i);
+ TreeMap bfTreeMap = BackupFiles
+ .getBackupFilesAsTreeMap(f, s, i);
File[] backupFiles = new File[bfTreeMap.size()];
bfTreeMap.values().toArray(backupFiles);
return backupFiles;
@@ -303,8 +372,14 @@ public class BackupFilesTest
private static boolean checkBackupFiles(HashMap indexmap)
throws IOException
{
- TreeMap map = BackupFiles.getBackupFilesAsTreeMap(newFile,
- suffix, digits);
+ return checkBackupFiles(indexmap, newFile, suffix, digits);
+ }
+
+ private static boolean checkBackupFiles(HashMap indexmap,
+ String file, String mysuffix, int mydigits) throws IOException
+ {
+ TreeMap map = BackupFiles.getBackupFilesAsTreeMap(file,
+ mysuffix, mydigits);
Enumeration indexesenum = Collections
.enumeration(indexmap.keySet());
while (indexesenum.hasMoreElements())
@@ -341,8 +416,8 @@ public class BackupFilesTest
private static boolean checkBackupFiles(int[] indexes) throws IOException
{
- TreeMap map = BackupFiles.getBackupFilesAsTreeMap(newFile,
- suffix, digits);
+ TreeMap map = BackupFiles
+ .getBackupFilesAsTreeMap(newFile, suffix, digits);
for (int m = 0; m < indexes.length; m++)
{
int i = indexes[m];
@@ -360,8 +435,9 @@ public class BackupFilesTest
{
return false;
}
- // check the filename -- although this uses the same code to forumulate the filename so not much of a test!
- String filename = BackupFilenameFilter.getBackupFilename(i,
+ // check the filename -- although this uses the same code to forumulate
+ // the filename so not much of a test!
+ String filename = BackupFilenameParts.getBackupFilename(i,
newBasename + testExt, suffix, digits);
if (!filename.equals(f.getName()))
{
@@ -390,10 +466,14 @@ public class BackupFilesTest
return filenames;
}
- public static boolean sequencesEqual(SequenceI s1, SequenceI s2) {
- if (s1 == null && s2 == null) {
+ public static boolean sequencesEqual(SequenceI s1, SequenceI s2)
+ {
+ if (s1 == null && s2 == null)
+ {
return true;
- } else if (s1 == null || s2 == null) {
+ }
+ else if (s1 == null || s2 == null)
+ {
return false;
}
return (s1.getName().equals(s2.getName())