package org.nextprot.api.commons.utils;
import org.junit.Assert;
import org.junit.Test;
/**
* Created by fnikitin on 17/08/15.
*/
public class XMLPrettyPrinterTest {
@Test
public void testPrettyfying() throws Exception {
XMLPrettyPrinter printer = new XMLPrettyPrinter();
String xml = newMessyXml();
Assert.assertEquals("<overview>\n" +
" <protein-existence value=\"Evidence_at_protein_level\"/>\n" +
" <protein-name-list>\n" +
" <recommended-name>\n" +
" <protein-name qualifier=\"full\">Lysozyme-like protein 6</protein-name>\n" +
" <protein-name qualifier=\"EC\">3.2.1.17</protein-name>\n" +
" </recommended-name>\n" +
" <alternative-name-list/>\n" +
" </protein-name-list>\n" +
" <gene-list>\n" +
" <gene>\n" +
" <gene-name type=\"primary\">LYZL6</gene-name>\n" +
" <gene-name type=\"synonym\">LYC1</gene-name>\n" +
" <gene-name type=\"ORF\">UNQ754/PRO1485</gene-name>\n" +
" </gene>\n" +
" </gene-list>\n" +
" <family-list>\n" +
" <family>\n" +
" <family-name-list>\n" +
" <family-name type=\"Family\" accession=\"FA-01575\">Glycosyl hydrolase 22</family-name>\n" +
" </family-name-list>\n" +
" </family>\n" +
" </family-list>\n" +
" <history>\n" +
" <entry-history database=\"neXtProt\" integrated=\"2010-03-01\" updated=\"2015-05-04\"/>\n" +
" <entry-history database=\"UniProtKB\" integrated=\"2006-06-27\" updated=\"2015-04-29\" version=\"114\" last-sequence-update=\"1998-11-01\" sequence-version=\"1\"/>\n" +
" </history>\n" +
"</overview>\n", printer.prettify(xml));
}
@Test
public void testPrettyfyingWithLevel() throws Exception {
XMLPrettyPrinter printer = new XMLPrettyPrinter();
String xml = newMessyXml();
Assert.assertEquals(" <overview>\n" +
" <protein-existence value=\"Evidence_at_protein_level\"/>\n" +
" <protein-name-list>\n" +
" <recommended-name>\n" +
" <protein-name qualifier=\"full\">Lysozyme-like protein 6</protein-name>\n" +
" <protein-name qualifier=\"EC\">3.2.1.17</protein-name>\n" +
" </recommended-name>\n" +
" <alternative-name-list/>\n" +
" </protein-name-list>\n" +
" <gene-list>\n" +
" <gene>\n" +
" <gene-name type=\"primary\">LYZL6</gene-name>\n" +
" <gene-name type=\"synonym\">LYC1</gene-name>\n" +
" <gene-name type=\"ORF\">UNQ754/PRO1485</gene-name>\n" +
" </gene>\n" +
" </gene-list>\n" +
" <family-list>\n" +
" <family>\n" +
" <family-name-list>\n" +
" <family-name type=\"Family\" accession=\"FA-01575\">Glycosyl hydrolase 22</family-name>\n" +
" </family-name-list>\n" +
" </family>\n" +
" </family-list>\n" +
" <history>\n" +
" <entry-history database=\"neXtProt\" integrated=\"2010-03-01\" updated=\"2015-05-04\"/>\n" +
" <entry-history database=\"UniProtKB\" integrated=\"2006-06-27\" updated=\"2015-04-29\" version=\"114\" last-sequence-update=\"1998-11-01\" sequence-version=\"1\"/>\n" +
" </history>\n" +
" </overview>\n", printer.prettify(xml, 1));
}
@Test(expected = IllegalArgumentException.class)
public void testPrettyfyingWithBadLevel() throws Exception {
XMLPrettyPrinter printer = new XMLPrettyPrinter();
printer.prettify(newMessyXml(), -1);
}
private String newMessyXml() {
return "<overview>\n" +
" <protein-existence value='Evidence_at_protein_level'/>\n" +
" <protein-name-list>\n" +
" <recommended-name>\n" +
" <protein-name qualifier=\"full\">Lysozyme-like protein 6</protein-name>\n" +
"\t\t \t <protein-name qualifier=\"EC\">3.2.1.17</protein-name>\n" +
"\t \t </recommended-name>\n" +
" <alternative-name-list>\n" +
" </alternative-name-list>\n" +
" </protein-name-list>\n" +
"\n" +
"\n" +
"\n" +
" <gene-list>\n" +
" <gene>\n" +
" <gene-name type=\"primary\">LYZL6</gene-name>\n" +
" \t\t <gene-name type=\"synonym\">LYC1</gene-name>\n" +
" <gene-name type=\"ORF\">UNQ754/PRO1485</gene-name>\n" +
"\t\t </gene>\n" +
" </gene-list>\n" +
" <family-list>\n" +
" \n" +
"\n" +
" \n" +
"\n" +
"\n" +
"<family>\n" +
"\t<family-name-list>\n" +
"\t\t<family-name type=\"Family\" accession=\"FA-01575\">Glycosyl hydrolase 22</family-name>\n" +
"\t</family-name-list>\n" +
"</family>\n" +
"\n" +
" </family-list>\n" +
" <history>\n" +
" <entry-history database=\"neXtProt\" integrated=\"2010-03-01\" updated=\"2015-05-04\"/>\n" +
" <entry-history database=\"UniProtKB\" integrated=\"2006-06-27\" updated=\"2015-04-29\" version=\"114\" last-sequence-update=\"1998-11-01\" sequence-version=\"1\"/>\n" +
" </history>\n" +
"</overview>";
}
}