X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=test%2FMCview%2FPDBfileTest.java;h=c07c62e0f19550d2ee53ece8870bd9fd9d4ef015;hb=c8e86c8d3d346840e826942470784b0fec66d439;hp=5d69a00fe3f69b97a302d9f73e0690cd7dd409de;hpb=3de63f1530eb6fb6bca7996fe5e2002af3c811e9;p=jalview.git
diff --git a/test/MCview/PDBfileTest.java b/test/MCview/PDBfileTest.java
index 5d69a00..c07c62e 100644
--- a/test/MCview/PDBfileTest.java
+++ b/test/MCview/PDBfileTest.java
@@ -1,26 +1,60 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see .
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package MCview;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertFalse;
+import static org.testng.AssertJUnit.assertNull;
+import static org.testng.AssertJUnit.assertSame;
+import static org.testng.AssertJUnit.assertTrue;
+
+import jalview.bin.Cache;
import jalview.datamodel.Alignment;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
-import jalview.io.AppletFormatAdapter;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
+import jalview.structure.StructureImportSettings;
import java.io.IOException;
+import java.util.List;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
public class PDBfileTest
{
- @Test
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
+ @Test(groups = { "Functional" })
public void testIsRna()
{
SequenceI seq = new Sequence("Seq1", "CGAU");
@@ -42,26 +76,28 @@ public class PDBfileTest
*
* @throws IOException
*/
- @Test
+ @Test(groups = { "Functional" })
public void testParse() throws IOException
{
/*
* Constructor with file path performs parse()
*/
PDBfile pf = new PDBfile(false, false, false, "examples/3W5V.pdb",
- AppletFormatAdapter.FILE);
+ DataSourceType.FILE);
- assertEquals("3W5V", pf.id);
+ assertEquals("3W5V", pf.getId());
// verify no alignment annotations created
assertNull(getAlignmentAnnotations(pf));
- assertEquals(4, pf.chains.size());
- assertEquals("A", pf.chains.get(0).id);
- assertEquals("B", pf.chains.get(1).id);
- assertEquals("C", pf.chains.get(2).id);
- assertEquals("D", pf.chains.get(3).id);
+ assertEquals(4, pf.getChains().size());
+ assertEquals("A", pf.getChains().get(0).id);
+ assertEquals("B", pf.getChains().get(1).id);
+ assertEquals("C", pf.getChains().get(2).id);
+ assertEquals("D", pf.getChains().get(3).id);
+
+ PDBChain chainA = pf.getChains().get(0);
+ SequenceI seqA = pf.getSeqs().get(0);
- PDBChain chainA = pf.chains.get(0);
assertEquals(0, chainA.seqstart); // not set
assertEquals(0, chainA.seqend); // not set
assertEquals(18, chainA.sequence.getStart());
@@ -70,32 +106,47 @@ public class PDBfileTest
assertTrue(chainA.sequence.getSequenceAsString().endsWith("WNVEVY"));
assertEquals("3W5V|A", chainA.sequence.getName());
assertNull(chainA.sequence.getAnnotation());
- assertEquals(1, chainA.sequence.getPDBId().size());
- PDBEntry pdb = chainA.sequence.getPDBId().get(0);
+ assertEquals(1, seqA.getAllPDBEntries().size());
+ PDBEntry pdb = seqA.getAllPDBEntries().get(0);
assertEquals("A", pdb.getChainCode());
assertEquals("PDB", pdb.getType());
assertEquals("3W5V", pdb.getId());
- PDBChain chainB = pf.chains.get(1);
+ PDBChain chainB = pf.getChains().get(1);
assertEquals(1, chainB.sequence.getStart());
assertEquals(96, chainB.sequence.getEnd());
assertTrue(chainB.sequence.getSequenceAsString().startsWith("ATYNVK"));
assertTrue(chainB.sequence.getSequenceAsString().endsWith("KEEELT"));
assertEquals("3W5V|B", chainB.sequence.getName());
- PDBChain chainC = pf.chains.get(2);
+ PDBChain chainC = pf.getChains().get(2);
assertEquals(18, chainC.sequence.getStart());
assertEquals(314, chainC.sequence.getEnd());
assertTrue(chainC.sequence.getSequenceAsString().startsWith("KCSKKQEE"));
assertTrue(chainC.sequence.getSequenceAsString().endsWith("WNVEVY"));
assertEquals("3W5V|C", chainC.sequence.getName());
- PDBChain chainD = pf.chains.get(3);
+ PDBChain chainD = pf.getChains().get(3);
assertEquals(1, chainD.sequence.getStart());
assertEquals(96, chainD.sequence.getEnd());
assertTrue(chainD.sequence.getSequenceAsString().startsWith("ATYNVK"));
assertTrue(chainD.sequence.getSequenceAsString().endsWith("KEEELT"));
assertEquals("3W5V|D", chainD.sequence.getName());
+
+ /*
+ * verify PDB-related data in parsed sequences
+ */
+ List seqs = pf.getSeqs();
+ assertEquals(4, seqs.size());
+ assertEquals("3W5V|A", seqs.get(0).getName());
+ assertEquals("3W5V|B", seqs.get(1).getName());
+ assertEquals("3W5V|C", seqs.get(2).getName());
+ assertEquals("3W5V|D", seqs.get(3).getName());
+ assertEquals(1, seqs.get(0).getAllPDBEntries().size());
+ PDBEntry pdbe = seqs.get(0).getAllPDBEntries().get(0);
+ assertEquals("A", pdbe.getChainCode());
+ assertEquals("3W5V", pdbe.getId());
+ assertEquals(PDBEntry.Type.PDB.toString(), pdbe.getType());
}
/**
@@ -104,11 +155,11 @@ public class PDBfileTest
*
* @throws IOException
*/
- @Test
+ @Test(groups = { "Functional" })
public void testParse_withAnnotations_noSS() throws IOException
{
PDBfile pf = new PDBfile(true, false, false, "examples/3W5V.pdb",
- AppletFormatAdapter.FILE);
+ DataSourceType.FILE);
AlignmentAnnotation[] anns = getAlignmentAnnotations(pf);
assertEquals(4, anns.length);
@@ -162,11 +213,11 @@ public class PDBfileTest
*
* @throws IOException
*/
- @Test
+ @Test(groups = { "Functional" })
public void testParse_withJmol_noAnnotations() throws IOException
{
PDBfile pf = new PDBfile(false, true, false, "examples/3W5V.pdb",
- AppletFormatAdapter.FILE);
+ DataSourceType.FILE);
/*
* alignment annotations _are_ created anyway (in
@@ -179,7 +230,7 @@ public class PDBfileTest
* no sequence annotations created - tempFactor annotation is not added
* unless the flag to 'addAlignmentAnnotations' is set true
*/
- for (PDBChain c : pf.chains)
+ for (PDBChain c : pf.getChains())
{
assertNull(c.sequence.getAnnotation());
}
@@ -191,12 +242,12 @@ public class PDBfileTest
*
* @throws IOException
*/
- @Test
+ @Test(groups = { "Functional" })
public void testParse_withJmolAddAlignmentAnnotations()
throws IOException
{
PDBfile pf = new PDBfile(true, true, false, "examples/3W5V.pdb",
- AppletFormatAdapter.FILE);
+ DataSourceType.FILE);
/*
* Alignment annotations for TempFactor, SecStruct, per sequence (chain)
@@ -215,10 +266,10 @@ public class PDBfileTest
/*
* PDBFileWithJmol (unlike PDBChain!) leaves PDB id upper case
*/
- assertEquals("Secondary Structure for 3W5VA", anns[0].description);
- assertEquals("Secondary Structure for 3W5VB", anns[2].description);
- assertEquals("Secondary Structure for 3W5VC", anns[4].description);
- assertEquals("Secondary Structure for 3W5VD", anns[6].description);
+ assertEquals("Secondary Structure for 3w5vA", anns[0].description);
+ assertEquals("Secondary Structure for 3w5vB", anns[2].description);
+ assertEquals("Secondary Structure for 3w5vC", anns[4].description);
+ assertEquals("Secondary Structure for 3w5vD", anns[6].description);
/*
* Verify SS annotations are linked to respective sequences (chains)
@@ -247,15 +298,16 @@ public class PDBfileTest
*
* @throws IOException
*/
- @Test
- @Ignore
+
+ @Test(groups = { "Functional" }, enabled = false)
public void testParse_withAnnotate3D() throws IOException
{
// TODO requires a mock for Annotate3D processing
// and/or run as an integration test
PDBfile pf = new PDBfile(true, true, true, "examples/2GIS.pdb",
- AppletFormatAdapter.FILE);
+ DataSourceType.FILE);
}
+
/**
* Helper method to extract parsed annotations from the PDBfile
*
@@ -265,7 +317,20 @@ public class PDBfileTest
private AlignmentAnnotation[] getAlignmentAnnotations(PDBfile pf)
{
AlignmentI al = new Alignment(pf.getSeqsAsArray());
- pf.addAnnotations((Alignment) al);
+ pf.addAnnotations(al);
return al.getAlignmentAnnotation();
}
+
+ @BeforeMethod(alwaysRun = true)
+ public void setUp()
+ {
+ Cache.loadProperties("test/jalview/io/testProps.jvprops");
+ Cache.applicationProperties.setProperty("STRUCT_FROM_PDB",
+ Boolean.TRUE.toString());
+ Cache.applicationProperties.setProperty("ADD_TEMPFACT_ANN",
+ Boolean.TRUE.toString());
+ Cache.applicationProperties.setProperty("ADD_SS_ANN",
+ Boolean.TRUE.toString());
+ StructureImportSettings.setDefaultStructureFileFormat("PDB");
}
+}