You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2009/08/27 11:14:15 UTC

svn commit: r808333 - /tuscany/java/sca/itest/nodes/two-nodes-test/src/test/java/itest/StopStartNodesTestCaseFIXME.java

Author: antelder
Date: Thu Aug 27 09:14:14 2009
New Revision: 808333

URL: http://svn.apache.org/viewvc?rev=808333&view=rev
Log:
Add a testcase for using two nodes and stopping and restarting the sevrice node. This doesn't work as the runtime keeps using the original nodes references so doesn't pick up that the service node has changed

Added:
    tuscany/java/sca/itest/nodes/two-nodes-test/src/test/java/itest/StopStartNodesTestCaseFIXME.java

Added: tuscany/java/sca/itest/nodes/two-nodes-test/src/test/java/itest/StopStartNodesTestCaseFIXME.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/itest/nodes/two-nodes-test/src/test/java/itest/StopStartNodesTestCaseFIXME.java?rev=808333&view=auto
==============================================================================
--- tuscany/java/sca/itest/nodes/two-nodes-test/src/test/java/itest/StopStartNodesTestCaseFIXME.java (added)
+++ tuscany/java/sca/itest/nodes/two-nodes-test/src/test/java/itest/StopStartNodesTestCaseFIXME.java Thu Aug 27 09:14:14 2009
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package itest;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+import itest.nodes.Helloworld;
+
+import java.io.File;
+
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.AfterClass;
+import org.junit.Test;
+
+/**
+ * Tests using two nodes and stopping and restarting a service node.
+ */
+public class StopStartNodesTestCaseFIXME {
+
+    private static Node serviceNode;
+    private static Node clientNode;
+
+    @Test
+    public void testCalculator() throws Exception {
+        NodeFactory factory = NodeFactory.newInstance();
+        serviceNode = factory.createNode(new Contribution("service", getJar("../helloworld-service/target")));
+        serviceNode.start();
+        clientNode = factory.createNode(new Contribution("client", getJar("../helloworld-client/target")));
+        clientNode.start();
+
+        Helloworld service = serviceNode.getService(Helloworld.class, "HelloworldService");
+        assertNotNull(service);
+        assertEquals("Hello Petra", service.sayHello("Petra"));
+
+        Helloworld client = clientNode.getService(Helloworld.class, "HelloworldClient");
+        assertNotNull(client);
+        assertEquals("Hi Hello Petra", client.sayHello("Petra"));
+
+        serviceNode.stop();
+
+        client = clientNode.getService(Helloworld.class, "HelloworldClient");
+        assertNotNull(client);
+        try {
+            client.sayHello("Petra");
+            fail();
+        } catch (Exception e) {
+            // expected
+            // TODO: better exception than NPE
+        }
+
+        serviceNode = factory.createNode(new Contribution("service", getJar("../helloworld-service/target")));
+        serviceNode.start();
+
+        client = clientNode.getService(Helloworld.class, "HelloworldClient");
+        assertNotNull(client);
+        assertEquals("Hi Hello Petra", client.sayHello("Petra"));
+    }
+
+    /**
+     * Get the jar in the target folder without being dependent on the version name to
+     * make tuscany releases easier
+     */
+    private static String getJar(String targetDirectory) {
+        File f = new File(targetDirectory);
+        for (File file : f.listFiles()) {
+            if (file.getName().endsWith(".jar")) {
+                return file.toURI().toString();
+            }
+        }
+        throw new IllegalStateException("Can't find jar in: " + targetDirectory);
+    }
+
+    @AfterClass
+    public static void tearDownAfterClass() throws Exception {
+        if (serviceNode != null) {
+            serviceNode.stop();
+        }
+        if (clientNode != null) {
+            clientNode.stop();
+        }
+    }
+}