JAL-629 Changed --newframe and --allframes to --new and --all. More consistent -...
[jalview.git] / test / jalview / bin / argparser / ArgParserTest.java
index b724af0..17f19b7 100644 (file)
@@ -7,10 +7,12 @@ import java.util.Properties;
 
 import org.testng.Assert;
 import org.testng.annotations.AfterClass;
+import org.testng.annotations.AfterMethod;
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
 import jalview.bin.Cache;
+import jalview.gui.Desktop;
 
 @Test(singleThreaded = true)
 public class ArgParserTest
@@ -21,6 +23,13 @@ public class ArgParserTest
     Cache.loadProperties("test/jalview/testProps.jvprops");
   }
 
+  @AfterMethod(alwaysRun = true)
+  public void tearDown()
+  {
+    if (Desktop.instance != null)
+      Desktop.instance.closeAll_actionPerformed(null);
+  }
+
   @Test(groups = "Functional", dataProvider = "argLines")
   public void parseArgsTest(String commandLineArgs, Arg a, String other)
   {
@@ -35,7 +44,7 @@ public class ArgParserTest
   {
     String[] args = commandLineArgs.split("\\s+");
     ArgParser argparser = new ArgParser(args);
-    ArgValuesMap avm = argparser.linkedArgs(linkedId);
+    ArgValuesMap avm = argparser.getLinkedArgs(linkedId);
     ArgValue av = avm.getArgValue(a);
     SubVals sv = av.getSubVals();
     String testString = null;
@@ -63,11 +72,11 @@ public class ArgParserTest
   public void parseAutoIndexAndSubstitutionsTest(String commandLineArgs,
           String linkedId, Arg a, String filename)
   {
-    // { "--append=filename0 --newframe --append=filename1", "JALVIEW:1",
+    // { "--append=filename0 --new --append=filename1", "JALVIEW:1",
     // Arg.OPEN, "filename1" },
     String[] args = commandLineArgs.split("\\s+");
     ArgParser argparser = new ArgParser(args);
-    ArgValuesMap avm = argparser.linkedArgs(linkedId);
+    ArgValuesMap avm = argparser.getLinkedArgs(linkedId);
     ArgValue av = avm.getArgValue(a);
     Assert.assertEquals(av.getValue(), filename);
   }
@@ -201,12 +210,12 @@ public class ArgParserTest
          */
         { "--append=filename0 --append=filename1", "JALVIEW:0", Arg.APPEND,
             "filename0" },
-        { "--append=filename0 --newframe --append=filename1", "JALVIEW:1",
+        { "--append=filename0 --new --append=filename1", "JALVIEW:1",
             Arg.APPEND, "filename1" },
-        { "--append=filename0 --newframe --newframe --append=filename2",
-            "JALVIEW:0", Arg.APPEND, "filename0" },
-        { "--append=filename0 --newframe --newframe --append=filename2",
-            "JALVIEW:2", Arg.APPEND, "filename2" },
+        { "--append=filename0 --new --new --append=filename2", "JALVIEW:0",
+            Arg.APPEND, "filename0" },
+        { "--append=filename0 --new --new --append=filename2", "JALVIEW:2",
+            Arg.APPEND, "filename2" },
         { "--append[linkA-{n}]=filenameA0 --append[linkA-{++n}]=filenameA1",
             "linkA-0", Arg.APPEND, "filenameA0" },
         { "--append[linkB-{n}]=filenameB0 --append[linkB-{++n}]=filenameB1",
@@ -223,14 +232,14 @@ public class ArgParserTest
             "linkG-1", Arg.IMAGE, "outputG{n}.txt" },
         { "--append[linkH-{n}]=filenameH0 --substitutions --image[linkH-{n}]=output-H{n}.txt --nil[{++n}] --nosubstitutions --image[linkH-{n}]=outputH{n}.txt",
             "linkH-0", Arg.IMAGE, "output-H0.txt" },
-        { "--open=filename0 --append=filename1", "JALVIEW:1", Arg.OPEN,
+        { "--open=filename0 --append=filename1", "JALVIEW:0", Arg.OPEN,
             "filename0" },
-        { "--open=filename0 --newframe --append=filename1", "JALVIEW:2",
+        { "--open=filename0 --new --append=filename1", "JALVIEW:1",
             Arg.APPEND, "filename1" },
-        { "--open=filename0 --newframe --newframe --append=filename2",
-            "JALVIEW:1", Arg.OPEN, "filename0" },
-        { "--open=filename0 --newframe --newframe --append=filename2",
-            "JALVIEW:3", Arg.APPEND, "filename2" },
+        { "--open=filename0 --new --new --append=filename2", "JALVIEW:0",
+            Arg.OPEN, "filename0" },
+        { "--open=filename0 --new --new --append=filename2", "JALVIEW:2",
+            Arg.APPEND, "filename2" },
         { "--open[linkA-{n}]=filenameA0 --append[linkA-{++n}]=filenameA1",
             "linkA-0", Arg.OPEN, "filenameA0" },
         { "--open[linkB-{n}]=filenameB0 --append[linkB-{++n}]=filenameB1",
@@ -247,6 +256,8 @@ public class ArgParserTest
             "linkG-1", Arg.IMAGE, "outputG{n}.txt" },
         { "--open[linkH-{n}]=filenameH0 --substitutions --image[linkH-{n}]=output-H{n}.txt --nil[{++n}] --nosubstitutions --image[linkH-{n}]=outputH{n}.txt",
             "linkH-0", Arg.IMAGE, "output-H0.txt" },
+        /*
+         */
 
         //
     };
@@ -259,4 +270,65 @@ public class ArgParserTest
         "--argfile=test/jalview/bin/argparser/testfiles/argfile0.txt --open=shouldntbeabootstrap",
         Arg.ARGFILE, "test/jalview/bin/argfiles/testfiles/test1.fa" } };
   }
+
+  @Test(groups = "Functional", dataProvider = "allLinkedIdsData")
+  public void allLinkedIdsTest(String commandLineArgs, Arg a,
+          String[] values)
+  {
+    String[] args = commandLineArgs.split("\\s+");
+    ArgParser argparser = new ArgParser(args);
+
+    int num = values.length;
+    List<String> linkedIds = argparser.getLinkedIds();
+    Assert.assertEquals(linkedIds.size(), num,
+            "Wrong number of linkedIds: " + linkedIds.toString());
+    for (int i = 0; i < num; i++)
+    {
+      String value = values[i];
+      String linkedId = linkedIds.get(i);
+      ArgValuesMap avm = argparser.getLinkedArgs(linkedId);
+      if (value == null)
+      {
+        Assert.assertTrue(avm.containsArg(a),
+                "Arg value for " + a.argString()
+                        + " not applied correctly to linkedId '" + linkedId
+                        + "'");
+      }
+      else
+      {
+        ArgValues avs = avm.getArgValues(a);
+        ArgValue av = avs.getArgValue();
+        String v = av.getValue();
+        value = new File(value).getAbsolutePath();
+        Assert.assertEquals(v, value, "Arg value for " + a.argString()
+                + " not applied correctly to linkedId '" + linkedId + "'");
+      }
+    }
+
+  }
+
+  @DataProvider(name = "allLinkedIdsData")
+  public Object[][] allLinkedIdsData()
+  {
+    return new Object[][] {
+        //
+        /*
+        */
+        { "--open=test/jalview/bin/argparser/testfiles/*.fa --substitutions --all --image={dirname}/{basename}.png --close",
+            Arg.CLOSE, new String[]
+            { null, null,
+                null } },
+        { "--open=test/jalview/bin/argparser/testfiles/*.fa --substitutions --all --output={dirname}/{basename}.stk --close",
+            Arg.OUTPUT, new String[]
+            { "test/jalview/bin/argparser/testfiles/test1.stk",
+                "test/jalview/bin/argparser/testfiles/test2.stk",
+                "test/jalview/bin/argparser/testfiles/test3.stk", } },
+        { "--open=test/jalview/bin/argparser/testfiles/*.fa --substitutions --all --image={dirname}/{basename}.png --close",
+            Arg.IMAGE, new String[]
+            { "test/jalview/bin/argparser/testfiles/test1.png",
+                "test/jalview/bin/argparser/testfiles/test2.png",
+                "test/jalview/bin/argparser/testfiles/test3.png", } },
+        //
+    };
+  }
 }