JAL-2114 save 'raw' ENA location as a sequence feature attribute
[jalview.git] / test / jalview / datamodel / xdb / embl / EmblFileTest.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3  * Copyright (C) $$Year-Rel$$ The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3
10  * of the License, or (at your option) any later version.
11  *  
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
19  * The Jalview Authors are detailed in the 'AUTHORS' file.
20  */
21 package jalview.datamodel.xdb.embl;
22
23 import static org.testng.AssertJUnit.assertEquals;
24 import static org.testng.AssertJUnit.assertNull;
25
26 import jalview.datamodel.DBRefEntry;
27
28 import java.util.Vector;
29
30 import org.testng.annotations.Test;
31
32 public class EmblFileTest
33 {
34
35   @Test(groups = { "Functional" })
36   public void testGetEmblFile()
37   {
38     Vector<EmblEntry> entries = EmblTestHelper.getEmblFile().getEntries();
39     assertEquals(1, entries.size());
40     EmblEntry entry = entries.get(0);
41
42     assertEquals("X53828", entry.getAccession());
43     assertEquals(
44             "Chicken LDH-A mRNA for lactate dehydrogenase A chain (EC 1.1.1.27)",
45             entry.getDesc());
46     assertEquals("2005-04-18", entry.getLastUpdated());
47     assertEquals("mRNA", entry.getMoleculeType());
48     assertEquals("1", entry.getSequenceVersion());
49     assertEquals("3", entry.getEntryVersion());
50     assertEquals("linear", entry.getTopology());
51     assertEquals("1575", entry.getSequenceLength());
52
53     /*
54      * FIXME these assertions fail - values are null - why?? Adding or removing
55      * attributes in the test XML modifies behaviour. eg. inserting an attribute
56      * _before_ lastUpdated results in a null value in this field.
57      */
58     // assertEquals("25", entry.getRCreated());
59     // assertEquals("83", entry.getRLastUpdated());
60
61     assertEquals(2, entry.getKeywords().size());
62     assertEquals("L-lactate dehydrogenase", entry.getKeywords().get(0));
63     assertEquals("chutney", entry.getKeywords().get(1));
64
65     /*
66      * dbrefs
67      */
68     assertEquals(2, entry.getDbRefs().size());
69     DBRefEntry dbref = entry.getDbRefs().get(0);
70     assertEquals("EuropePMC", dbref.getSource());
71     assertEquals("PMC1460223", dbref.getAccessionId());
72     assertEquals("9649548", dbref.getVersion());
73     dbref = entry.getDbRefs().get(1);
74     assertEquals("MD5", dbref.getSource());
75     assertEquals("d3b68", dbref.getAccessionId());
76     // blank version has been converted to "0"
77     assertEquals("0", dbref.getVersion());
78
79     /*
80      * sequence feature for CDS
81      */
82     assertEquals(1, entry.getFeatures().size());
83     EmblFeature ef = entry.getFeatures().get(0);
84     assertEquals("CDS", ef.getName());
85     assertEquals("60..1058", ef.getLocation());
86     assertEquals(2, ef.getDbRefs().size());
87     dbref = ef.getDbRefs().get(0);
88     assertEquals("GOA", dbref.getSource());
89     assertEquals("P00340", dbref.getAccessionId());
90     assertEquals("2.1", dbref.getVersion());
91     dbref = ef.getDbRefs().get(1);
92     assertEquals("InterPro", dbref.getSource());
93     assertEquals("IPR001236", dbref.getAccessionId());
94     // blank version converted to "0":
95     assertEquals("0", dbref.getVersion());
96     assertEquals(2, ef.getQualifiers().size());
97
98     // feature qualifiers
99     Qualifier q = ef.getQualifiers().get(0);
100     assertEquals("note", q.getName());
101     assertEquals(2, q.getValues().length);
102     assertEquals("L-lactate dehydrogenase A-chain", q.getValues()[0]);
103     assertEquals("pickle", q.getValues()[1]);
104     assertNull(q.getEvidence());
105     q = ef.getQualifiers().get(1);
106     assertEquals("translation", q.getName());
107     assertEquals(1, q.getValues().length);
108     assertEquals("MSLKDHLIHN", q.getValues()[0]);
109     assertEquals(1, q.getEvidence().length);
110     assertEquals("Keith", q.getEvidence()[0]);
111
112     /*
113      * Sequence
114      */
115     EmblSequence seq = entry.getSequence();
116     assertEquals("GTGACG", seq.getSequence());
117
118     /*
119      * getSequence() converts empty DBRefEntry.version to "0"
120      */
121     assertEquals("0", entry.getDbRefs().get(1).getVersion());
122     assertEquals("0", entry.getFeatures().get(0).getDbRefs().get(1)
123             .getVersion());
124   }
125 }