JAL-1925 update source version in license
[jalview.git] / test / jalview / io / JSONFileTest.java
index 108dd31..6099e68 100644 (file)
@@ -1,6 +1,25 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b2)
+ * Copyright (C) 2015 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 <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.io;
 
-
 import static org.testng.AssertJUnit.assertNotNull;
 
 import jalview.api.AlignExportSettingI;
@@ -14,8 +33,8 @@ import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignFrame;
+import jalview.json.binding.biojson.v1.ColourSchemeMapper;
 import jalview.schemes.ColourSchemeI;
-import jalview.schemes.ZappoColourScheme;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -62,7 +81,7 @@ public class JSONFileTest
 
   private JSONFile jf;
 
-  @BeforeTest
+  @BeforeTest(alwaysRun = true)
   public void setup() throws Exception
   {
     // create and add sequences
@@ -93,7 +112,6 @@ public class JSONFileTest
     seqs[3].addSequenceFeature(seqFeature3);
     seqs[4].addSequenceFeature(seqFeature4);
 
-
     for (Sequence seq : seqs)
     {
       seq.setDatasetSequence(seq);
@@ -106,9 +124,11 @@ public class JSONFileTest
     grpSeqs.add(seqs[2]);
     grpSeqs.add(seqs[3]);
     grpSeqs.add(seqs[4]);
-    ColourSchemeI scheme = JSONFile.getJalviewColorScheme("zappo");
     SequenceGroup seqGrp = new SequenceGroup(grpSeqs, "JGroup:1883305585",
-            scheme, true, true, false, 21, 29);
+            null, true, true, false, 21, 29);
+    ColourSchemeI scheme = ColourSchemeMapper.getJalviewColourScheme(
+            "zappo", seqGrp);
+    seqGrp.cs = scheme;
     seqGrp.setShowNonconserved(false);
     seqGrp.setDescription(null);
 
@@ -195,6 +215,12 @@ public class JSONFileTest
       {
         return true;
       }
+
+      @Override
+      public boolean isCancelled()
+      {
+        return false;
+      }
     };
 
     AppletFormatAdapter formatAdapter = new AppletFormatAdapter();
@@ -208,10 +234,12 @@ public class JSONFileTest
               jf.getColumnSelection(), AlignFrame.DEFAULT_WIDTH,
               AlignFrame.DEFAULT_HEIGHT);
       af.getViewport().setShowSequenceFeatures(jf.isShowSeqFeatures());
-      af.changeColour(jf.getColourScheme());
+      String colourSchemeName = jf.getGlobalColourScheme();
+      ColourSchemeI cs = ColourSchemeMapper.getJalviewColourScheme(
+              colourSchemeName, alignment);
+      af.changeColour(cs);
       af.getViewport().setFeaturesDisplayed(jf.getDisplayedFeatures());
 
-
       formatAdapter = new AppletFormatAdapter(af.alignPanel, exportSettings);
       String jsonOutput = formatAdapter.formatSequences(JSONFile.FILE_DESC,
               af.alignPanel.getAlignment(), false);
@@ -228,7 +256,7 @@ public class JSONFileTest
 
   }
 
-  @BeforeMethod
+  @BeforeMethod(alwaysRun = true)
   public void methodSetup()
   {
     passedCount = 0;
@@ -246,13 +274,13 @@ public class JSONFileTest
     jf = null;
   }
 
-  @Test(groups ={ "Functional" })
+  @Test(groups = { "Functional" })
   public void roundTripTest()
   {
     assertNotNull("JSON roundtrip test failed!", testJsonFile);
   }
 
-  @Test(groups ={ "Functional" })
+  @Test(groups = { "Functional" })
   public void testSeqParsed()
   {
     assertNotNull("Couldn't read supplied alignment data.", testAlignment);
@@ -268,8 +296,8 @@ public class JSONFileTest
     AssertJUnit.assertEquals("Some Sequences did not pass the test",
             TEST_SEQ_HEIGHT, passedCount);
   }
-  
-  @Test(groups ={ "Functional" })
+
+  @Test(groups = { "Functional" })
   public void hiddenColsTest()
   {
     ColumnSelection cs = testJsonFile.getColumnSelection();
@@ -281,33 +309,31 @@ public class JSONFileTest
             "Mismatched hidden columns!");
   }
 
-  @Test(groups ={ "Functional" })
+  @Test(groups = { "Functional" })
   public void hiddenSeqsTest()
   {
     Assert.assertNotNull(testJsonFile.getHiddenSequences(),
             "Hidden sequence Expected but found Null");
-    Assert.assertEquals(jf.getHiddenSequences().length, 1,
-            "Hidden sequece");
+    Assert.assertEquals(jf.getHiddenSequences().length, 1, "Hidden sequece");
   }
 
-  @Test(groups ={ "Functional" })
+  @Test(groups = { "Functional" })
   public void colorSchemeTest()
   {
-    Assert.assertNotNull(testJsonFile.getColourScheme(),
+    Assert.assertNotNull(testJsonFile.getGlobalColourScheme(),
             "Colourscheme is null, parsing failed!");
-    Assert.assertTrue(
-            testJsonFile.getColourScheme() instanceof ZappoColourScheme,
+    Assert.assertEquals(testJsonFile.getGlobalColourScheme(), "Zappo",
             "Zappo colour scheme expected!");
   }
 
-  @Test(groups ={ "Functional" })
+  @Test(groups = { "Functional" })
   public void isShowSeqFeaturesSet()
   {
     Assert.assertTrue(testJsonFile.isShowSeqFeatures(),
             "Sequence feature isDisplayed setting expected to be true");
   }
 
-  @Test(groups ={ "Functional" })
+  @Test(groups = { "Functional" })
   public void testGrpParsed()
   {
     Assert.assertNotNull(testAlignment.getGroups());
@@ -323,7 +349,7 @@ public class JSONFileTest
             TEST_GRP_HEIGHT, passedCount);
   }
 
-  @Test(groups ={ "Functional" })
+  @Test(groups = { "Functional" })
   public void testAnnotationParsed()
   {
     Assert.assertNotNull(testAlignment.getAlignmentAnnotation());
@@ -397,13 +423,14 @@ public class JSONFileTest
             + actualGrp.getStartRes());
     System.out.println(expectedGrp.getEndRes() + " | "
             + actualGrp.getEndRes());
+    System.out.println(expectedGrp.cs + " | " + actualGrp.cs);
 
     if (expectedGrp.getName().equals(actualGrp.getName())
             && expectedGrp.getColourText() == actualGrp.getColourText()
             && expectedGrp.getDisplayBoxes() == actualGrp.getDisplayBoxes()
             && expectedGrp.getIgnoreGapsConsensus() == actualGrp
                     .getIgnoreGapsConsensus()
-            && expectedGrp.cs.equals(actualGrp.cs)
+            && (expectedGrp.cs.getClass().equals(actualGrp.cs.getClass()))
             && expectedGrp.getSequences().size() == actualGrp
                     .getSequences().size()
             && expectedGrp.getStartRes() == actualGrp.getStartRes()