>From ed6209290f9f2d03b26705ca3f9c03eb40309a94 Mon Sep 17 00:00:00 2001
Message-Id: 
<ed6209290f9f2d03b26705ca3f9c03eb40309a94.1350037981.git.cb...@av-test.de>
In-Reply-To: <cover.1350037981.git.cb...@av-test.de>
References: <2da6f4a3691599408358374d182280f9141...@xmb-rcd-x04.cisco.com>      
<cover.1350037981.git.cb...@av-test.de>
From: cb...@av-test.de (Claudio Bley)
Date: Tue, 21 Aug 2012 16:31:12 +0200
Subject: [PATCH 09/15] Split JUnit tests and use a fixture for Connect.
To: libvir-list@redhat.com
Organization: AV-Test GmbH, Germany

The tests have been separated into a test case requiring
a libvirt connection and a test case which does not.

Every test gets a new Connect instance by using a fixture.
This avoids duplicate code and makes tests more consistent.
---
 build.xml                                         |    9 ++--
 src/test/java/org/libvirt/TestJavaBindings.java   |   47 +++++++++++----------
 src/test/java/org/libvirt/TestLibvirtGlobals.java |   21 +++++++++
 3 files changed, 51 insertions(+), 26 deletions(-)

diff --git a/build.xml b/build.xml
index 0b147b0..4b73562 100644
--- a/build.xml
+++ b/build.xml
@@ -49,11 +49,14 @@
        </target>
 
        <target name="test" depends="build" description="tests the code">
-               <junit printsummary="yes" fork="yes">
+               <junit printsummary="yes" fork="yes" forkMode="perBatch">
                        <formatter type="plain" />
                        <classpath refid="test.classpath" />
-                       <test name="org.libvirt.TestJavaBindings" 
outfile="target/testResults">
-                       </test>
+                       <batchtest todir="target">
+                               <fileset dir="src/test/java">
+                                       <include name="**/Test*.java" />
+                               </fileset>
+                       </batchtest>
                </junit>
        </target>
 
diff --git a/src/test/java/org/libvirt/TestJavaBindings.java 
b/src/test/java/org/libvirt/TestJavaBindings.java
index bac7a82..55ca64b 100644
--- a/src/test/java/org/libvirt/TestJavaBindings.java
+++ b/src/test/java/org/libvirt/TestJavaBindings.java
@@ -4,28 +4,35 @@ import java.util.UUID;
 
 import junit.framework.TestCase;
 
