123 lines
4.4 KiB
Java
123 lines
4.4 KiB
Java
/*
|
|
* License is provided in the jar as LICENSE also here:
|
|
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/LICENSE
|
|
*/
|
|
package utilities.mocks;
|
|
|
|
import com.djrapitops.plan.Plan;
|
|
import com.djrapitops.plugin.benchmarking.Timings;
|
|
import com.djrapitops.plugin.command.ColorScheme;
|
|
import com.djrapitops.plugin.logging.console.PluginLogger;
|
|
import com.djrapitops.plugin.logging.console.TestPluginLogger;
|
|
import com.djrapitops.plugin.logging.debug.CombineDebugLogger;
|
|
import com.djrapitops.plugin.logging.debug.DebugLogger;
|
|
import com.djrapitops.plugin.logging.debug.MemoryDebugLogger;
|
|
import com.djrapitops.plugin.logging.error.ConsoleErrorLogger;
|
|
import com.djrapitops.plugin.logging.error.ErrorHandler;
|
|
import com.djrapitops.plugin.task.RunnableFactory;
|
|
import org.bukkit.Server;
|
|
import org.bukkit.command.ConsoleCommandSender;
|
|
import org.bukkit.plugin.InvalidDescriptionException;
|
|
import org.bukkit.plugin.PluginDescriptionFile;
|
|
import org.bukkit.scheduler.BukkitScheduler;
|
|
import org.mockito.Mockito;
|
|
import utilities.TestConstants;
|
|
import utilities.mocks.objects.TestLogger;
|
|
import utilities.mocks.objects.TestRunnableFactory;
|
|
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.FileNotFoundException;
|
|
|
|
import static org.mockito.Mockito.doReturn;
|
|
|
|
/**
|
|
* Mocking Utility for Bukkit version of Plan.
|
|
*
|
|
* @author Rsl1122
|
|
*/
|
|
public class PlanBukkitMocker extends Mocker {
|
|
|
|
private Plan planMock;
|
|
|
|
private PlanBukkitMocker() {
|
|
}
|
|
|
|
public static PlanBukkitMocker setUp() {
|
|
return new PlanBukkitMocker().mockPlugin();
|
|
}
|
|
|
|
private PlanBukkitMocker mockPlugin() {
|
|
planMock = Mockito.mock(Plan.class);
|
|
super.planMock = planMock;
|
|
|
|
doReturn(new ColorScheme("§1", "§2", "§3")).when(planMock).getColorScheme();
|
|
doReturn("1.0.0").when(planMock).getVersion();
|
|
|
|
TestLogger testLogger = new TestLogger();
|
|
RunnableFactory runnableFactory = new TestRunnableFactory();
|
|
PluginLogger testPluginLogger = new TestPluginLogger();
|
|
DebugLogger debugLogger = new CombineDebugLogger(new MemoryDebugLogger());
|
|
ErrorHandler consoleErrorLogger = new ConsoleErrorLogger(testPluginLogger);
|
|
Timings timings = new Timings(debugLogger);
|
|
|
|
Mockito.doReturn(testLogger).when(planMock).getLogger();
|
|
doReturn(runnableFactory).when(planMock).getRunnableFactory();
|
|
doReturn(testPluginLogger).when(planMock).getPluginLogger();
|
|
doReturn(debugLogger).when(planMock).getDebugLogger();
|
|
doReturn(consoleErrorLogger).when(planMock).getErrorHandler();
|
|
doReturn(timings).when(planMock).getTimings();
|
|
|
|
return this;
|
|
}
|
|
|
|
public PlanBukkitMocker withDataFolder(File tempFolder) {
|
|
doReturn(tempFolder).when(planMock).getDataFolder();
|
|
return this;
|
|
}
|
|
|
|
@Deprecated
|
|
public PlanBukkitMocker withLogging() {
|
|
return this;
|
|
}
|
|
|
|
public PlanBukkitMocker withPluginDescription() {
|
|
try {
|
|
File pluginYml = getFile("/plugin.yml");
|
|
PluginDescriptionFile description = new PluginDescriptionFile(new FileInputStream(pluginYml));
|
|
doReturn(description).when(planMock).getDescription();
|
|
} catch (FileNotFoundException | InvalidDescriptionException e) {
|
|
System.out.println("Error while setting plugin description");
|
|
}
|
|
return this;
|
|
}
|
|
|
|
public PlanBukkitMocker withResourceFetchingFromJar() throws Exception {
|
|
withPluginFiles();
|
|
return this;
|
|
}
|
|
|
|
public PlanBukkitMocker withServer() {
|
|
Server serverMock = Mockito.mock(Server.class);
|
|
doReturn("").when(serverMock).getIp();
|
|
doReturn("Bukkit").when(serverMock).getName();
|
|
doReturn("Bukkit").when(serverMock).getServerName();
|
|
doReturn(25565).when(serverMock).getPort();
|
|
doReturn("1.12.2").when(serverMock).getVersion();
|
|
doReturn("32423").when(serverMock).getBukkitVersion();
|
|
Mockito.doReturn(TestConstants.BUKKIT_MAX_PLAYERS).when(serverMock).getMaxPlayers();
|
|
ConsoleCommandSender sender = Mockito.mock(ConsoleCommandSender.class);
|
|
doReturn(sender).when(serverMock).getConsoleSender();
|
|
|
|
BukkitScheduler bukkitScheduler = Mockito.mock(BukkitScheduler.class);
|
|
doReturn(bukkitScheduler).when(serverMock).getScheduler();
|
|
|
|
doReturn(serverMock).when(planMock).getServer();
|
|
return this;
|
|
}
|
|
|
|
public Plan getPlanMock() {
|
|
return planMock;
|
|
}
|
|
}
|