import jalview.api.AlignViewportI;
import jalview.api.AlignmentViewPanel;
import jalview.api.ViewStyleI;
-import jalview.bin.Cache;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.HiddenSequences;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.PDBEntry.Type;
import jalview.datamodel.SequenceCollectionI;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
+import jalview.gui.AlignmentPanel;
import jalview.gui.Desktop;
import jalview.gui.Jalview2XML;
+import jalview.gui.JvOptionPane;
import jalview.schemes.AnnotationColourGradient;
import jalview.schemes.ColourSchemeI;
+import jalview.schemes.ColourSchemeProperty;
+import jalview.schemes.JalviewColourScheme;
+import jalview.schemes.RNAHelicesColour;
+import jalview.schemes.TCoffeeColourScheme;
import jalview.structure.StructureImportSettings;
-import jalview.structure.StructureImportSettings.StructureParser;
import jalview.viewmodel.AlignmentViewport;
import java.io.File;
import org.testng.Assert;
import org.testng.AssertJUnit;
-import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@Test(singleThreaded = true)
-public class Jalview2xmlTests
+public class Jalview2xmlTests extends Jalview2xmlBase
{
- /**
- * @throws java.lang.Exception
- */
+ @Override
@BeforeClass(alwaysRun = true)
- public static void setUpBeforeClass() throws Exception
+ public void setUpJvOptionPane()
{
- jalview.bin.Jalview.main(new String[] { "-props",
- "test/jalview/io/testProps.jvprops" });
- }
-
- /**
- * @throws java.lang.Exception
- */
- @AfterClass(alwaysRun = true)
- public static void tearDownAfterClass() throws Exception
- {
- jalview.gui.Desktop.instance.closeAll_actionPerformed(null);
- }
-
- int countDsAnn(jalview.viewmodel.AlignmentViewport avp)
- {
- int numdsann = 0;
- for (SequenceI sq : avp.getAlignment().getDataset().getSequences())
- {
- if (sq.getAnnotation() != null)
- {
- for (AlignmentAnnotation dssa : sq.getAnnotation())
- {
- if (dssa.isValidStruc())
- {
- numdsann++;
- }
- }
- }
- }
- return numdsann;
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
}
@Test(groups = { "Functional" })
String inFile = "examples/RF00031_folded.stk";
String tfile = File.createTempFile("JalviewTest", ".jvp")
.getAbsolutePath();
- AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
- inFile, FormatAdapter.FILE);
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
+ inFile, DataSourceType.FILE);
assertTrue("Didn't read input file " + inFile, af != null);
int olddsann = countDsAnn(af.getViewport());
assertTrue("Didn't find any dataset annotations", olddsann > 0);
- af.rnahelicesColour_actionPerformed(null);
- assertTrue(
- "Couldn't apply RNA helices colourscheme",
- af.getViewport().getGlobalColourScheme() instanceof jalview.schemes.RNAHelicesColour);
+ af.changeColour_actionPerformed(JalviewColourScheme.RNAHelices
+ .toString());
+ assertTrue("Couldn't apply RNA helices colourscheme", af.getViewport()
+ .getGlobalColourScheme() instanceof RNAHelicesColour);
assertTrue("Failed to store as a project.",
- af.saveAlignment(tfile, "Jalview"));
+ af.saveAlignment(tfile, FileFormat.Jalview));
af.closeMenuItem_actionPerformed(true);
af = null;
- af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(tfile,
- FormatAdapter.FILE);
+ af = new FileLoader().LoadFileWaitTillLoaded(tfile, DataSourceType.FILE);
assertTrue("Failed to import new project", af != null);
int newdsann = countDsAnn(af.getViewport());
assertTrue(
+ olddsann + ")");
assertTrue(
"RNA helices colourscheme was not applied on import.",
- af.getViewport().getGlobalColourScheme() instanceof jalview.schemes.RNAHelicesColour);
+ af.getViewport().getGlobalColourScheme() instanceof RNAHelicesColour);
}
@Test(groups = { "Functional" })
String inFile = "examples/uniref50.fa", inAnnot = "examples/uniref50.score_ascii";
String tfile = File.createTempFile("JalviewTest", ".jvp")
.getAbsolutePath();
- AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
- inFile, FormatAdapter.FILE);
- assertTrue("Didn't read input file " + inFile, af != null);
- af.loadJalviewDataFile(inAnnot, FormatAdapter.FILE, null, null);
- assertTrue(
- "Didn't set T-coffee colourscheme",
- af.getViewport().getGlobalColourScheme().getClass()
- .equals(jalview.schemes.TCoffeeColourScheme.class));
- assertTrue(
- "Recognise T-Coffee score from string",
- jalview.schemes.ColourSchemeProperty.getColour(af.getViewport()
- .getAlignment(),
- jalview.schemes.ColourSchemeProperty.getColourName(af
- .getViewport().getGlobalColourScheme())) != null);
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
+ inFile, DataSourceType.FILE);
+ assertNotNull("Didn't read input file " + inFile, af);
+ af.loadJalviewDataFile(inAnnot, DataSourceType.FILE, null, null);
+ assertSame("Didn't set T-coffee colourscheme", af.getViewport()
+ .getGlobalColourScheme().getClass(), TCoffeeColourScheme.class);
+ assertNotNull("Recognise T-Coffee score from string",
+ ColourSchemeProperty.getColourScheme(af.getViewport()
+ .getAlignment(), af.getViewport()
+ .getGlobalColourScheme().getSchemeName()));
assertTrue("Failed to store as a project.",
- af.saveAlignment(tfile, "Jalview"));
+ af.saveAlignment(tfile, FileFormat.Jalview));
af.closeMenuItem_actionPerformed(true);
af = null;
- af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(tfile,
- FormatAdapter.FILE);
- assertTrue("Failed to import new project", af != null);
- assertTrue(
- "Didn't set T-coffee colourscheme for imported project.",
- af.getViewport().getGlobalColourScheme().getClass()
- .equals(jalview.schemes.TCoffeeColourScheme.class));
+ af = new FileLoader().LoadFileWaitTillLoaded(tfile,
+ DataSourceType.FILE);
+ assertNotNull("Failed to import new project", af);
+ assertSame("Didn't set T-coffee colourscheme for imported project.", af
+ .getViewport().getGlobalColourScheme().getClass(),
+ TCoffeeColourScheme.class);
System.out
.println("T-Coffee score shading successfully recovered from project.");
}
String inFile = "examples/uniref50.fa", inAnnot = "examples/testdata/uniref50_iupred.jva";
String tfile = File.createTempFile("JalviewTest", ".jvp")
.getAbsolutePath();
- AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
- inFile, FormatAdapter.FILE);
- assertTrue("Didn't read input file " + inFile, af != null);
- af.loadJalviewDataFile(inAnnot, FormatAdapter.FILE, null, null);
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(inFile, DataSourceType.FILE);
+ assertNotNull("Didn't read input file " + inFile, af);
+ af.loadJalviewDataFile(inAnnot, DataSourceType.FILE, null, null);
AlignmentAnnotation[] aa = af.getViewport().getAlignment()
.getSequenceAt(0).getAnnotation("IUPredWS (Short)");
assertTrue(
"Didn't find any IUPred annotation to use to shade alignment.",
aa != null && aa.length > 0);
- AnnotationColourGradient cs = new jalview.schemes.AnnotationColourGradient(
- aa[0], null, AnnotationColourGradient.ABOVE_THRESHOLD);
- AnnotationColourGradient gcs = new jalview.schemes.AnnotationColourGradient(
- aa[0], null, AnnotationColourGradient.BELOW_THRESHOLD);
+ AnnotationColourGradient cs = new AnnotationColourGradient(aa[0], null,
+ AnnotationColourGradient.ABOVE_THRESHOLD);
+ AnnotationColourGradient gcs = new AnnotationColourGradient(aa[0],
+ null, AnnotationColourGradient.BELOW_THRESHOLD);
cs.setSeqAssociated(true);
gcs.setSeqAssociated(true);
af.changeColour(cs);
SequenceGroup sg = new SequenceGroup();
sg.setStartRes(57);
sg.setEndRes(92);
- sg.cs = gcs;
+ sg.cs.setColourScheme(gcs);
af.getViewport().getAlignment().addGroup(sg);
sg.addSequence(af.getViewport().getAlignment().getSequenceAt(1), false);
sg.addSequence(af.getViewport().getAlignment().getSequenceAt(2), true);
af.alignPanel.alignmentChanged();
assertTrue("Failed to store as a project.",
- af.saveAlignment(tfile, "Jalview"));
+ af.saveAlignment(tfile, FileFormat.Jalview));
af.closeMenuItem_actionPerformed(true);
af = null;
- af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(tfile,
- FormatAdapter.FILE);
+ af = new FileLoader().LoadFileWaitTillLoaded(tfile, DataSourceType.FILE);
assertTrue("Failed to import new project", af != null);
// check for group and alignment colourschemes
ColourSchemeI _rcs = af.getViewport().getGlobalColourScheme();
ColourSchemeI _rgcs = af.getViewport().getAlignment().getGroups()
- .get(0).cs;
- assertTrue("Didn't recover global colourscheme", _rcs != null);
+ .get(0).getColourScheme();
+ assertNotNull("Didn't recover global colourscheme", _rcs);
assertTrue("Didn't recover annotation colour global scheme",
_rcs instanceof AnnotationColourGradient);
AnnotationColourGradient __rcs = (AnnotationColourGradient) _rcs;
for (int p = 0, pSize = af.getViewport().getAlignment().getWidth(); p < pSize
&& (!diffseqcols || !diffgseqcols); p++)
{
- if (_rcs.findColour(sqs[0].getCharAt(p), p, sqs[0]) != _rcs
- .findColour(sqs[5].getCharAt(p), p, sqs[5]))
+ if (_rcs.findColour(sqs[0].getCharAt(p), p, sqs[0], null, 0f) != _rcs
+ .findColour(sqs[5].getCharAt(p), p, sqs[5], null, 0f))
{
diffseqcols = true;
}
System.out
.println("Per sequence colourscheme (Background) successfully applied and recovered.");
- assertTrue("Didn't recover group colourscheme", _rgcs != null);
+ assertNotNull("Didn't recover group colourscheme", _rgcs);
assertTrue("Didn't recover annotation colour group colourscheme",
_rgcs instanceof AnnotationColourGradient);
__rcs = (AnnotationColourGradient) _rgcs;
for (int p = 0, pSize = af.getViewport().getAlignment().getWidth(); p < pSize
&& (!diffseqcols || !diffgseqcols); p++)
{
- if (_rgcs.findColour(sqs[1].getCharAt(p), p, sqs[1]) != _rgcs
- .findColour(sqs[2].getCharAt(p), p, sqs[2]))
+ if (_rgcs.findColour(sqs[1].getCharAt(p), p, sqs[1], null, 0f) != _rgcs
+ .findColour(sqs[2].getCharAt(p), p, sqs[2], null, 0f))
{
diffgseqcols = true;
}
{
int origCount = Desktop.getAlignFrames() == null ? 0 : Desktop
.getAlignFrames().length;
- AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
- "examples/exampleFile_2_7.jar", FormatAdapter.FILE);
- assertTrue("Didn't read in the example file correctly.", af != null);
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
+ "examples/exampleFile_2_7.jar", DataSourceType.FILE);
+ assertNotNull("Didn't read in the example file correctly.", af);
assertTrue("Didn't gather the views in the example file.",
Desktop.getAlignFrames().length == 1 + origCount);
@Test(groups = { "Functional" })
public void viewRefPdbAnnotation() throws Exception
{
- Cache.applicationProperties.setProperty("STRUCT_FROM_PDB",
- Boolean.TRUE.toString());
- Cache.applicationProperties.setProperty("ADD_SS_ANN",
- Boolean.TRUE.toString());
- StructureImportSettings.setDefaultStructureFileFormat("PDB");
- StructureImportSettings
- .setDefaultPDBFileParser(StructureParser.JALVIEW_PARSER);
- AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
- "examples/exampleFile_2_7.jar", FormatAdapter.FILE);
- assertTrue("Didn't read in the example file correctly.", af != null);
+ StructureImportSettings.setProcessSecondaryStructure(true);
+ StructureImportSettings.setVisibleChainAnnotation(true);
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
+ "examples/exampleFile_2_7.jar", DataSourceType.FILE);
+ assertNotNull("Didn't read in the example file correctly.", af);
AlignmentViewPanel sps = null;
for (AlignmentViewPanel ap : af.alignPanel.alignFrame.getAlignPanels())
{
break;
}
}
- assertTrue("Couldn't find the structure view", sps != null);
- SequenceI sq = sps.getAlignment().findName("1A70|");
+ assertNotNull("Couldn't find the structure view", sps);
AlignmentAnnotation refan = null;
for (AlignmentAnnotation ra : sps.getAlignment()
.getAlignmentAnnotation())
break;
}
}
- assertTrue("Annotation secondary structure not found.", refan != null);
- assertTrue("Couldn't find 1a70 null chain", sq != null);
+ assertNotNull("Annotation secondary structure not found.", refan);
+ SequenceI sq = sps.getAlignment().findName("1A70|");
+ assertNotNull("Couldn't find 1a70 null chain", sq);
// compare the manually added temperature factor annotation
// to the track automatically transferred from the pdb structure on load
+ assertNotNull("1a70 has no annotation", sq.getDatasetSequence()
+ .getAnnotation());
for (AlignmentAnnotation ala : sq.getDatasetSequence().getAnnotation())
{
AlignmentAnnotation alaa;
@Test(groups = { "Functional" })
public void testCopyViewSettings() throws Exception
{
- AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
- "examples/exampleFile_2_7.jar", FormatAdapter.FILE);
- assertTrue("Didn't read in the example file correctly.", af != null);
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
+ "examples/exampleFile_2_7.jar", DataSourceType.FILE);
+ assertNotNull("Didn't read in the example file correctly.", af);
AlignmentViewPanel sps = null, groups = null;
for (AlignmentViewPanel ap : af.alignPanel.alignFrame.getAlignPanels())
{
groups = ap;
}
}
- assertTrue("Couldn't find the structure view", sps != null);
- assertTrue("Couldn't find the MAFFT view", groups != null);
+ assertNotNull("Couldn't find the structure view", sps);
+ assertNotNull("Couldn't find the MAFFT view", groups);
ViewStyleI structureStyle = sps.getAlignViewport().getViewStyle();
ViewStyleI groupStyle = groups.getAlignViewport().getViewStyle();
}
/**
- * test store and recovery of expanded views - currently this is disabled
- * since the Desktop.explodeViews method doesn't seem to result in the views
- * being expanded to distinct align frames when executed programmatically.
+ * test store and recovery of expanded views
*
* @throws Exception
*/
@Test(groups = { "Functional" }, enabled = true)
public void testStoreAndRecoverExpandedviews() throws Exception
{
- StructureImportSettings
- .setDefaultPDBFileParser(StructureParser.JALVIEW_PARSER);
- StructureImportSettings.setDefaultStructureFileFormat("PDB");
- AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
- "examples/exampleFile_2_7.jar", FormatAdapter.FILE);
- assertTrue("Didn't read in the example file correctly.", af != null);
+ Desktop.instance.closeAll_actionPerformed(null);
+
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
+ "examples/exampleFile_2_7.jar", DataSourceType.FILE);
+ Assert.assertEquals(Desktop.getAlignFrames().length, 1);
String afid = af.getViewport().getSequenceSetId();
- {
- final AlignFrame xaf = af;
- af = null;
- new Thread(new Runnable()
- {
- @Override
- public void run()
- {
- Desktop.instance.explodeViews(xaf);
- }
- }).start();
- Thread.sleep(1000);
- }
- // int times = 0;
- // while (++times < 5 && Desktop.getAlignFrames().length < )
- // {
- // Thread.sleep(300);
- // }
+
+ // check FileLoader returned a reference to the one alignFrame that is
+ // actually on the Desktop
+ assertTrue(
+ "Jalview2XML.loadAlignFrame() didn't return correct AlignFrame reference for multiple view window",
+ af == Desktop.getAlignFrameFor(af.getViewport()));
+
+ Desktop.explodeViews(af);
+
int oldviews = Desktop.getAlignFrames().length;
Assert.assertEquals(Desktop.getAlignFrames().length,
Desktop.getAlignmentPanels(afid).length);
{
Assert.assertEquals(Desktop.getAlignFrames().length, 0);
}
- af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
- tfile.getAbsolutePath(), FormatAdapter.FILE);
+ af = new FileLoader().LoadFileWaitTillLoaded(
+ tfile.getAbsolutePath(), DataSourceType.FILE);
Assert.assertNotNull(af);
Assert.assertEquals(
Desktop.getAlignFrames().length,
Desktop.getAlignmentPanels(af.getViewport().getSequenceSetId()).length);
Assert.assertEquals(
- oldviews,
- Desktop.getAlignmentPanels(af.getViewport().getSequenceSetId()).length);
+ Desktop.getAlignmentPanels(af.getViewport().getSequenceSetId()).length,
+ oldviews);
}
/**
public void testStoreAndRecoverReferenceSeqSettings() throws Exception
{
Desktop.instance.closeAll_actionPerformed(null);
- StructureImportSettings.setDefaultStructureFileFormat("PDB");
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
- "examples/exampleFile_2_7.jar", FormatAdapter.FILE);
- assertTrue("Didn't read in the example file correctly.", af != null);
+ "examples/exampleFile_2_7.jar", DataSourceType.FILE);
+ assertNotNull("Didn't read in the example file correctly.", af);
String afid = af.getViewport().getSequenceSetId();
// remember reference sequence for each panel
}
af = new FileLoader().LoadFileWaitTillLoaded(
- tfile.getAbsolutePath(), FormatAdapter.FILE);
+ tfile.getAbsolutePath(), DataSourceType.FILE);
afid = af.getViewport().getSequenceSetId();
for (AlignmentViewPanel ap : Desktop.getAlignmentPanels(afid))
{
Desktop.instance.closeAll_actionPerformed(null);
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
- "examples/uniref50.fa", FormatAdapter.FILE);
- assertTrue("Didn't read in the example file correctly.", af != null);
+ "examples/uniref50.fa", DataSourceType.FILE);
+ assertNotNull("Didn't read in the example file correctly.", af);
String afid = af.getViewport().getSequenceSetId();
// make a second view of the alignment
af.newView_actionPerformed(null);
-
+
/*
* remember representative and hidden sequences marked
* on each panel
*/
Map<String, SequenceI> repSeqs = new HashMap<String, SequenceI>();
Map<String, List<String>> hiddenSeqNames = new HashMap<String, List<String>>();
-
+
/*
* mark sequence 2, 3, 4.. in panels 1, 2, 3...
* as reference sequence for itself and the preceding sequence
repSeqs.put(ap.getViewName(), repSeq);
List<String> hiddenNames = new ArrayList<String>();
hiddenSeqNames.put(ap.getViewName(), hiddenNames);
-
+
/*
* have rep sequence represent itself and the one before it
* this hides the group (except for the rep seq)
assertTrue(sg.getSequences().contains(repSeq));
assertTrue(sg.getSequences().contains(precedingSeq));
assertTrue("alignment has groups", alignment.getGroups().isEmpty());
- Map<SequenceI, SequenceCollectionI> hiddenRepSeqsMap = av.getHiddenRepSequences();
+ Map<SequenceI, SequenceCollectionI> hiddenRepSeqsMap = av
+ .getHiddenRepSequences();
assertNotNull(hiddenRepSeqsMap);
assertEquals(1, hiddenRepSeqsMap.size());
assertSame(sg, hiddenRepSeqsMap.get(repSeq));
n++;
}
File tfile = File
- .createTempFile("testStoreAndRecoverGroupReps",
- ".jvp");
+ .createTempFile("testStoreAndRecoverGroupReps", ".jvp");
try
{
new Jalview2XML(false).saveState(tfile);
}
af = new FileLoader().LoadFileWaitTillLoaded(
- tfile.getAbsolutePath(), FormatAdapter.FILE);
+ tfile.getAbsolutePath(), DataSourceType.FILE);
afid = af.getViewport().getSequenceSetId();
-
+
for (AlignmentViewPanel ap : Desktop.getAlignmentPanels(afid))
{
String viewName = ap.getViewName();
HiddenSequences hs = alignment.getHiddenSequences();
assertEquals(
"wrong number of restored hidden sequences in "
- + ap.getViewName(),
- hidden.size(), hs.getSize());
+ + ap.getViewName(), hidden.size(), hs.getSize());
+ }
+ }
+
+ /**
+ * Test save and reload of PDBEntry in Jalview project
+ *
+ * @throws Exception
+ */
+ @Test(groups = { "Functional" })
+ public void testStoreAndRecoverPDBEntry() throws Exception
+ {
+ Desktop.instance.closeAll_actionPerformed(null);
+ String exampleFile = "examples/3W5V.pdb";
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(exampleFile,
+ DataSourceType.FILE);
+ assertNotNull("Didn't read in the example file correctly.", af);
+ String afid = af.getViewport().getSequenceSetId();
+
+ AlignmentPanel[] alignPanels = Desktop.getAlignmentPanels(afid);
+ System.out.println();
+ AlignmentViewPanel ap = alignPanels[0];
+ String tfileBase = new File(".").getAbsolutePath().replace(".", "");
+ String testFile = tfileBase + exampleFile;
+ AlignmentI alignment = ap.getAlignment();
+ System.out.println("blah");
+ SequenceI[] seqs = alignment.getSequencesArray();
+ Assert.assertNotNull(seqs[0]);
+ Assert.assertNotNull(seqs[1]);
+ Assert.assertNotNull(seqs[2]);
+ Assert.assertNotNull(seqs[3]);
+ Assert.assertNotNull(seqs[0].getDatasetSequence());
+ Assert.assertNotNull(seqs[1].getDatasetSequence());
+ Assert.assertNotNull(seqs[2].getDatasetSequence());
+ Assert.assertNotNull(seqs[3].getDatasetSequence());
+ PDBEntry[] pdbEntries = new PDBEntry[4];
+ pdbEntries[0] = new PDBEntry("3W5V", "A", Type.PDB, testFile);
+ pdbEntries[1] = new PDBEntry("3W5V", "B", Type.PDB, testFile);
+ pdbEntries[2] = new PDBEntry("3W5V", "C", Type.PDB, testFile);
+ pdbEntries[3] = new PDBEntry("3W5V", "D", Type.PDB, testFile);
+ Assert.assertEquals(seqs[0].getDatasetSequence().getAllPDBEntries()
+ .get(0), pdbEntries[0]);
+ Assert.assertEquals(seqs[1].getDatasetSequence().getAllPDBEntries()
+ .get(0), pdbEntries[1]);
+ Assert.assertEquals(seqs[2].getDatasetSequence().getAllPDBEntries()
+ .get(0), pdbEntries[2]);
+ Assert.assertEquals(seqs[3].getDatasetSequence().getAllPDBEntries()
+ .get(0), pdbEntries[3]);
+
+ File tfile = File.createTempFile("testStoreAndRecoverPDBEntry", ".jvp");
+ try
+ {
+ new Jalview2XML(false).saveState(tfile);
+ } catch (Throwable e)
+ {
+ Assert.fail("Didn't save the state", e);
+ }
+ Desktop.instance.closeAll_actionPerformed(null);
+ if (Desktop.getAlignFrames() != null)
+ {
+ Assert.assertEquals(Desktop.getAlignFrames().length, 0);
+ }
+
+ AlignFrame restoredFrame = new FileLoader().LoadFileWaitTillLoaded(
+ tfile.getAbsolutePath(), DataSourceType.FILE);
+ String rfid = restoredFrame.getViewport().getSequenceSetId();
+ AlignmentPanel[] rAlignPanels = Desktop.getAlignmentPanels(rfid);
+ AlignmentViewPanel rap = rAlignPanels[0];
+ AlignmentI rAlignment = rap.getAlignment();
+ System.out.println("blah");
+ SequenceI[] rseqs = rAlignment.getSequencesArray();
+ Assert.assertNotNull(rseqs[0]);
+ Assert.assertNotNull(rseqs[1]);
+ Assert.assertNotNull(rseqs[2]);
+ Assert.assertNotNull(rseqs[3]);
+ Assert.assertNotNull(rseqs[0].getDatasetSequence());
+ Assert.assertNotNull(rseqs[1].getDatasetSequence());
+ Assert.assertNotNull(rseqs[2].getDatasetSequence());
+ Assert.assertNotNull(rseqs[3].getDatasetSequence());
+
+ // The Asserts below are expected to fail until the PDB chainCode is
+ // recoverable from a Jalview projects
+ for (int chain = 0; chain < 4; chain++)
+ {
+ PDBEntry recov = rseqs[chain].getDatasetSequence().getAllPDBEntries()
+ .get(0);
+ PDBEntry expected = pdbEntries[chain];
+ Assert.assertEquals(recov.getId(), expected.getId(),
+ "Mismatch PDB ID");
+ Assert.assertEquals(recov.getChainCode(), expected.getChainCode(),
+ "Mismatch PDB ID");
+ Assert.assertEquals(recov.getType(), expected.getType(),
+ "Mismatch PDBEntry 'Type'");
+ Assert.assertNotNull(recov.getFile(),
+ "Recovered PDBEntry should have a non-null file entry");
}
}
}