<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>
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";
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.
*/
<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>
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";
@Mock
private CommandSource mockCommandSource;
- @Before
- public void setUp()
- {
- Guice.createInjector(BoundFieldModule.of(this)).injectMembers(this);
- }
-
/**
* Test of execute method, of class CommandDnsblStats.
*/
<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>
<module>vote</module>
<module>watch</module>
<module>wiki</module>
+ <module>test</module>
</modules>
<dependencyManagement>
--- /dev/null
+<?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
--- /dev/null
+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;
+ }
+}