[Test] Fixed BungeeSystem enable test

This commit is contained in:
Rsl1122 2018-10-13 12:43:18 +03:00
parent 55c49bd220
commit 3096e962b5
7 changed files with 99 additions and 55 deletions

View File

@ -37,7 +37,7 @@ public class BukkitDBSystem extends DBSystem {
Timings timings,
ErrorHandler errorHandler
) {
super(locale, logger, timings, errorHandler);
super(locale, sqLiteDB, logger, timings, errorHandler);
this.config = config;
databases.add(mySQLDB);

View File

@ -9,6 +9,7 @@ import com.djrapitops.plan.api.exceptions.database.DBException;
import com.djrapitops.plan.api.exceptions.database.DBInitException;
import com.djrapitops.plan.system.SubSystem;
import com.djrapitops.plan.system.database.databases.Database;
import com.djrapitops.plan.system.database.databases.sql.SQLiteDB;
import com.djrapitops.plan.system.locale.Locale;
import com.djrapitops.plan.system.locale.lang.PluginLang;
import com.djrapitops.plugin.benchmarking.Timings;
@ -30,6 +31,7 @@ import java.util.Set;
public abstract class DBSystem implements SubSystem {
protected final Locale locale;
private final SQLiteDB.Factory sqLiteFactory;
protected final PluginLogger logger;
protected final Timings timings;
protected final ErrorHandler errorHandler;
@ -39,11 +41,13 @@ public abstract class DBSystem implements SubSystem {
public DBSystem(
Locale locale,
SQLiteDB.Factory sqLiteDB,
PluginLogger logger,
Timings timings,
ErrorHandler errorHandler
) {
this.locale = locale;
sqLiteFactory = sqLiteDB;
this.logger = logger;
this.timings = timings;
this.errorHandler = errorHandler;
@ -96,4 +100,8 @@ public abstract class DBSystem implements SubSystem {
this.db.close();
this.db = db;
}
public SQLiteDB.Factory getSqLiteFactory() {
return sqLiteFactory;
}
}

View File

@ -5,6 +5,7 @@
package com.djrapitops.plan.system.database;
import com.djrapitops.plan.system.database.databases.sql.MySQLDB;
import com.djrapitops.plan.system.database.databases.sql.SQLiteDB;
import com.djrapitops.plan.system.locale.Locale;
import com.djrapitops.plugin.benchmarking.Timings;
import com.djrapitops.plugin.logging.console.PluginLogger;
@ -25,11 +26,12 @@ public class ProxyDBSystem extends DBSystem {
public ProxyDBSystem(
Locale locale,
MySQLDB mySQLDB,
SQLiteDB.Factory sqLiteDB,
PluginLogger logger,
Timings timings,
ErrorHandler errorHandler
) {
super(locale, logger, timings, errorHandler);
super(locale, sqLiteDB, logger, timings, errorHandler);
databases.add(mySQLDB);
db = mySQLDB;
}

View File

@ -21,9 +21,16 @@ import javax.inject.Singleton;
public class SpongeDBSystem extends DBSystem {
@Inject
public SpongeDBSystem(Locale locale, SpongeMySQLDB spongeMySQLDB, SQLiteDB.Factory sqLiteDB, PlanConfig config,
PluginLogger logger, Timings timings, ErrorHandler errorHandler) {
super(locale, logger, timings, errorHandler);
public SpongeDBSystem(
Locale locale,
SpongeMySQLDB spongeMySQLDB,
SQLiteDB.Factory sqLiteDB,
PlanConfig config,
PluginLogger logger,
Timings timings,
ErrorHandler errorHandler
) {
super(locale, sqLiteDB, logger, timings, errorHandler);
databases.add(spongeMySQLDB);
databases.add(sqLiteDB.usingDefaultFile());

View File

@ -4,8 +4,9 @@
*/
package com.djrapitops.plan;
import com.djrapitops.plan.api.exceptions.EnableException;
import com.djrapitops.plan.system.PlanSystem;
import com.djrapitops.plan.system.database.DBSystem;
import com.djrapitops.plan.system.settings.Settings;
import org.junit.*;
import org.junit.rules.ExpectedException;
import org.junit.rules.TemporaryFolder;
@ -24,8 +25,8 @@ public class BungeeBukkitConnectionTest {
@ClassRule
public static TemporaryFolder temporaryFolder = new TemporaryFolder();
private static Plan bukkitMock;
private static PlanBungee bungeeMock;
private static PlanComponent BUKKIT_COMPONENT;
private static PlanBungeeComponent BUNGEE_COMPONENT;
@Rule
public ExpectedException thrown = ExpectedException.none();
@ -40,19 +41,17 @@ public class BungeeBukkitConnectionTest {
public static void setUpClass() throws Exception {
PlanBukkitMocker planBukkitMocker = PlanBukkitMocker.setUp()
.withDataFolder(temporaryFolder.getRoot())
.withLogging()
.withPluginDescription()
.withResourceFetchingFromJar()
.withServer();
bukkitMock = planBukkitMocker.getPlanMock();
BUKKIT_COMPONENT = DaggerPlanComponent.builder().plan(planBukkitMocker.getPlanMock()).build();
PlanBungeeMocker planBungeeMocker = PlanBungeeMocker.setUp()
.withDataFolder(temporaryFolder.getRoot())
.withLogging()
.withPluginDescription()
.withResourceFetchingFromJar()
.withProxy();
bungeeMock = planBungeeMocker.getPlanMock();
BUNGEE_COMPONENT = DaggerPlanBungeeComponent.builder().plan(planBungeeMocker.getPlanMock()).build();
}
@After
@ -68,24 +67,21 @@ public class BungeeBukkitConnectionTest {
}
}
public void enable() throws EnableException {
// Settings.WEBSERVER_PORT.setTemporaryValue(9005);
public void enable() throws Exception {
bukkitSystem = BUKKIT_COMPONENT.system();
bungeeSystem = BUNGEE_COMPONENT.system();
bukkitSystem.getConfigSystem().getConfig().set(Settings.WEBSERVER_PORT, 9005);
bungeeSystem.getConfigSystem().getConfig().set(Settings.WEBSERVER_PORT, 9250);
DBSystem dbSystem = bungeeSystem.getDatabaseSystem();
dbSystem.setActiveDatabase(dbSystem.getSqLiteFactory().usingDefaultFile());
bukkitSystem = null; // TODO
bukkitSystem.enable();
bukkitUUID = null;
bungeeSystem = null; // TODO
// Settings.WEBSERVER_PORT.setTemporaryValue(9250);
// Settings.BUNGEE_IP.setTemporaryValue("localhost");
// Settings.DB_TYPE.setTemporaryValue("sqlite");
// bungeeSystem.setDatabaseSystem(new BukkitDBSystem(new Locale()));
bungeeSystem.enable();
bungeeUUID = null;
bukkitUUID = bukkitSystem.getServerInfo().getServerUUID();
bungeeUUID = bungeeSystem.getServerInfo().getServerUUID();
System.out.println("------------------------------");
System.out.println("Enable Complete");
@ -96,7 +92,7 @@ public class BungeeBukkitConnectionTest {
@Test
@Ignore("Causes next BungeeSystem test to fail")
public void testRequest() throws EnableException {
public void testRequest() throws Exception {
enable();
System.out.println("Sending request");

View File

@ -6,6 +6,9 @@ package com.djrapitops.plan;
import com.djrapitops.plan.api.exceptions.EnableException;
import com.djrapitops.plan.system.PlanSystem;
import com.djrapitops.plan.system.database.DBSystem;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.system.settings.config.PlanConfig;
import org.junit.*;
import org.junit.rules.ExpectedException;
import org.junit.rules.TemporaryFolder;
@ -23,22 +26,28 @@ public class BungeeSystemTest {
@ClassRule
public static TemporaryFolder temporaryFolder = new TemporaryFolder();
private static PlanBungee planMock;
private static PlanBungee PLUGIN_MOCK;
@Rule
public ExpectedException thrown = ExpectedException.none();
private PlanBungeeComponent component;
private PlanSystem bungeeSystem;
@BeforeClass
public static void setUpClass() throws Exception {
PlanBungeeMocker mockUtil = PlanBungeeMocker.setUp()
.withDataFolder(temporaryFolder.getRoot())
.withLogging()
PlanBungeeMocker mocker = PlanBungeeMocker.setUp()
.withDataFolder(temporaryFolder.newFolder())
.withPluginDescription()
.withResourceFetchingFromJar()
.withProxy();
planMock = mockUtil.getPlanMock();
PLUGIN_MOCK = mocker.getPlanMock();
}
@Before
public void setUp() {
component = DaggerPlanBungeeComponent.builder().plan(PLUGIN_MOCK).build();
}
@After
public void tearDown() {
if (bungeeSystem != null) {
@ -47,29 +56,33 @@ public class BungeeSystemTest {
}
@Test
@Ignore
public void testEnable() throws EnableException {
bungeeSystem = null; //TODO
public void bungeeEnables() throws Exception {
bungeeSystem = component.system();
// Settings.WEBSERVER_PORT.setTemporaryValue(9005);
// Settings.BUNGEE_IP.setTemporaryValue("8.8.8.8");
// Settings.DB_TYPE.setTemporaryValue("sqlite");
// bungeeSystem.setDatabaseSystem(new BukkitDBSystem(Locale::new));
PlanConfig config = bungeeSystem.getConfigSystem().getConfig();
config.set(Settings.WEBSERVER_PORT, 9005);
config.set(Settings.BUNGEE_IP, "8.8.8.8");
DBSystem dbSystem = bungeeSystem.getDatabaseSystem();
dbSystem.setActiveDatabase(dbSystem.getSqLiteFactory().usingDefaultFile());
bungeeSystem.enable();
}
@Test
@Ignore
public void testEnableDefaultIP() throws EnableException {
@Ignore("First test causes config settings to be wrong")
public void bungeeDoesNotEnableWithDefaultIP() throws Exception {
thrown.expect(EnableException.class);
thrown.expectMessage("IP setting still 0.0.0.0 - Configure AlternativeIP/IP that connects to the Proxy server.");
bungeeSystem = null; //TODO
bungeeSystem = component.system();
// Settings.WEBSERVER_PORT.setTemporaryValue(9005);
// Settings.DB_TYPE.setTemporaryValue("sqlite");
// bungeeSystem.setDatabaseSystem(new BukkitDBSystem(Locale::new));
PlanConfig config = bungeeSystem.getConfigSystem().getConfig();
config.set(Settings.WEBSERVER_PORT, 9005);
config.set(Settings.BUNGEE_IP, "0.0.0.0");
DBSystem dbSystem = bungeeSystem.getDatabaseSystem();
dbSystem.setActiveDatabase(dbSystem.getSqLiteFactory().usingDefaultFile());
bungeeSystem.enable();
}
@ -80,7 +93,12 @@ public class BungeeSystemTest {
thrown.expect(EnableException.class);
thrown.expectMessage("Database failed to initialize");
bungeeSystem = null; //TODO
bungeeSystem = component.system();
PlanConfig config = bungeeSystem.getConfigSystem().getConfig();
config.set(Settings.WEBSERVER_PORT, 9005);
config.set(Settings.BUNGEE_IP, "8.8.8.8");
bungeeSystem.enable();
}
}

View File

@ -5,8 +5,15 @@
package utilities.mocks;
import com.djrapitops.plan.PlanBungee;
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.thread.ThreadRunnableFactory;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.ProxyConfig;
@ -43,11 +50,22 @@ public class PlanBungeeMocker extends Mocker {
planMock = Mockito.mock(PlanBungee.class);
super.planMock = planMock;
when(planMock.getVersion()).thenCallRealMethod();
when(planMock.getColorScheme()).thenCallRealMethod();
doReturn(new ColorScheme("§1", "§2", "§3")).when(planMock).getColorScheme();
doReturn("1.0.0").when(planMock).getVersion();
TestLogger testLogger = new TestLogger();
ThreadRunnableFactory runnableFactory = new ThreadRunnableFactory();
PluginLogger testPluginLogger = new TestPluginLogger();
DebugLogger debugLogger = new CombineDebugLogger(new MemoryDebugLogger());
ErrorHandler consoleErrorLogger = new ConsoleErrorLogger(testPluginLogger);
Timings timings = new Timings(debugLogger);
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;
}
@ -62,13 +80,8 @@ public class PlanBungeeMocker extends Mocker {
return this;
}
@Deprecated
public PlanBungeeMocker withLogging() {
TestLogger testLogger = new TestLogger();
doReturn(testLogger).when(planMock).getLogger();
TestPluginLogger testPluginLogger = new TestPluginLogger();
doReturn(testPluginLogger).when(planMock).getPluginLogger();
ConsoleErrorLogger consoleErrorLogger = new ConsoleErrorLogger(testPluginLogger);
doReturn(consoleErrorLogger).when(planMock).getErrorHandler();
return this;
}