+
+ /**
+ * @throws java.lang.Exception
+ */
+ @BeforeClass(alwaysRun = true)
+ public static void setUpBeforeClass() throws Exception
+ {
+ 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
+ {
+ if (Desktop.instance != null)
+ Desktop.instance.closeAll_actionPerformed(null);
+ }
+
+ @Test(groups = { "Functional" })
+ public void testJalviewProjectRelocationAnnotation() throws Exception
+ {
+
+ String inFile = "examples/1gaq.txt";
+ String tfile = File.createTempFile("JalviewTest", ".jvp")
+ .getAbsolutePath();
+ AlignFrame af = new jalview.io.FileLoader()
+ .LoadFileWaitTillLoaded(inFile, DataSourceType.FILE);
+ assertTrue("Didn't read input file " + inFile, af != null);
+ af.saveAlignment(tfile, FileFormat.Jalview);
+ assertTrue("Failed to store as a project.",
+ af.isSaveAlignmentSuccessful());
+ af.closeMenuItem_actionPerformed(true);
+ af = null;
+ af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(tfile,
+ DataSourceType.FILE);
+ assertTrue("Failed to import new project", af != null);
+ for (SequenceI asq : af.getViewport().getAlignment().getSequences())
+ {
+ SequenceI sq = asq;
+ while (sq.getDatasetSequence() != null)
+ {
+ sq = sq.getDatasetSequence();
+ }
+ assertNotNull(sq.getAllPDBEntries());
+ assertEquals("Expected only one PDB ID", 1,
+ sq.getAllPDBEntries().size());
+ for (PDBEntry pdbentry : sq.getAllPDBEntries())
+ {
+ System.err.println(
+ "PDB Entry " + pdbentry.getId() + " " + pdbentry.getFile());
+ boolean exists = false, found = false;
+ for (AlignmentAnnotation ana : sq.getAnnotation())
+ {
+ System.err.println("CalcId " + ana.getCalcId());
+ if (ana.getCalcId() != null
+ && mc_view.PDBfile.isCalcIdHandled(ana.getCalcId()))
+ {
+ exists = true;
+ if (mc_view.PDBfile.isCalcIdForFile(ana, pdbentry.getId()))
+ {
+ found = true;
+ }
+ }
+ }
+ if (exists)
+ {
+ assertTrue(
+ "Couldn't find any annotation for " + pdbentry.getId()
+ + " (file handle " + pdbentry.getFile() + ")",
+ found);
+ }
+ }
+ }
+ }