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() {
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;
public RedisCache(Configuration configuration) {
System.out.println("Loaded REDIS CACHE");
this.configuration = configuration;
}

View file

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

View file

@ -26,10 +26,10 @@ public class SQLStorageProvider implements StorageProvider {
public boolean init() {
try {
final MariaDbDataSource dataSource = new MariaDbDataSource();
final DataSourceConfiguration dataSourceConfiguration = configuration.getSqlConfiguration();
dataSource.setUrl("jdbc:mariadb://" + dataSourceConfiguration.getAddress() + ":" + dataSourceConfiguration.getPort());
dataSource.setUser(dataSourceConfiguration.getUsername());
dataSource.setPassword(dataSourceConfiguration.getPassword());
final DataSourceConfiguration sqlConfiguration = configuration.getSqlConfiguration();
dataSource.setUrl("jdbc:mariadb://" + sqlConfiguration.getAddress() + ":" + sqlConfiguration.getPort());
dataSource.setUser(sqlConfiguration.getUsername());
dataSource.setPassword(sqlConfiguration.getPassword());
connection = dataSource.getConnection();
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.ServerMock;
@ -16,7 +16,7 @@ import java.util.Optional;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class CacheStorageTest {
public class MapCacheTest {
private static ServerMock server;
private static NickoBukkit plugin;
private static PlayerMock player;
@ -24,7 +24,7 @@ public class CacheStorageTest {
@BeforeAll
public static void setup() {
final Configuration config = new Configuration(
new DataSourceConfiguration(false, "127.0.0.1", 3306, "root", "12345"),
DataSourceConfiguration.SQL_EMPTY,
DataSourceConfiguration.REDIS_EMPTY,
"",
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();
}
}