Author: jbonofre
Date: Fri Sep 14 07:31:12 2012
New Revision: 1384668

URL: http://svn.apache.org/viewvc?rev=1384668&view=rev
Log:
[KARAF-1798] Add admin itests

Added:
    
karaf/branches/karaf-2.3.x/itests/src/test/java/org/apache/karaf/itests/AdminTest.java
Modified:
    karaf/branches/karaf-2.3.x/tooling/exam/container/pom.xml

Added: 
karaf/branches/karaf-2.3.x/itests/src/test/java/org/apache/karaf/itests/AdminTest.java
URL: 
http://svn.apache.org/viewvc/karaf/branches/karaf-2.3.x/itests/src/test/java/org/apache/karaf/itests/AdminTest.java?rev=1384668&view=auto
==============================================================================
--- 
karaf/branches/karaf-2.3.x/itests/src/test/java/org/apache/karaf/itests/AdminTest.java
 (added)
+++ 
karaf/branches/karaf-2.3.x/itests/src/test/java/org/apache/karaf/itests/AdminTest.java
 Fri Sep 14 07:31:12 2012
@@ -0,0 +1,101 @@
+/*
+ * Licensed 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 org.apache.karaf.itests;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.junit.ExamReactorStrategy;
+import org.ops4j.pax.exam.junit.JUnit4TestRunner;
+import org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactorFactory;
+
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
+import javax.management.openmbean.TabularData;
+import javax.management.remote.JMXConnector;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+@RunWith(JUnit4TestRunner.class)
+@ExamReactorStrategy(AllConfinedStagedReactorFactory.class)
+public class AdminTest extends KarafTestSupport {
+
+    @Test
+    public void createDestroyCommand() throws Exception {
+        System.out.println(executeCommand("admin:create itest"));
+        String adminListOutput = executeCommand("admin:list");
+        System.out.println(adminListOutput);
+        assertTrue(adminListOutput.contains("itest"));
+        System.out.println(executeCommand("admin:destroy itest"));
+        adminListOutput = executeCommand("admin:list");
+        System.out.println(adminListOutput);
+        assertFalse(adminListOutput.contains("itest"));
+    }
+
+    @Test
+    public void createDestroyViaMBean() throws Exception {
+        JMXConnector connector = null;
+        try {
+            connector = this.getJMXConnector();
+            MBeanServerConnection connection = 
connector.getMBeanServerConnection();
+            ObjectName name = new 
ObjectName("org.apache.karaf:type=admin,name=root");
+            connection.invoke(name, "createInstance", new Object[]{ "itest", 
0, 0, 0, null, null, null, null },
+                    new String[]{ "java.lang.String", "int", "int", "int", 
"java.lang.String", "java.lang.String", "java.lang.String", "java.lang.String" 
});
+            TabularData instances = (TabularData) 
connection.getAttribute(name, "Instances");
+            assertEquals(instances.size(), 2);
+            connection.invoke(name, "destroyInstance", new Object[]{ "itest" 
}, new String[]{ "java.lang.String" });
+            instances = (TabularData) connection.getAttribute(name, 
"Instances");
+            assertEquals(instances.size(), 1);
+        } finally {
+            if (connector != null)
+                connector.close();
+        }
+    }
+
+    @Test
+    public void cloneCommand() throws Exception {
+        System.out.println(executeCommand("admin:clone root itest"));
+        String adminListOutput = executeCommand("admin:list");
+        System.out.println(adminListOutput);
+        assertTrue(adminListOutput.contains("itest"));
+    }
+
+    @Test
+    public void cloneViaMBean() throws Exception {
+        JMXConnector connector = null;
+        try {
+            connector = this.getJMXConnector();
+            MBeanServerConnection connection = 
connector.getMBeanServerConnection();
+            ObjectName name = new 
ObjectName("org.apache.karaf:type=admin,name=root");
+            connection.invoke(name, "cloneInstance", new Object[]{ "root", 
"itest", 0, 0, 0, null, null },
+                    new String[]{ "java.lang.String", "java.lang.String", 
"int", "int", "int", "java.lang.String", "java.lang.String" });
+            TabularData instances = (TabularData) 
connection.getAttribute(name, "Instances");
+            assertEquals(instances.size(), 2);
+        } finally {
+            if (connector != null)
+                connector.close();
+        }
+    }
+
+    @Test
+    public void renameCommand() throws Exception {
+        System.out.println(executeCommand("admin:create itest"));
+        System.out.println(executeCommand("admin:rename itest new_itest"));
+        String instanceListOutput = executeCommand("instance:list");
+        System.out.println(instanceListOutput);
+        assertTrue(instanceListOutput.contains("new_itest"));
+    }
+
+}

Modified: karaf/branches/karaf-2.3.x/tooling/exam/container/pom.xml
URL: 
http://svn.apache.org/viewvc/karaf/branches/karaf-2.3.x/tooling/exam/container/pom.xml?rev=1384668&r1=1384667&r2=1384668&view=diff
==============================================================================
--- karaf/branches/karaf-2.3.x/tooling/exam/container/pom.xml (original)
+++ karaf/branches/karaf-2.3.x/tooling/exam/container/pom.xml Fri Sep 14 
07:31:12 2012
@@ -71,6 +71,10 @@
             <artifactId>pax-exam-container-rbc-client</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.ops4j.pax.url</groupId>
+            <artifactId>pax-url-mvn</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.ops4j.base</groupId>
             <artifactId>ops4j-base-lang</artifactId>
         </dependency>


Reply via email to