]> jfr.im git - irc/rizon/moo.git/commitdiff
Added MooJUnitRunner for easy testing.
authorOrillion <redacted>
Wed, 9 Mar 2016 20:10:43 +0000 (21:10 +0100)
committerOrillion <redacted>
Wed, 9 Mar 2016 20:25:18 +0000 (21:25 +0100)
core/pom.xml
core/src/test/java/net/rizon/moo/plugin/core/CommandRandTest.java
dnsblstats/pom.xml
dnsblstats/src/test/java/net/rizon/moo/plugin/dnsblstats/CommandDnsblStatsTest.java
moo/pom.xml
pom.xml
test/pom.xml [new file with mode: 0644]
test/src/main/java/net/rizon/moo/test/MooJUnitRunner.java [new file with mode: 0644]

index 2ea27861804f5e06f1a012d8ec8f9d64a2f3975c..0aad0c0ffb38ee8427dbc9a50c629c7f8eaaea65 100644 (file)
                        <groupId>com.google.inject.extensions</groupId>
                        <artifactId>guice-testlib</artifactId>
                </dependency>
+               <dependency>
+                       <groupId>net.rizon.moo</groupId>
+                       <artifactId>test</artifactId>
+                       <version>3.0</version>
+                       <scope>test</scope>
+                       <type>jar</type>
+               </dependency>
        </dependencies>
        
        <build>
index 0c00975f92cf84c14f764bd975c00b0f801510e2..6bbfe6f296f4a266a0902c3110fc16ca9af3bd70 100644 (file)
@@ -1,26 +1,23 @@
 package net.rizon.moo.plugin.core;
 
-import com.google.inject.Guice;
-import com.google.inject.Inject;
-import com.google.inject.testing.fieldbinder.BoundFieldModule;
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
+import com.google.inject.Inject;
 import net.rizon.moo.CommandSource;
+import net.rizon.moo.test.MooJUnitRunner;
 import org.junit.Assert;
-import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
-import org.mockito.runners.MockitoJUnitRunner;
 
 /**
  *
  * @author Orillion {@literal <orillion@rizon.net>}
  */
