X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2FJSONFileTest.java;h=e046d94792e09b10fa8844f0c67f278ad6ca0098;hb=6b90cce63b09fca914a35d49a1b6883664e48a29;hp=108122306f535708aa0c56d9c067471b7ac308ec;hpb=bd2190024b6988cc7a371e932ef5c46de0d9df3b;p=jalview.git diff --git a/test/jalview/io/JSONFileTest.java b/test/jalview/io/JSONFileTest.java index 1081223..e046d94 100644 --- a/test/jalview/io/JSONFileTest.java +++ b/test/jalview/io/JSONFileTest.java @@ -73,11 +73,11 @@ public class JSONFileTest private Alignment alignment; - private HashMap expectedSeqs = new HashMap(); + private HashMap expectedSeqs = new HashMap<>(); - private HashMap expectedAnnots = new HashMap(); + private HashMap expectedAnnots = new HashMap<>(); - private HashMap expectedGrps = new HashMap(); + private HashMap expectedGrps = new HashMap<>(); private HiddenColumns expectedColSel = new HiddenColumns(); @@ -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.getHiddenRegions().size(); + TEST_CS_HEIGHT = expectedColSel.getHiddenColumnsCopy().size(); exportSettings = new AlignExportSettingI() { @@ -314,11 +315,11 @@ public class JSONFileTest { HiddenColumns cs = testJsonFile.getHiddenColumns(); Assert.assertNotNull(cs); - Assert.assertNotNull(cs.getHiddenRegions()); - List hiddenCols = cs.getHiddenRegions(); + Assert.assertNotNull(cs.getHiddenColumnsCopy()); + List hiddenCols = cs.getHiddenColumnsCopy(); Assert.assertEquals(hiddenCols.size(), TEST_CS_HEIGHT); Assert.assertEquals(hiddenCols.get(0), expectedColSel - .getHiddenRegions().get(0), + .getHiddenColumnsCopy().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 'None' + * 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); + } }