+ @Test(groups = { "Functional" })
+ public void hiddenColsTest()
+ {
+ HiddenColumns cs = testJsonFile.getHiddenColumns();
+ Assert.assertNotNull(cs);
+
+ Iterator<int[]> it = cs.iterator();
+ Iterator<int[]> colselit = expectedColSel.iterator();
+ Assert.assertTrue(it.hasNext());
+ Assert.assertEquals(cs.getNumberOfRegions(), TEST_CS_HEIGHT);
+ Assert.assertEquals(it.next(), colselit.next(),
+ "Mismatched hidden columns!");
+ }
+
+ @Test(groups = { "Functional" })
+ public void hiddenSeqsTest()
+ {
+ Assert.assertNotNull(testJsonFile.getHiddenSequences(),
+ "Hidden sequence Expected but found Null");
+ Assert.assertEquals(jf.getHiddenSequences().length, 1,
+ "Hidden sequence");
+ }
+
+ @Test(groups = { "Functional" })
+ public void colorSchemeTest()
+ {
+ Assert.assertNotNull(testJsonFile.getGlobalColourScheme(),
+ "Colourscheme is null, parsing failed!");
+ Assert.assertEquals(testJsonFile.getGlobalColourScheme(), "Zappo",
+ "Zappo colour scheme expected!");
+ }
+
+ /**
+ * Test for bug JAL-2489, NPE when exporting BioJSON with global colour
+ * scheme, and a group colour scheme, set as 'None'
+ */
+ @Test(groups = { "Functional" })
+ public void testBioJSONRoundTripWithColourSchemeNone()
+ {
+ AppletFormatAdapter formatAdapter = new AppletFormatAdapter();
+
+ Alignment _alignment;
+ try
+ {
+ // load example BioJSON file
+ _alignment = (Alignment) formatAdapter.readFile(TEST_JSON_FILE,
+ DataSourceType.FILE, FileFormat.Json);
+ JSONFile bioJsonFile = (JSONFile) formatAdapter.getAlignFile();
+ AlignFrame alignFrame = new AlignFrame(_alignment,
+ bioJsonFile.getHiddenSequences(),
+ bioJsonFile.getHiddenColumns(), AlignFrame.DEFAULT_WIDTH,
+ AlignFrame.DEFAULT_HEIGHT);
+
+ /*
+ * Create a group on the alignment;
+ * Change global and group colour scheme to 'None' and perform round trip
+ */
+ SequenceGroup sg = new SequenceGroup();
+ sg.addSequence(_alignment.getSequenceAt(0), false);
+ sg.setColourScheme(null);
+ ColourSchemeI cs = ColourSchemeMapper
+ .getJalviewColourScheme(ResidueColourScheme.NONE, _alignment);
+ alignFrame.changeColour(cs);
+ alignFrame.getViewport()
+ .setFeaturesDisplayed(bioJsonFile.getDisplayedFeatures());
+ formatAdapter = new AppletFormatAdapter(alignFrame.alignPanel,
+ exportSettings);
+ // export BioJSON string
+ String jsonOutput = formatAdapter.formatSequences(FileFormat.Json,
+ alignFrame.alignPanel.getAlignment(), false);
+ // read back Alignment from BioJSON string
+ formatAdapter = new AppletFormatAdapter();
+ formatAdapter.readFile(jsonOutput, DataSourceType.PASTE,
+ FileFormat.Json);
+ // assert 'None' colour scheme is retained after round trip
+ JSONFile _bioJsonFile = (JSONFile) formatAdapter.getAlignFile();
+ Assert.assertEquals(_bioJsonFile.getGlobalColourScheme(),
+ ResidueColourScheme.NONE);
+ } catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ @Test(groups = { "Functional" })
+ public void isShowSeqFeaturesSet()
+ {
+ Assert.assertTrue(testJsonFile.isShowSeqFeatures(),
+ "Sequence feature isDisplayed setting expected to be true");
+ }
+
+ @Test(groups = { "Functional" })
+ public void testGrpParsed()
+ {
+ Assert.assertNotNull(testAlignment.getGroups());
+ for (SequenceGroup seqGrp : testAlignment.getGroups())