/* * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * * Jalview is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation, either version 3 * of the License, or (at your option) any later version. * * Jalview is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Jalview. If not, see . * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.ws.rest; import static org.testng.AssertJUnit.assertNotNull; import static org.testng.AssertJUnit.assertTrue; import jalview.gui.AlignFrame; import java.util.Map; import org.testng.annotations.Test; /** * @author jimp * */ public class ShmmrRSBSService { @Test(groups = { "Functional" }) public void testShmmrService() { assertTrue( "Test Rsd Exchange using using default Shmmr service failed.", testRsdExchange("Test using default Shmmr service", RestClient.makeShmmrRestClient().service)); } @Test(groups = { "Functional" }) public void testShmmrServiceDataprep() throws Exception { RestClient _rc = RestClient.makeShmmrRestClient(); assertNotNull(_rc); AlignFrame alf = new jalview.io.FileLoader(false) .LoadFileWaitTillLoaded("examples/testdata/smad.fa", jalview.io.FormatAdapter.FILE); assertNotNull("Couldn't find test data.", alf); alf.loadJalviewDataFile("examples/testdata/smad_groups.jva", jalview.io.FormatAdapter.FILE, null, null); assertTrue( "Couldn't load the test data's annotation file (should be 5 groups but found " + alf.getViewport().getAlignment().getGroups().size() + ").", alf.getViewport().getAlignment().getGroups() .size() == 5); RestClient rc = new RestClient(_rc.service, alf, true); assertNotNull("Couldn't creat RestClient job.", rc); jalview.bin.Cache.initLogger(); RestJob rjb = new RestJob(0, new RestJobThread(rc), rc.av.getAlignment(), null); rjb.setAlignmentForInputs(rc.service.getInputParams().values(), rc.av.getAlignment()); for (Map.Entry e : rc.service.getInputParams() .entrySet()) { System.out.println("For Input '" + e.getKey() + ":\n" + e.getValue().formatForInput(rjb).getContentLength()); } } private static boolean testRsdExchange(String desc, String servicestring) { try { RestServiceDescription newService = new RestServiceDescription( servicestring); if (!newService.isValid()) { throw new Error("Failed to create service from '" + servicestring + "'.\n" + newService.getInvalidMessage()); } return testRsdExchange(desc, newService); } catch (Throwable x) { System.err.println("Failed for service (" + desc + "): " + servicestring); x.printStackTrace(); return false; } } private static boolean testRsdExchange(String desc, RestServiceDescription service) { try { String fromservicetostring = service.toString(); RestServiceDescription newService = new RestServiceDescription( fromservicetostring); if (!newService.isValid()) { throw new Error("Failed to create service from '" + fromservicetostring + "'.\n" + newService.getInvalidMessage()); } if (!service.equals(newService)) { System.err.println("Failed for service (" + desc + ")."); System.err.println("Original service and parsed service differ."); System.err.println("Original: " + fromservicetostring); System.err.println("Parsed : " + newService.toString()); return false; } } catch (Throwable x) { System.err.println("Failed for service (" + desc + "): " + service.toString()); x.printStackTrace(); return false; } return true; } }