fix metric saving for running in tests

This commit is contained in:
Lee 2024-04-19 22:42:32 +01:00
parent 5871c64582
commit e5935c6696
5 changed files with 23 additions and 10 deletions

@ -4,7 +4,7 @@ import lombok.Getter;
import lombok.experimental.UtilityClass;
@UtilityClass
public final class EnvironmentUtils {
public final class AppConfig {
/**
* Is the app running in a production environment?
*/
@ -14,4 +14,17 @@ public final class EnvironmentUtils {
String env = System.getenv("ENVIRONMENT");
production = env != null && (env.equals("production"));
}
/**
* Is the app running in a test environment?
*/
@Getter
private static boolean isRunningTest = true;
static {
try {
Class.forName("org.junit.Test");
} catch (ClassNotFoundException e) {
isRunningTest = false;
}
}
}

@ -6,7 +6,7 @@ import com.influxdb.spring.influx.InfluxDB2AutoConfiguration;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import xyz.mcutils.backend.common.EnvironmentUtils;
import xyz.mcutils.backend.common.AppConfig;
import xyz.mcutils.backend.common.Timer;
import xyz.mcutils.backend.repository.mongo.MetricsRepository;
import xyz.mcutils.backend.service.metric.Metric;
@ -56,7 +56,7 @@ public class MetricService {
collectorEnabled.put(metric, metric.isCollector());
}
if (EnvironmentUtils.isProduction()) {
if (!AppConfig.isRunningTest()) {
// Load the metrics from Redis
loadMetrics();

@ -11,7 +11,7 @@ import lombok.extern.log4j.Log4j2;
import net.jodah.expiringmap.ExpirationPolicy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import xyz.mcutils.backend.common.EnvironmentUtils;
import xyz.mcutils.backend.common.AppConfig;
import xyz.mcutils.backend.common.ExpiringSet;
import xyz.mcutils.backend.common.WebRequest;
import xyz.mcutils.backend.model.cache.CachedEndpointStatus;
@ -186,7 +186,7 @@ public class MojangService {
public CachedEndpointStatus getMojangApiStatus() {
log.info("Getting Mojang API status");
Optional<CachedEndpointStatus> endpointStatus = mojangEndpointStatusRepository.findById(MOJANG_ENDPOINT_STATUS_KEY);
if (endpointStatus.isPresent() && EnvironmentUtils.isProduction()) {
if (endpointStatus.isPresent() && AppConfig.isProduction()) {
log.info("Got cached Mojang API status");
return endpointStatus.get();
}

@ -61,7 +61,7 @@ public class PlayerService {
}
Optional<CachedPlayer> cachedPlayer = playerCacheRepository.findById(uuid);
if (cachedPlayer.isPresent() && EnvironmentUtils.isProduction()) { // Return the cached player if it exists
if (cachedPlayer.isPresent() && AppConfig.isProduction()) { // Return the cached player if it exists
log.info("Player {} is cached", id);
return cachedPlayer.get();
}
@ -105,7 +105,7 @@ public class PlayerService {
log.info("Getting UUID from username: {}", username);
String id = username.toUpperCase();
Optional<CachedPlayerName> cachedPlayerName = playerNameCacheRepository.findById(id);
if (cachedPlayerName.isPresent() && EnvironmentUtils.isProduction()) {
if (cachedPlayerName.isPresent() && AppConfig.isProduction()) {
return cachedPlayerName.get();
}
try {
@ -155,7 +155,7 @@ public class PlayerService {
Optional<CachedPlayerSkinPart> cache = playerSkinPartCacheRepository.findById(key);
// The skin part is cached
if (cache.isPresent() && EnvironmentUtils.isProduction()) {
if (cache.isPresent() && AppConfig.isProduction()) {
log.info("Skin part {} for player {} is cached", name, player.getUniqueId());
return cache.get();
}

@ -5,7 +5,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import xyz.mcutils.backend.common.DNSUtils;
import xyz.mcutils.backend.common.EnumUtils;
import xyz.mcutils.backend.common.EnvironmentUtils;
import xyz.mcutils.backend.common.AppConfig;
import xyz.mcutils.backend.exception.impl.BadRequestException;
import xyz.mcutils.backend.exception.impl.ResourceNotFoundException;
import xyz.mcutils.backend.model.cache.CachedMinecraftServer;
@ -67,7 +67,7 @@ public class ServerService {
// Check if the server is cached
Optional<CachedMinecraftServer> cached = serverCacheRepository.findById(key);
if (cached.isPresent() && EnvironmentUtils.isProduction()) {
if (cached.isPresent() && AppConfig.isProduction()) {
log.info("Server {}:{} is cached", hostname, port);
return cached.get();
}