694419f65ca0259da3bc1c2fcd9ab72166b6eae8
[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(jsonSeq.get("name") != null);
64       Assert.assertTrue((jsonSeq.get("name").toString())
65               .equals("name/1-26"));
66
67       Assert.assertTrue(jsonSeq.get("seq") != null);
68       Assert.assertTrue((jsonSeq.get("seq").toString())
69               .equals("ABCDEFGHIJKLMNOPQRSTUVWXYZ"));
70
71       Assert.assertTrue(jsonSeq.get("id") != null);
72       Assert.assertTrue((jsonSeq.get("id").toString()).equals("1"));
73
74       Assert.assertTrue(jsonSeq.get("start") != null);
75       Assert.assertTrue((jsonSeq.get("start").toString()).equals("1"));
76
77       Assert.assertTrue(jsonSeq.get("end") != null);
78       Assert.assertTrue((jsonSeq.get("end").toString()).equals("26"));
79
80       Assert.assertTrue(jsonSeq.get("features") != null);
81       Assert.assertTrue(jsonSeq.get("features").toString().equals("[]"));
82
83
84     } catch (IOException e)
85     {
86       e.printStackTrace();
87     } catch (JSONException e)
88     {
89       e.printStackTrace();
90     } catch (ParseException e)
91     {
92       e.printStackTrace();
93     }
94   }
95   
96 }