-public class TestJavaBindings extends TestCase {
-
-    int UUIDArray[] = { Integer.decode("0x00"), Integer.decode("0x4b"), 
Integer.decode("0x96"), Integer.decode("0xe1"),
+public final class TestJavaBindings extends TestCase {
+    final int UUIDArray[] = { Integer.decode("0x00"), Integer.decode("0x4b"), 
Integer.decode("0x96"), Integer.decode("0xe1"),
             Integer.decode("0x2d"), Integer.decode("0x78"), 
Integer.decode("0xc3"), Integer.decode("0x0f"),
             Integer.decode("0x5a"), Integer.decode("0xa5"), 
Integer.decode("0xf0"), Integer.decode("0x3c"),
             Integer.decode("0x87"), Integer.decode("0xd2"), 
Integer.decode("0x1e"), Integer.decode("0x67") };
 
-    public void testErrorCallback() throws Exception {
+    private Connect conn;
+
+    protected void setUp() throws LibvirtException {
+        conn = new Connect("test:///default", false);
+    }
+
+    protected void tearDown() throws LibvirtException {
+        conn.close();
+        conn = null;
+    }
+
+    public void testConnectionErrorCallback() throws LibvirtException {
         DummyErrorCallback cb = new DummyErrorCallback();
-        Connect.setErrorCallback(cb);
+        conn.setConnectionErrorCallback(cb);
+
         try {
-            Connect conn = new Connect("test:///someUrl", false);
-        } catch (Exception e) {
-            // eat it
-        }
-        assertTrue("We should have caught an error", cb.error);
-        Connect conn = new Connect("test:///default", false);
-        conn.setConnectionErrorCallback(cb) ;
+            conn.domainDefineXML("fail, miserably");
+        } catch (LibvirtException e) {} // ignore
+
+        assertTrue("Error callback was not called", cb.error);
     }
 
     public void testConnection() throws Exception {
-        Connect conn = new Connect("test:///default", false);
         assertEquals("conn.getType()", "Test", conn.getType());
         assertEquals("conn.getURI()", "test:///default", conn.getURI());
         assertEquals("conn.getMaxVcpus(xen)", 32, conn.getMaxVcpus("xen"));
@@ -39,7 +46,6 @@ public class TestJavaBindings extends TestCase {
     }
 
     public void testNodeInfo() throws Exception {
-        Connect conn = new Connect("test:///default", false);
         NodeInfo nodeInfo = conn.nodeInfo();
         assertEquals("nodeInfo.model", "i686", nodeInfo.model);
         assertEquals("nodeInfo.memory", 3145728, nodeInfo.memory);
@@ -56,8 +62,6 @@ public class TestJavaBindings extends TestCase {
     }
 
     public void testNetworkCreate() throws Exception {
-        Connect conn = new Connect("test:///default", false);
-
         Network network1 = conn.networkCreateXML("<network>" + "  
<name>createst</name>"
                 + "  <uuid>004b96e1-2d78-c30f-5aa5-f03c87d21e68</uuid>" + "  
<bridge name='createst'/>"
                 + "  <forward dev='eth0'/>" + "  <ip address='192.168.66.1' 
netmask='255.255.255.0'>" + "    <dhcp>"
@@ -103,8 +107,6 @@ public class TestJavaBindings extends TestCase {
     }
 
     public void testDomainCreate() throws Exception {
-        Connect conn = new Connect("test:///default", false);
-
         Domain dom1 = conn.domainDefineXML("<domain type='test' id='2'>" + "  
<name>deftest</name>"
                 + "  <uuid>004b96e1-2d78-c30f-5aa5-f03c87d21e70</uuid>" + "  
<memory>8388608</memory>"
                 + "  <vcpu>2</vcpu>" + "  <os><type 
arch='i686'>hvm</type></os>" + "  <on_reboot>restart</on_reboot>"
@@ -129,7 +131,7 @@ public class TestJavaBindings extends TestCase {
         
this.validateDomainData(conn.domainLookupByUUID(UUID.fromString("004b96e1-2d78-c30f-5aa5-f03c87d21e67")));
     }
 
-    public void validateDomainData(Domain dom) throws Exception {
+    private void validateDomainData(Domain dom) throws Exception {
         assertEquals("dom.getName()", "createst", dom.getName());
         assertEquals("dom.getMaxMemory()", 8388608, dom.getMaxMemory());
         // Not supported by the test driver
@@ -162,7 +164,6 @@ public class TestJavaBindings extends TestCase {
     }
 
     public void testInterfaces() throws Exception {
-        Connect conn = new Connect("test:///default", false);
         assertEquals("numOfInterfaces:", 1, conn.numOfInterfaces());
         assertEquals("numOfInterfaces:", 0, conn.numOfDefinedInterfaces());
         assertEquals("listDefinedInterfaces:", "eth1", 
conn.listInterfaces()[0]);
@@ -188,18 +189,18 @@ public class TestJavaBindings extends TestCase {
     }
 
     public void testAccessAfterClose() throws Exception {
-        Connect conn = new Connect("test:///default", false);
         conn.close();
         assertTrue("conn.isConnected should be false", !conn.isConnected());
+        LibvirtException virException = null;
         try {
             conn.getHostName();
         } catch (LibvirtException e) {
-            // eat it
+            virException = e;
         }
+        assertNotNull(virException);
     }
     
     public void testStoragePool() throws Exception {
-        Connect conn = new Connect("test:///default", false);           
         StoragePool pool1 = conn.storagePoolDefineXML("<pool type='dir'>"
                 + "  <name>pool1</name>"
                 + "  <target>"
diff --git a/src/test/java/org/libvirt/TestLibvirtGlobals.java 
b/src/test/java/org/libvirt/TestLibvirtGlobals.java
new file mode 100644
index 0000000..b2b0d9f
--- /dev/null
+++ b/src/test/java/org/libvirt/TestLibvirtGlobals.java
@@ -0,0 +1,21 @@
+package org.libvirt;
+
+import java.util.UUID;
+
+import junit.framework.TestCase;
+
+/**
+ * libvirt tests not requiring an active connection
+ */
+public class TestLibvirtGlobals extends TestCase {
+    public void testErrorCallback() throws Exception {
+        DummyErrorCallback cb = new DummyErrorCallback();
+        Connect.setErrorCallback(cb);
+        try {
+            Connect conn = new Connect("test:///someUrl", false);
+        } catch (LibvirtException e) {
+            // eat it
+        }
+        assertTrue("We should have caught an error", cb.error);
+    }
+}
-- 
AV-Test GmbH, Henricistraße 20, 04155 Leipzig, Germany
Phone: +49 341 265 310 19
Web:<http://www.av-test.org>

Eingetragen am / Registered at: Amtsgericht Stendal (HRB 114076)
Geschaeftsfuehrer (CEO): Andreas Marx, Guido Habicht, Maik Morgenstern

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to