JAL-1270 JUnit to TestNG refactoring
[jalview.git] / test / jalview / ext / rbvi / chimera / JalviewChimeraView.java
1 package jalview.ext.rbvi.chimera;
2
3 import static org.testng.AssertJUnit.assertTrue;
4 import org.testng.annotations.AfterClass;
5 import org.testng.annotations.Test;
6 import org.testng.annotations.BeforeClass;
7 import jalview.api.structures.JalviewStructureDisplayI;
8 import jalview.datamodel.SequenceI;
9 import jalview.gui.AlignFrame;
10 import jalview.gui.StructureViewer;
11 import jalview.gui.StructureViewer.ViewerType;
12 import jalview.io.FormatAdapter;
13
14 public class JalviewChimeraView
15 {
16
17   /**
18    * @throws java.lang.Exception
19    */
20   @BeforeClass
21   public static void setUpBeforeClass() throws Exception
22   {
23     jalview.bin.Jalview.main(new String[]
24     { "-noquestionnaire -nonews -props", "test/src/jalview/ext/rbvi/chimera/testProps.jvprops" });
25   }
26
27   /**
28    * @throws java.lang.Exception
29    */
30   @AfterClass
31   public static void tearDownAfterClass() throws Exception
32   {
33     try
34     {
35     jalview.gui.Desktop.instance.closeAll_actionPerformed(null);
36     } catch (Exception e)
37     {
38       // ignore NullPointerException thrown by JMol
39     }
40
41   }
42
43   @Test
44   public void testSingleSeqViewJMol()
45   {
46     String inFile = "examples/1gaq.txt";
47     AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
48             inFile, FormatAdapter.FILE);
49     assertTrue("Didn't read input file " + inFile, af != null);
50     for (SequenceI sq : af.getViewport().getAlignment().getSequences())
51     {
52       SequenceI dsq = sq.getDatasetSequence();
53       while (dsq.getDatasetSequence() != null)
54       {
55         dsq = dsq.getDatasetSequence();
56       }
57       if (dsq.getPDBId() != null && dsq.getPDBId().size() > 0)
58       {
59         for (int q = 0; q < dsq.getPDBId().size(); q++)
60         {
61           final StructureViewer structureViewer = new StructureViewer(af
62                   .getViewport().getStructureSelectionManager());
63           structureViewer.setViewerType(ViewerType.JMOL);
64           JalviewStructureDisplayI jmolViewer = structureViewer
65                   .viewStructures(dsq.getPDBId().elementAt(q),
66                           new SequenceI[]
67                   { sq }, af.getCurrentView().getAlignPanel());
68           /*
69            * Wait for viewer thread to start
70            */
71           try
72           {
73             Thread.sleep(1000);
74           } catch (InterruptedException e)
75           {
76           }
77
78           jmolViewer.closeViewer(true);
79           // todo: break here means only once through this loop?
80           break;
81         }
82         break;
83       }
84     }
85   }
86
87   @Test
88   public void testSingleSeqViewChimera()
89   {
90     String inFile = "examples/1gaq.txt";
91     AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
92             inFile, FormatAdapter.FILE);
93     assertTrue("Didn't read input file " + inFile, af != null);
94     for (SequenceI sq : af.getViewport().getAlignment().getSequences())
95     {
96       SequenceI dsq = sq.getDatasetSequence();
97       while (dsq.getDatasetSequence() != null)
98       {
99         dsq = dsq.getDatasetSequence();
100       }
101       if (dsq.getPDBId() != null && dsq.getPDBId().size() > 0)
102       {
103         for (int q = 0; q < dsq.getPDBId().size(); q++)
104         {
105           final StructureViewer structureViewer = new StructureViewer(af
106                   .getViewport().getStructureSelectionManager());
107           structureViewer.setViewerType(ViewerType.CHIMERA);
108           JalviewStructureDisplayI chimeraViewer = structureViewer
109                   .viewStructures(dsq.getPDBId().elementAt(q),
110                           new SequenceI[]
111                           { sq }, af.getCurrentView().getAlignPanel());
112           /*
113            * Wait for viewer thread to start
114            */
115           try
116           {
117             Thread.sleep(1000);
118           } catch (InterruptedException e)
119           {
120           }
121           chimeraViewer.closeViewer(true);
122           // todo: break here means only once through this loop?
123           break;
124         }
125         break;
126       }
127     }
128   }
129 }