feat(redis): add test for redis cache

This commit is contained in:
ineanto 2023-05-22 14:13:40 +02:00
parent 17fa5e81e7
commit 318c0ffefd
6 changed files with 71 additions and 9 deletions

View file

@ -39,4 +39,15 @@ public class DataSourceConfiguration {
public String getPassword() { public String getPassword() {
return password; return password;
} }
@Override
public String toString() {
return "DataSourceConfiguration{" +
"enabled=" + enabled +
", address='" + address + '\'' +
", port=" + port +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
} }

View file

@ -21,6 +21,7 @@ public class RedisCache extends Cache {
private RedisCacheProvider provider; private RedisCacheProvider provider;
public RedisCache(Configuration configuration) { public RedisCache(Configuration configuration) {
System.out.println("Loaded REDIS CACHE");
this.configuration = configuration; this.configuration = configuration;
} }

View file

@ -1,6 +1,7 @@
package xyz.atnrch.nicko.storage.redis; package xyz.atnrch.nicko.storage.redis;
import xyz.atnrch.nicko.config.Configuration; import xyz.atnrch.nicko.config.Configuration;
import xyz.atnrch.nicko.config.DataSourceConfiguration;
import xyz.atnrch.nicko.storage.CacheProvider; import xyz.atnrch.nicko.storage.CacheProvider;
import redis.clients.jedis.Jedis; import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPool;
@ -15,9 +16,10 @@ public class RedisCacheProvider implements CacheProvider {
@Override @Override
public boolean init() { public boolean init() {
final DataSourceConfiguration redisConfiguration = configuration.getRedisConfiguration();
pool = new JedisPool( pool = new JedisPool(
configuration.getRedisConfiguration().getAddress(), redisConfiguration.getAddress(),
configuration.getRedisConfiguration().getPort() redisConfiguration.getPort()
); );
return !pool.isClosed() && pool.getResource() != null; return !pool.isClosed() && pool.getResource() != null;
} }

View file

@ -26,10 +26,10 @@ public class SQLStorageProvider implements StorageProvider {
public boolean init() { public boolean init() {
try { try {
final MariaDbDataSource dataSource = new MariaDbDataSource(); final MariaDbDataSource dataSource = new MariaDbDataSource();
final DataSourceConfiguration dataSourceConfiguration = configuration.getSqlConfiguration(); final DataSourceConfiguration sqlConfiguration = configuration.getSqlConfiguration();
dataSource.setUrl("jdbc:mariadb://" + dataSourceConfiguration.getAddress() + ":" + dataSourceConfiguration.getPort()); dataSource.setUrl("jdbc:mariadb://" + sqlConfiguration.getAddress() + ":" + sqlConfiguration.getPort());
dataSource.setUser(dataSourceConfiguration.getUsername()); dataSource.setUser(sqlConfiguration.getUsername());
dataSource.setPassword(dataSourceConfiguration.getPassword()); dataSource.setPassword(sqlConfiguration.getPassword());
connection = dataSource.getConnection(); connection = dataSource.getConnection();
final boolean initialized = connection != null && !connection.isClosed(); final boolean initialized = connection != null && !connection.isClosed();

View file

@ -1,4 +1,4 @@
package xyz.atnrch.nicko.test.storage.cache; package xyz.atnrch.nicko.test.storage.map;
import be.seeseemelk.mockbukkit.MockBukkit; import be.seeseemelk.mockbukkit.MockBukkit;
import be.seeseemelk.mockbukkit.ServerMock; import be.seeseemelk.mockbukkit.ServerMock;
@ -16,7 +16,7 @@ import java.util.Optional;
import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
public class CacheStorageTest { public class MapCacheTest {
private static ServerMock server; private static ServerMock server;
private static NickoBukkit plugin; private static NickoBukkit plugin;
private static PlayerMock player; private static PlayerMock player;
@ -24,7 +24,7 @@ public class CacheStorageTest {
@BeforeAll @BeforeAll
public static void setup() { public static void setup() {
final Configuration config = new Configuration( final Configuration config = new Configuration(
new DataSourceConfiguration(false, "127.0.0.1", 3306, "root", "12345"), DataSourceConfiguration.SQL_EMPTY,
DataSourceConfiguration.REDIS_EMPTY, DataSourceConfiguration.REDIS_EMPTY,
"", "",
false); false);

View file

@ -0,0 +1,48 @@
package xyz.atnrch.nicko.test.storage.redis;
import be.seeseemelk.mockbukkit.MockBukkit;
import be.seeseemelk.mockbukkit.ServerMock;
import be.seeseemelk.mockbukkit.entity.PlayerMock;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.config.Configuration;
import xyz.atnrch.nicko.config.DataSourceConfiguration;
import xyz.atnrch.nicko.disguise.NickoProfile;
import java.util.Optional;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class RedisCacheTest {
private static ServerMock server;
private static NickoBukkit plugin;
private static PlayerMock player;
@BeforeAll
public static void setup() {
final Configuration config = new Configuration(
DataSourceConfiguration.SQL_EMPTY,
new DataSourceConfiguration(true, "127.0.0.1", 6379, "", ""),
"",
false);
server = MockBukkit.mock();
plugin = MockBukkit.load(NickoBukkit.class, config);
player = server.addPlayer();
}
@Test
@DisplayName("Cache Player Data")
public void cachePlayerData() {
final Optional<NickoProfile> optionalProfile = plugin.getDataStore().getData(player.getUniqueId());
assertTrue(optionalProfile.isPresent());
assertTrue(plugin.getDataStore().getCache().isCached(player.getUniqueId()));
}
@AfterAll
public static void shutdown() {
MockBukkit.unmock();
}
}