X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=test%2Fjalview%2Fio%2FJSONFileTest.java;h=2aff5ccd88dccc92e1978ac41cf0e54e116a00f8;hb=refs%2Fheads%2Fbug%2FJAL-2034contextchange;hp=c98e99e88ee84814362f9d12c35cea4e4986e8e2;hpb=169e40289232178ce2b1a379212c17ff69e3654c;p=jalview.git diff --git a/test/jalview/io/JSONFileTest.java b/test/jalview/io/JSONFileTest.java index c98e99e..2aff5cc 100644 --- a/test/jalview/io/JSONFileTest.java +++ b/test/jalview/io/JSONFileTest.java @@ -27,7 +27,7 @@ import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; import jalview.datamodel.Annotation; -import jalview.datamodel.ColumnSelection; +import jalview.datamodel.HiddenColumns; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceGroup; @@ -79,7 +79,7 @@ public class JSONFileTest private HashMap expectedGrps = new HashMap(); - private ColumnSelection expectedColSel = new ColumnSelection(); + private HiddenColumns expectedColSel = new HiddenColumns(); private SequenceI[] expectedHiddenSeqs = new SequenceI[1]; @@ -130,13 +130,14 @@ public class JSONFileTest expectedSeqs.put(seq.getName(), seq); } - // create and add sequence groups - ArrayList grpSeqs = new ArrayList(); + // create and add a sequence group + List grpSeqs = new ArrayList(); grpSeqs.add(seqs[1]); grpSeqs.add(seqs[2]); grpSeqs.add(seqs[3]); grpSeqs.add(seqs[4]); - SequenceGroup seqGrp = new SequenceGroup(grpSeqs, "JGroup:1883305585", + SequenceGroup seqGrp = new SequenceGroup(grpSeqs, + "JGroup:1883305585", null, true, true, false, 21, 29); ColourSchemeI scheme = ColourSchemeMapper.getJalviewColourScheme( "zappo", seqGrp); @@ -194,7 +195,7 @@ public class JSONFileTest TEST_SEQ_HEIGHT = expectedSeqs.size(); TEST_GRP_HEIGHT = expectedGrps.size(); TEST_ANOT_HEIGHT = expectedAnnots.size(); - TEST_CS_HEIGHT = expectedColSel.getHiddenColumns().size(); + TEST_CS_HEIGHT = expectedColSel.getHiddenRegions().size(); exportSettings = new AlignExportSettingI() { @@ -243,7 +244,7 @@ public class JSONFileTest jf = (JSONFile) formatAdapter.getAlignFile(); AlignFrame af = new AlignFrame(alignment, jf.getHiddenSequences(), - jf.getColumnSelection(), AlignFrame.DEFAULT_WIDTH, + jf.getHiddenColumns(), AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT); af.getViewport().setShowSequenceFeatures(jf.isShowSeqFeatures()); String colourSchemeName = jf.getGlobalColourScheme(); @@ -312,13 +313,13 @@ public class JSONFileTest @Test(groups = { "Functional" }) public void hiddenColsTest() { - ColumnSelection cs = testJsonFile.getColumnSelection(); + HiddenColumns cs = testJsonFile.getHiddenColumns(); Assert.assertNotNull(cs); - Assert.assertNotNull(cs.getHiddenColumns()); - List hiddenCols = cs.getHiddenColumns(); + Assert.assertNotNull(cs.getHiddenRegions()); + List hiddenCols = cs.getHiddenRegions(); Assert.assertEquals(hiddenCols.size(), TEST_CS_HEIGHT); Assert.assertEquals(hiddenCols.get(0), expectedColSel - .getHiddenColumns().get(0), + .getHiddenRegions().get(0), "Mismatched hidden columns!"); } @@ -340,11 +341,12 @@ public class JSONFileTest "Zappo colour scheme expected!"); } - @Test(groups = { "Functional" }) /** - * Test for bug JAL-2489, NPE when exporting BioJSON with global colour scheme set as Null + * Test for bug JAL-2489, NPE when exporting BioJSON with global colour + * scheme, and a group colour scheme, set as 'None' */ - public void testBioJSONRoundTripWithGlobalColourSchemeSetAsNone() + @Test(groups = { "Functional" }) + public void testBioJSONRoundTripWithColourSchemeNone() { AppletFormatAdapter formatAdapter = new AppletFormatAdapter(); @@ -357,9 +359,16 @@ public class JSONFileTest JSONFile bioJsonFile = (JSONFile) formatAdapter.getAlignFile(); AlignFrame alignFrame = new AlignFrame(_alignment, bioJsonFile.getHiddenSequences(), - bioJsonFile.getColumnSelection(), AlignFrame.DEFAULT_WIDTH, + bioJsonFile.getHiddenColumns(), AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT); - // Change colour scheme to 'None' and perform round trip + + /* + * 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); @@ -556,4 +565,47 @@ public class JSONFileTest // System.out.println(">>>>>>>>>>>>>> features matched : " + matched); return matched; } + + /** + * Test group roundtrip with null (None) group colour scheme + * + * @throws IOException + */ + @Test(groups = { "Functional" }) + public void testGrpParsed_colourNone() throws IOException + { + AlignmentI copy = new Alignment(testAlignment); + SequenceGroup sg = testAlignment.getGroups().get(0); + SequenceGroup copySg = new SequenceGroup(new ArrayList(), + sg.getName(), + null, sg.getDisplayBoxes(), sg.getDisplayText(), + sg.getColourText(), sg.getStartRes(), sg.getEndRes()); + for (SequenceI seq : sg.getSequences()) + { + int seqIndex = testAlignment.findIndex(seq); + copySg.addSequence(copy.getSequenceAt(seqIndex), false); + } + copy.addGroup(copySg); + + AlignFrame af = new AlignFrame(copy, copy.getWidth(), copy.getHeight()); + AppletFormatAdapter formatAdapter = new AppletFormatAdapter( + af.alignPanel); + String jsonOutput = formatAdapter.formatSequences(FileFormat.Json, + copy, false); + formatAdapter = new AppletFormatAdapter(); + AlignmentI newAlignment = formatAdapter.readFile(jsonOutput, + DataSourceType.PASTE, FileFormat.Json); + + Assert.assertNotNull(newAlignment.getGroups()); + for (SequenceGroup seqGrp : newAlignment.getGroups()) + { + SequenceGroup expectedGrp = expectedGrps.get(seqGrp.getName()); + AssertJUnit.assertTrue( + "Failed SequenceGroup Test for >>> " + seqGrp.getName(), + isGroupMatched(expectedGrp, seqGrp)); + passedCount++; + } + AssertJUnit.assertEquals("Some SequenceGroups did not pass the test", + TEST_GRP_HEIGHT, passedCount); + } }