Skip to content

Commit 464b668

Browse files
committed
Create TestRedis.java
1 parent 549c960 commit 464b668

1 file changed

Lines changed: 168 additions & 0 deletions

File tree

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
package io.github.intisy.utils.custom.external;
2+
3+
import io.github.intisy.simple.logger.Log;
4+
5+
import java.io.IOException;
6+
7+
/**
8+
* @author Finn Birich
9+
*/
10+
public class TestRedis {
11+
public static void main(String[] args) {
12+
System.out.println("Redis Client Event System Demonstration");
13+
System.out.println("======================================\n");
14+
15+
System.out.println("1. Testing with embedded Redis server (with automatic fallback):\n");
16+
testWithEmbeddedRedis();
17+
18+
System.out.println("\n2. Testing with explicit Mock Redis (no server required):\n");
19+
testWithMockRedis();
20+
21+
System.out.println("\n3. Testing with Kubernetes Redis connection:\n");
22+
System.out.println("(This will likely fail if not running in Kubernetes or with port forwarding)");
23+
testWithKubernetesRedis();
24+
}
25+
26+
private static void testWithEmbeddedRedis() {
27+
Redis redis = new Redis(6379, true);
28+
29+
try {
30+
System.out.println("Attempting to connect to embedded Redis server...");
31+
redis.connect();
32+
33+
if (redis.isConnected()) {
34+
System.out.println("Embedded Redis server is running");
35+
36+
redis.addDataListener(new Redis.RedisDataListener() {
37+
@Override
38+
public void onDataReceived(String key, String value) {
39+
System.out.println("[EVENT] Data received - Key: " + key + ", Value: " + value);
40+
}
41+
42+
@Override
43+
public void onDataSet(String key, String value) {
44+
System.out.println("[EVENT] Data set - Key: " + key + ", Value: " + value);
45+
}
46+
});
47+
48+
String key = "testKey";
49+
String value = "testValue";
50+
51+
System.out.println("\nTesting Redis operations:");
52+
System.out.println("Setting data: " + key + " = " + value);
53+
redis.setData(key, value);
54+
55+
System.out.println("Getting data for key: " + key);
56+
String retrievedValue = redis.getData(key);
57+
System.out.println("Retrieved value: " + retrievedValue);
58+
59+
System.out.println("Checking if key exists: " + key);
60+
boolean keyExists = redis.exists(key);
61+
System.out.println("Key exists: " + keyExists);
62+
63+
System.out.println("Setting data with expiry: expireKey = expireValue (10 seconds)");
64+
redis.setDataWithExpiry("expireKey", "expireValue", 10);
65+
66+
System.out.println("Deleting key: " + key);
67+
redis.deleteData(key);
68+
69+
System.out.println("Checking if key exists after deletion: " + key);
70+
boolean keyExistsAfterDeletion = redis.exists(key);
71+
System.out.println("Key exists after deletion: " + keyExistsAfterDeletion);
72+
} else {
73+
System.out.println("Failed to connect to Redis server.");
74+
}
75+
} catch (IOException e) {
76+
System.out.println("Failed to start embedded Redis: " + e.getMessage());
77+
} finally {
78+
redis.disconnect();
79+
}
80+
}
81+
82+
private static void testWithMockRedis() {
83+
Redis.MockRedis mockRedis = new Redis.MockRedis();
84+
85+
try {
86+
mockRedis.connect();
87+
88+
if (mockRedis.isConnected()) {
89+
System.out.println("Mock Redis server is running");
90+
91+
mockRedis.addDataListener(new Redis.RedisDataListener() {
92+
@Override
93+
public void onDataReceived(String key, String value) {
94+
System.out.println("[EVENT] Data received - Key: " + key + ", Value: " + value);
95+
}
96+
97+
@Override
98+
public void onDataSet(String key, String value) {
99+
System.out.println("[EVENT] Data set - Key: " + key + ", Value: " + value);
100+
}
101+
});
102+
103+
String key = "myKey";
104+
String value = "myValue";
105+
106+
mockRedis.setData(key, value);
107+
mockRedis.getData(key);
108+
mockRedis.exists(key);
109+
mockRedis.setDataWithExpiry("tempKey", "This will expire (in a real Redis)", 10);
110+
mockRedis.deleteData(key);
111+
112+
mockRedis.addDataListener((key1, value1) -> System.out.println("[EVENT - Listener 2] Data received - Key: " + key1 + ", Value: " + value1));
113+
114+
mockRedis.getData("tempKey");
115+
}
116+
} catch(Exception e) {
117+
Log.error("An unexpected error occurred in mock test: ", e);
118+
} finally {
119+
mockRedis.disconnect();
120+
}
121+
}
122+
123+
private static void testWithKubernetesRedis() {
124+
Redis redis = new Redis("redis-service.default.svc.cluster.local", 6379);
125+
126+
try {
127+
System.out.println("Connecting to Redis at " + redis.getHost() + ":" + redis.getPort());
128+
redis.connect();
129+
130+
if (redis.isConnected()) {
131+
System.out.println("Connected to Redis server");
132+
133+
redis.addDataListener(new Redis.RedisDataListener() {
134+
@Override
135+
public void onDataReceived(String key, String value) {
136+
System.out.println("[EVENT] Data received - Key: " + key + ", Value: " + value);
137+
}
138+
139+
@Override
140+
public void onDataSet(String key, String value) {
141+
System.out.println("[EVENT] Data set - Key: " + key + ", Value: " + value);
142+
}
143+
});
144+
145+
String key = "myKey";
146+
String value = "myValue";
147+
148+
redis.setData(key, value);
149+
redis.getData(key);
150+
151+
redis.setData("user:1:name", "John Doe");
152+
redis.setData("user:1:email", "john@example.com");
153+
redis.getData("user:1:name");
154+
redis.getData("user:1:email");
155+
156+
redis.exists("user:1:name");
157+
redis.setDataWithExpiry("session:123", "user-session-data", 60);
158+
redis.deleteData("user:1:name");
159+
} else {
160+
System.out.println("Failed to connect to Redis server.");
161+
}
162+
} catch (IOException e) {
163+
System.out.println("Failed to connect to Redis: " + e.getMessage());
164+
} finally {
165+
redis.disconnect();
166+
}
167+
}
168+
}

0 commit comments

Comments
 (0)