merge commit
[jalview.git] / test / jalview / io / BioJsHTMLOutputTest.java
1 package jalview.io;
2
3 import jalview.datamodel.Alignment;
4 import jalview.datamodel.Sequence;
5
6 import java.io.IOException;
7 import java.util.Iterator;
8
9 import org.json.simple.JSONArray;
10 import org.json.simple.JSONObject;
11 import org.json.simple.parser.JSONParser;
12 import org.json.simple.parser.ParseException;
13 import org.junit.Assert;
14 import org.junit.Test;
15
16 import com.json.JSONException;
17
18 public class BioJsHTMLOutputTest
19 {
20
21
22   @Test
23   public void getJalviewAlignmentAsJsonString()
24   {
25     BioJsHTMLOutput bioJsHtmlOuput = new BioJsHTMLOutput(null, null);
26     bioJsHtmlOuput.setGlobalColorScheme("Zappo");
27
28     Sequence[] seqs = new Sequence[1];
29     Sequence seq = new Sequence("name", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 1, 26);
30     // SequenceFeature seqFeature = new SequenceFeature("type", "desc",
31     // "status", 1, 5, "jalview");
32     // seq.addSequenceFeature(seqFeature);
33     seq.setDatasetSequence(seq);
34     seqs[0] = seq;
35
36     Alignment al = new Alignment(seqs);
37     try
38     {
39
40       JSONParser jsonParser = new JSONParser();
41       String actualJsonString = bioJsHtmlOuput
42               .getJalviewAlignmentAsJsonString(al);
43
44       JSONObject actualJsonObj = (JSONObject) jsonParser.parse(actualJsonString);
45
46       // System.out.println("Output : " + actualJsonString);
47       Assert.assertTrue(actualJsonObj.get("globalColorScheme") != null); 
48       Assert.assertTrue((actualJsonObj.get("globalColorScheme").toString()).equals("zappo")); 
49       
50       Assert.assertTrue(actualJsonObj.get("webStartUrl") != null);
51       Assert.assertTrue((actualJsonObj.get("webStartUrl").toString())
52               .equals("http://www.jalview.org/services/launchApp"));
53
54       JSONArray actualSeqJsonObj = (JSONArray) actualJsonObj.get("seqs");
55       Assert.assertTrue(actualSeqJsonObj != null);
56       Assert.assertTrue(actualSeqJsonObj.size() == 1);
57
58       @SuppressWarnings("unchecked")
59       Iterator<JSONObject> jsonIter = actualSeqJsonObj.iterator();
60       JSONObject jsonSeq = jsonIter.next();
61       Assert.assertTrue(jsonSeq != null);
62
63       Assert.assertTrue("'name' cannot be null!",
64               jsonSeq.get("name") != null);
65       Assert.assertTrue("Expected name mismatched!",
66               (jsonSeq.get("name").toString())
67               .equals("name/1-26"));
68
69       Assert.assertTrue("'seq' cannot be null!", jsonSeq.get("seq") != null);
70       Assert.assertTrue("Expected sequence mismatched!", (jsonSeq
71               .get("seq").toString())
72               .equals("ABCDEFGHIJKLMNOPQRSTUVWXYZ"));
73
74       Assert.assertTrue("'id' cannot be null!", jsonSeq.get("id") != null);
75       Assert.assertTrue("Expected id mismatched!",
76               (jsonSeq.get("id").toString()).equals("1"));
77
78       Assert.assertTrue("'start' cannot be null!",
79               jsonSeq.get("start") != null);
80       Assert.assertTrue("Expected start mismatched!",
81               (jsonSeq.get("start").toString()).equals("1"));
82
83       Assert.assertTrue("'end' cannot be null!", jsonSeq.get("end") != null);
84       Assert.assertTrue("Expected end mismatched!",
85               (jsonSeq.get("end").toString()).equals("26"));
86
87       Assert.assertTrue("'features' cannot be null!",
88               jsonSeq.get("features") != null);
89       Assert.assertTrue("Expected features mismatched!",
90               jsonSeq.get("features").toString().equals("[]"));
91
92     } catch (IOException e)
93     {
94       e.printStackTrace();
95     } catch (JSONException e)
96     {
97       e.printStackTrace();
98     } catch (ParseException e)
99     {
100       e.printStackTrace();
101     }
102   }
103   
104 }