tests for validating start-end number/sequence length, annotation and metadata for...
[jalview.git] / test / jalview / ws / PDBSequenceFetcherTest.java
index e54d5b9..b560f01 100644 (file)
@@ -37,7 +37,7 @@ public class PDBSequenceFetcherTest
 
   SequenceFetcher sf;
 
-  @BeforeMethod
+  @BeforeMethod(alwaysRun = true)
   public void setUp() throws Exception
   {
     // ensure 'add annotation from structure' is selected
@@ -49,8 +49,15 @@ public class PDBSequenceFetcherTest
     sf = new SequenceFetcher(false);
   }
 
-  @Test(groups =
-  { "Functional" }, enabled = false)
+  /**
+   * Test that RNA structure can be added by a call to the RNAML service.
+   * 
+   * Note this test depends on http://arn-ibmc.in2p3.fr/api/compute/2d which is
+   * not always reliable.
+   * 
+   * @throws Exception
+   */
+  @Test(groups = { "Network" }, enabled = true)
   public void testRnaSeqRetrieve() throws Exception
   {
     List<DbSourceProxy> sps = sf.getSourceProxy("PDB");
@@ -61,8 +68,46 @@ public class PDBSequenceFetcherTest
     {
       assertTrue("No annotation transfered to sequence.",
               sq.getAnnotation().length > 0);
-      assertTrue("No PDBEntry on sequence.", sq.getPDBId().size() > 0);
-      assertTrue("No RNA annotation on sequence.", sq.getRNA() != null);
+      assertTrue("No PDBEntry on sequence.",
+              sq.getAllPDBEntries().size() > 0);
+      assertTrue(
+              "No RNA annotation on sequence, possibly http://arn-ibmc.in2p3.fr/api/compute/2d not available?",
+              sq.getRNA() != null);
+    }
+  }
+
+  @Test(groups = { "Network" }, enabled = true)
+  public void testPdbSeqRetrieve() throws Exception
+  {
+    Cache.applicationProperties.setProperty("STRUCT_FROM_PDB",
+            Boolean.TRUE.toString());
+    testRetrieveProteinSeqFromPDB();
+  }
+
+  @Test(groups = { "Network" }, enabled = true)
+  public void testmmCifSeqRetrieve() throws Exception
+  {
+    Cache.applicationProperties.setProperty("STRUCT_FROM_PDB",
+            Boolean.FALSE.toString());
+    testRetrieveProteinSeqFromPDB();
+  }
+
+  private void testRetrieveProteinSeqFromPDB() throws Exception
+  {
+    List<DbSourceProxy> sps = sf.getSourceProxy("PDB");
+    AlignmentI response = sps.get(0).getSequenceRecords("1QIP");
+    assertTrue(response != null);
+    assertTrue(response.getHeight() == 4);
+    for (SequenceI sq : response.getSequences())
+    {
+      assertTrue("No annotation transfered to sequence.",
+              sq.getAnnotation().length > 0);
+      assertTrue("No PDBEntry on sequence.",
+              sq.getAllPDBEntries().size() > 0);
+      org.testng.Assert
+              .assertEquals(sq.getEnd() - sq.getStart() + 1,
+                      sq.getLength(),
+                      "Sequence start/end doesn't match number of residues in sequence");
     }
   }