package jalview.io; import jalview.datamodel.Alignment; import jalview.datamodel.Sequence; import java.io.IOException; import java.util.Iterator; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; import org.junit.Assert; import org.junit.Test; import com.json.JSONException; public class BioJsHTMLOutputTest { @Test public void getJalviewAlignmentAsJsonString() { BioJsHTMLOutput bioJsHtmlOuput = new BioJsHTMLOutput(null, null); bioJsHtmlOuput.setGlobalColorScheme("Zappo"); Sequence[] seqs = new Sequence[1]; Sequence seq = new Sequence("name", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 1, 26); // SequenceFeature seqFeature = new SequenceFeature("type", "desc", // "status", 1, 5, "jalview"); // seq.addSequenceFeature(seqFeature); seq.setDatasetSequence(seq); seqs[0] = seq; Alignment al = new Alignment(seqs); try { JSONParser jsonParser = new JSONParser(); String actualJsonString = bioJsHtmlOuput .getJalviewAlignmentAsJsonString(al); JSONObject actualJsonObj = (JSONObject) jsonParser.parse(actualJsonString); // System.out.println("Output : " + actualJsonString); Assert.assertTrue(actualJsonObj.get("globalColorScheme") != null); Assert.assertTrue((actualJsonObj.get("globalColorScheme").toString()).equals("zappo")); Assert.assertTrue(actualJsonObj.get("webStartUrl") != null); Assert.assertTrue((actualJsonObj.get("webStartUrl").toString()) .equals("http://www.jalview.org/services/launchApp")); JSONArray actualSeqJsonObj = (JSONArray) actualJsonObj.get("seqs"); Assert.assertTrue(actualSeqJsonObj != null); Assert.assertTrue(actualSeqJsonObj.size() == 1); @SuppressWarnings("unchecked") Iterator jsonIter = actualSeqJsonObj.iterator(); JSONObject jsonSeq = jsonIter.next(); Assert.assertTrue(jsonSeq != null); Assert.assertTrue("'name' cannot be null!", jsonSeq.get("name") != null); Assert.assertTrue("Expected name mismatched!", (jsonSeq.get("name").toString()) .equals("name/1-26")); Assert.assertTrue("'seq' cannot be null!", jsonSeq.get("seq") != null); Assert.assertTrue("Expected sequence mismatched!", (jsonSeq .get("seq").toString()) .equals("ABCDEFGHIJKLMNOPQRSTUVWXYZ")); Assert.assertTrue("'id' cannot be null!", jsonSeq.get("id") != null); Assert.assertTrue("Expected id mismatched!", (jsonSeq.get("id").toString()).equals("1")); Assert.assertTrue("'start' cannot be null!", jsonSeq.get("start") != null); Assert.assertTrue("Expected start mismatched!", (jsonSeq.get("start").toString()).equals("1")); Assert.assertTrue("'end' cannot be null!", jsonSeq.get("end") != null); Assert.assertTrue("Expected end mismatched!", (jsonSeq.get("end").toString()).equals("26")); Assert.assertTrue("'features' cannot be null!", jsonSeq.get("features") != null); Assert.assertTrue("Expected features mismatched!", jsonSeq.get("features").toString().equals("[]")); } catch (IOException e) { e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } } }