X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2FBioJsHTMLOutputTest.java;h=27c8a0e15ed165c8990d07cdb669eb604dc62456;hb=8bbcfb93404decd6d660ca32b69a29f8a1f34e82;hp=8d9de771d8033b2276fe018f4102f66497b3d8cf;hpb=7ce1382b998c007a78c9b33a3dc331e966eebc4b;p=jalview.git diff --git a/test/jalview/io/BioJsHTMLOutputTest.java b/test/jalview/io/BioJsHTMLOutputTest.java index 8d9de77..27c8a0e 100644 --- a/test/jalview/io/BioJsHTMLOutputTest.java +++ b/test/jalview/io/BioJsHTMLOutputTest.java @@ -1,23 +1,41 @@ package jalview.io; +import jalview.json.binding.v1.BioJSReleasePojo; +import jalview.json.binding.v1.BioJSRepositoryPojo; + +import java.io.File; import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLConnection; +import java.util.TreeMap; -import org.junit.Assert; -import org.junit.Test; +import org.testng.Assert; +import org.testng.AssertJUnit; +import org.testng.annotations.Test; public class BioJsHTMLOutputTest { - @Test + @Test(groups ={ "Functional" }) public void getJalviewAlignmentAsJsonString() { - BioJsHTMLOutput bioJsHtmlOutput = new BioJsHTMLOutput(null, null); String bjsTemplate = null; try { - bjsTemplate = BioJsHTMLOutput - .getBioJsTemplateAsString(bioJsHtmlOutput); + BioJsHTMLOutput.updateBioJS(); + try + { + // allow the update some three seconds to complete before getting latest + // version of BioJS template + Thread.sleep(1000 * 3); + } catch (InterruptedException e) + { + e.printStackTrace(); + } + bjsTemplate = BioJsHTMLOutput.getBioJsTemplateAsString(); // System.out.println(bjsTemplate); } catch (IOException e) { @@ -25,4 +43,90 @@ public class BioJsHTMLOutputTest } Assert.assertNotNull(bjsTemplate); } + + @Test(groups = + { "Functional" }, expectedExceptions = NullPointerException.class) + public void expectedNullPointerException() + { + try + { + BioJsHTMLOutput.refreshBioJSVersionsInfo(null); + } catch (URISyntaxException e) + { + AssertJUnit.fail("Expception occured while testing!"); + e.printStackTrace(); + } + } + + @Test(groups ={ "Functional" }) + public void getBioJsMSAVersions() + { + TreeMap versions = null; + try + { + BioJsHTMLOutput + .refreshBioJSVersionsInfo(BioJsHTMLOutput.BJS_TEMPLATES_LOCAL_DIRECTORY); + versions = BioJsHTMLOutput.getBioJsMSAVersions(); + } catch (URISyntaxException e) + { + AssertJUnit.fail("Expception occured while testing!"); + e.printStackTrace(); + } + AssertJUnit.assertNotNull("No versions found", versions); + AssertJUnit.assertTrue("One or more Templates required", versions.size() > 0); + System.out + .println("Number of discovered versions : " + + versions.size()); + for (String v : versions.keySet()) + { + System.out.println("version : " + v); + System.out.println("File : " + versions.get(v)); + } + + System.out.println("\nCurrent latest version : " + + BioJsHTMLOutput.getCurrentBJSTemplateFile()); + AssertJUnit.assertNotNull("Latest BioJsMSA version NOT found!", + BioJsHTMLOutput.getCurrentBJSTemplateFile()); + + } + + @Test(groups = + { "Network" }) + public void testBioJsUpdate() + { + String url = BioJsHTMLOutput.BJS_TEMPLATE_GIT_REPO; + AssertJUnit.assertTrue("URL not reacable : " + url, urlIsReachable(url)); + String response = BioJsHTMLOutput.getURLContentAsString(url); + AssertJUnit.assertNotNull("Null response read from url!", response); + BioJSRepositoryPojo repository = new BioJSRepositoryPojo(response); + System.out.println(">>> description : " + repository.getDescription()); + System.out +.println(">>> latest version : " + + repository.getLatestReleaseVersion()); + System.out.println(">>> repo count : " + + repository.getReleases().size()); + for (BioJSReleasePojo release : repository.getReleases()) + { + System.out.println("repo type : " + release.getType()); + System.out.println("url : " + release.getUrl()); + System.out.println("release version : " + release.getVersion()); + } + } + + private static boolean urlIsReachable(String urlString) + { + try + { + final URL url = new URL(urlString); + final URLConnection conn = url.openConnection(); + conn.connect(); + return true; + } catch (MalformedURLException e) + { + throw new RuntimeException(e); + } catch (IOException e) + { + return false; + } + } }