/* * Copyright (c) 2012 Diamond Light Source Ltd. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package uk.ac.diamond.scisoft.analysis.rpc.flattening; import org.eclipse.dawnsci.analysis.api.rpc.AnalysisRpcException; import org.eclipse.dawnsci.analysis.api.rpc.IAnalysisRpcHandler; import org.junit.AfterClass; import org.junit.BeforeClass; import uk.ac.diamond.scisoft.analysis.rpc.AnalysisRpcClient; import uk.ac.diamond.scisoft.analysis.rpc.AnalysisRpcServer; public class FlatteningViaAnalysisRpcTest extends FlatteningTestAbstract { private static AnalysisRpcServer server; private static AnalysisRpcClient client; @BeforeClass public static void start() throws AnalysisRpcException { server = new AnalysisRpcServer(8620); server.addHandler("loopback", new IAnalysisRpcHandler() { @Override public Object run(Object[] args) { return args[0]; } }); server.start(); client = new AnalysisRpcClient(8620); } @AfterClass public static void stop() { if (server != null) server.shutdown(); server = null; client = null; } @Override protected Object doActualFlattenAndUnflatten(Object inObj) { try { return client.request("loopback", new Object[] { inObj }); } catch (AnalysisRpcException e) { if (e.getCause().getClass() == Exception.class) return e.getCause(); throw new RuntimeException(e); } } }