Skip to content

Commit 594e97a

Browse files
committed
chore: fix access to ably-commons data
1 parent 93d9b31 commit 594e97a

4 files changed

Lines changed: 70 additions & 35 deletions

File tree

lib/src/test/java/io/ably/lib/test/realtime/RealtimeMessageTest.java

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.google.gson.JsonElement;
2121
import com.google.gson.JsonObject;
2222
import com.google.gson.JsonPrimitive;
23+
import io.ably.lib.test.util.AblyCommonsReader;
2324
import io.ably.lib.types.ChannelOptions;
2425
import io.ably.lib.types.MessageAction;
2526
import io.ably.lib.types.MessageExtras;
@@ -59,7 +60,7 @@
5960

6061
public class RealtimeMessageTest extends ParameterizedTest {
6162

62-
private static final String testMessagesEncodingFile = "ably-common/test-resources/messages-encoding.json";
63+
private static final String testMessagesEncodingFile = "test-resources/messages-encoding.json";
6364
private static Gson gson = new Gson();
6465

6566
@Rule
@@ -532,13 +533,7 @@ public void ensure_disconnect_with_error_does_not_move_to_failed() {
532533
@Test
533534
public void messages_encoding_fixtures() {
534535
MessagesEncodingData fixtures;
535-
try {
536-
fixtures = (MessagesEncodingData) Setup.loadJson(testMessagesEncodingFile, MessagesEncodingData.class);
537-
} catch(IOException e) {
538-
fail();
539-
return;
540-
}
541-
536+
fixtures = AblyCommonsReader.read(testMessagesEncodingFile, MessagesEncodingData.class);
542537
AblyRealtime ably = null;
543538
try {
544539
ClientOptions opts = createOptions(testVars.keys[0].keyStr);
@@ -597,12 +592,7 @@ public MessagesEncodingDataItem[] handleResponse(HttpCore.Response response, Err
597592
@Test
598593
public void messages_msgpack_and_json_encoding_is_compatible() {
599594
MessagesEncodingData fixtures;
600-
try {
601-
fixtures = (MessagesEncodingData) Setup.loadJson(testMessagesEncodingFile, MessagesEncodingData.class);
602-
} catch(IOException e) {
603-
fail();
604-
return;
605-
}
595+
fixtures = AblyCommonsReader.read(testMessagesEncodingFile, MessagesEncodingData.class);
606596

607597
// Publish each data type through raw JSON POST and retrieve through MsgPack and JSON.
608598

@@ -884,15 +874,10 @@ public void message_from_encoded_json_object() throws AblyException {
884874
public void messages_from_encoded_json_array() throws AblyException {
885875
JsonArray fixtures = null;
886876
MessagesData testMessages = null;
887-
try {
888-
testMessages = (MessagesData) Setup.loadJson(testMessagesEncodingFile, MessagesData.class);
889-
JsonObject jsonObject = (JsonObject) Setup.loadJson(testMessagesEncodingFile, JsonObject.class);
890-
//We use this as-is for decoding purposes.
891-
fixtures = jsonObject.getAsJsonArray("messages");
892-
} catch(IOException e) {
893-
fail();
894-
return;
895-
}
877+
testMessages = AblyCommonsReader.read(testMessagesEncodingFile, MessagesData.class);
878+
JsonObject jsonObject = AblyCommonsReader.read(testMessagesEncodingFile, JsonObject.class);
879+
//We use this as-is for decoding purposes.
880+
fixtures = jsonObject.getAsJsonArray("messages");
896881

897882
Message[] decodedMessages = Message.fromEncodedArray(fixtures, null);
898883
for(int index = 0; index < decodedMessages.length; index++) {

lib/src/test/java/io/ably/lib/test/realtime/RealtimePresenceTest.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import io.ably.lib.realtime.ConnectionStateListener;
4343
import io.ably.lib.realtime.Presence;
4444
import io.ably.lib.test.common.Setup;
45+
import io.ably.lib.test.util.AblyCommonsReader;
4546
import io.ably.lib.types.AblyException;
4647
import io.ably.lib.types.Capability;
4748
import io.ably.lib.types.ChannelOptions;
@@ -74,7 +75,7 @@
7475

7576
public class RealtimePresenceTest extends ParameterizedTest {
7677

77-
private static final String testMessagesEncodingFile = "ably-common/test-resources/presence-messages-encoding.json";
78+
private static final String testMessagesEncodingFile = "test-resources/presence-messages-encoding.json";
7879
private static final String testClientId1 = "testClientId1";
7980
private static final String testClientId2 = "testClientId2";
8081
private Auth.TokenDetails token1;
@@ -3636,15 +3637,11 @@ public void message_from_encoded_json_object() throws AblyException {
36363637
public void messages_from_encoded_json_array() throws AblyException {
36373638
JsonArray fixtures = null;
36383639
MessagesData testMessages = null;
3639-
try {
3640-
testMessages = (MessagesData) Setup.loadJson(testMessagesEncodingFile, MessagesData.class);
3641-
JsonObject jsonObject = (JsonObject) Setup.loadJson(testMessagesEncodingFile, JsonObject.class);
3642-
//We use this as-is for decoding purposes.
3643-
fixtures = jsonObject.getAsJsonArray("messages");
3644-
} catch(IOException e) {
3645-
fail();
3646-
return;
3647-
}
3640+
testMessages = AblyCommonsReader.read(testMessagesEncodingFile, MessagesData.class);
3641+
JsonObject jsonObject = AblyCommonsReader.readAsJsonObject(testMessagesEncodingFile);
3642+
//We use this as-is for decoding purposes.
3643+
fixtures = jsonObject.getAsJsonArray("messages");
3644+
36483645
PresenceMessage[] decodedMessages = PresenceMessage.fromEncodedArray(fixtures, null);
36493646
for(int index = 0; index < decodedMessages.length; index++) {
36503647
PresenceMessage testInputMsg = testMessages.messages[index];
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package io.ably.lib.test.util;
2+
3+
import com.google.gson.Gson;
4+
import com.google.gson.JsonObject;
5+
import com.google.gson.JsonParser;
6+
7+
import java.io.BufferedReader;
8+
import java.io.InputStreamReader;
9+
import java.net.HttpURLConnection;
10+
import java.net.URL;
11+
12+
public class AblyCommonsReader {
13+
private static final String BASE_URL = "https://raw.githubusercontent.com/ably/ably-common/refs/heads/main/";
14+
private static Gson gson = new Gson();
15+
16+
public static String readAsString(String path) throws Exception {
17+
URL url = new URL(BASE_URL + path);
18+
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
19+
conn.setRequestMethod("GET");
20+
21+
if (conn.getResponseCode() != 200) {
22+
throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
23+
}
24+
25+
BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
26+
StringBuilder sb = new StringBuilder();
27+
String output;
28+
while ((output = br.readLine()) != null) {
29+
sb.append(output);
30+
}
31+
32+
conn.disconnect();
33+
34+
return sb.toString();
35+
}
36+
37+
public static JsonObject readAsJsonObject(String path) {
38+
try {
39+
return JsonParser.parseString(readAsString(path)).getAsJsonObject();
40+
} catch (Exception e) {
41+
throw new RuntimeException(e);
42+
}
43+
}
44+
45+
public static <T> T read(String path, Class<T> classOfT) {
46+
try {
47+
return gson.fromJson(readAsString(path), classOfT);
48+
} catch (Exception e) {
49+
throw new RuntimeException(e);
50+
}
51+
}
52+
}

lib/src/test/java/io/ably/lib/util/CryptoMessageTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.io.IOException;
1010
import java.security.NoSuchAlgorithmException;
1111

12+
import io.ably.lib.test.util.AblyCommonsReader;
1213
import org.junit.Ignore;
1314
import org.junit.Test;
1415
import org.junit.runner.RunWith;
@@ -62,8 +63,8 @@ public enum FixtureSet {
6263
}
6364

6465
private CryptoTestData loadTestData() throws IOException {
65-
return (CryptoTestData)Setup.loadJson(
66-
"ably-common/test-resources/" + fileName + ".json",
66+
return (CryptoTestData) AblyCommonsReader.read(
67+
"test-resources/" + fileName + ".json",
6768
CryptoTestData.class);
6869
}
6970
}

0 commit comments

Comments
 (0)