-@RunWith(MockitoJUnitRunner.class)
+@RunWith(MooJUnitRunner.class)
 public class CommandRandTest
 {
        private static final String COMMAND_NAME = "!rand";
@@ -33,12 +30,6 @@ public class CommandRandTest
        
        private final ArgumentCaptor<String> commandSourceCaptor = ArgumentCaptor.forClass(String.class);
 
-       @Before
-       public void setUp()
-       {
-               Guice.createInjector(BoundFieldModule.of(this)).injectMembers(this);
-       }
-
        /**
         * Test of execute method, with no parameters.
         */
index 82e901a91b548667fb9a5316776228b64559c829..6fce4768b9f3b0686edaa61c6cb9c7460549e176 100644 (file)
                        <groupId>com.google.inject.extensions</groupId>
                        <artifactId>guice-testlib</artifactId>
                </dependency>
+               <dependency>
+                       <groupId>net.rizon.moo</groupId>
+                       <artifactId>test</artifactId>
+                       <version>3.0</version>
+                       <scope>test</scope>
+                       <type>jar</type>
+               </dependency>
        </dependencies>
        
        <build>
index 12045bd0faeb9513932f8f4d5d41850e8d4bfd8d..a39139a1b0cb92a1f08a8381a481a8d59fe96ccf 100644 (file)
@@ -4,25 +4,22 @@ import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import com.google.inject.Guice;
 import com.google.inject.Inject;
 import com.google.inject.testing.fieldbinder.Bind;
-import com.google.inject.testing.fieldbinder.BoundFieldModule;
 import net.rizon.moo.CommandSource;
 import net.rizon.moo.irc.Protocol;
 import net.rizon.moo.irc.Server;
 import net.rizon.moo.irc.ServerManager;
-import org.junit.Before;
+import net.rizon.moo.test.MooJUnitRunner;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
-import org.mockito.runners.MockitoJUnitRunner;
 
 /**
  *
  * @author Orillion {@literal <orillion@rizon.net>}
  */
-@RunWith(MockitoJUnitRunner.class)
+@RunWith(MooJUnitRunner.class)
 public class CommandDnsblStatsTest
 {
        private static final String COMMAND_NAME = "!dnsblstats";
@@ -45,12 +42,6 @@ public class CommandDnsblStatsTest
        @Mock
        private CommandSource mockCommandSource;
 
-       @Before
-       public void setUp()
-       {
-               Guice.createInjector(BoundFieldModule.of(this)).injectMembers(this);
-       }
-
        /**
         * Test of execute method, of class CommandDnsblStats.
         */
index 6c3ac81c7d96458e58200266ebe088e7b76cf0bf..9723d6f5a3f2b13b1b31618e545d0f7418ce5531 100644 (file)
                        <artifactId>maven-core</artifactId>
                        <version>3.0.3</version>
                </dependency>
+        <dependency>
+         <groupId>junit</groupId>
+         <artifactId>junit</artifactId>
+         <version>4.11</version>
+         <scope>test</scope>
+         <type>jar</type>
+        </dependency>
+        <dependency>
+         <groupId>com.google.inject.extensions</groupId>
+         <artifactId>guice-testlib</artifactId>
+         <version>4.0</version>
+         <scope>test</scope>
+         <type>jar</type>
+        </dependency>
        </dependencies>
 
        <build>
diff --git a/pom.xml b/pom.xml
index 52eb684de8c3d40f81efb49e7ef3198fb36134bc..dea6b1f4f352a67bd197d534d62f8a745a77060d 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -48,6 +48,7 @@
                <module>vote</module>
                <module>watch</module>
                <module>wiki</module>
+        <module>test</module>
        </modules>
 
        <dependencyManagement>
diff --git a/test/pom.xml b/test/pom.xml
new file mode 100644 (file)
index 0000000..6b53a87
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>net.rizon</groupId>
+        <artifactId>moo</artifactId>
+        <version>3.0</version>
+    </parent>
+       
+       <name>Test classes</name>
+       
+    <groupId>net.rizon.moo</groupId>
+    <artifactId>test</artifactId>
+    <packaging>jar</packaging>
+       
+    <dependencies>
+        <dependency>
+            <groupId>com.google.inject</groupId>
+            <artifactId>guice</artifactId>
+            <version>4.0</version>
+            <type>jar</type>
+        </dependency>
+        <dependency>
+            <groupId>com.google.inject.extensions</groupId>
+            <artifactId>guice-testlib</artifactId>
+                       <scope>compile</scope>
+            <type>jar</type>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+                       <scope>compile</scope>
+            <type>jar</type>
+        </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-all</artifactId>
+                       <scope>compile</scope>
+            <type>jar</type>
+        </dependency>
+    </dependencies>
+</project>
\ No newline at end of file
diff --git a/test/src/main/java/net/rizon/moo/test/MooJUnitRunner.java b/test/src/main/java/net/rizon/moo/test/MooJUnitRunner.java
new file mode 100644 (file)
index 0000000..4ab21cc
--- /dev/null
@@ -0,0 +1,36 @@
+package net.rizon.moo.test;
+
+import com.google.inject.Guice;
+import com.google.inject.testing.fieldbinder.BoundFieldModule;
+import org.junit.runners.BlockJUnit4ClassRunner;
+import org.junit.runners.model.InitializationError;
+import org.mockito.MockitoAnnotations;
+
+/**
+ *
+ * @author Orillion {@literal <orillion@rizon.net>}
+ */
+public class MooJUnitRunner extends BlockJUnit4ClassRunner
+{
+       public MooJUnitRunner(Class<?> klass) throws InitializationError
+       {
+               super(klass);
+               // Perform stuff on static variables here
+       }
+
+       @Override
+       public Object createTest() throws Exception
+       {
+               // Create a new test object
+               Object testObject = super.createTest();
+
+               // Perform stuff on member variables here
+
+               // Init mocks first, else we're binding null objects
+               MockitoAnnotations.initMocks(testObject);
+               // Inject everything in the test object
+               Guice.createInjector(BoundFieldModule.of(testObject)).injectMembers(testObject);
+
+               return testObject;
+       }
+}