Добавил запрос связей пользователя - друзей - для построения графа друзей

И тест добавил.

но тест пока не весь проходит
This commit is contained in:
AidarKC
2026-01-28 22:31:20 +03:00
parent 22fb35d1d4
commit 922c18db4b
8 changed files with 385 additions and 5 deletions
@@ -4,6 +4,7 @@ import test.it.cases.IT_01_AddUser;
import test.it.cases.IT_02_Sessions;
import test.it.cases.IT_03_AddBlock_NoAuth;
import test.it.cases.IT_04_UserParams_NoAuth;
import test.it.cases.IT_05_Connections_NoAuth;
import test.it.utils.log.TestLog;
import java.util.ArrayList;
@@ -48,6 +49,9 @@ public class IT_RunAllMain {
String s4 = IT_04_UserParams_NoAuth.run(); summaries.add(s4);
if (s4.contains("FAIL:")) { failed++; if (STOP_ON_FIRST_FAIL) return finishEarly(summaries, failed); }
String s5 = IT_05_Connections_NoAuth.run(); summaries.add(s5);
if (s5.contains("FAIL:")) { failed++; if (STOP_ON_FIRST_FAIL) return finishEarly(summaries, failed); }
return finish(summaries, failed);
}
@@ -65,4 +69,4 @@ public class IT_RunAllMain {
return failed;
}
}
}
@@ -75,6 +75,21 @@ public final class JsonBuilders {
""".formatted(requestId, prefix);
}
// ---------------- GetFriendsLists ----------------
public static String getFriendsLists(String login) {
String requestId = TestIds.next("friends");
return """
{
"op": "GetFriendsLists",
"requestId": "%s",
"payload": {
"login": "%s"
}
}
""".formatted(requestId, login);
}
// ---------------- AuthChallenge ----------------
public static String authChallenge(String login) {
@@ -166,6 +166,42 @@ public final class JsonParsers {
return res;
}
// ---------------- Friends helpers ----------------
/** payload.login (канонический) */
public static String friendsLogin(String json) {
return getPayloadText(json, "login");
}
public static List<String> friendsOut(String json) {
return getPayloadStringArray(json, "out_friends");
}
public static List<String> friendsIn(String json) {
return getPayloadStringArray(json, "in_friends");
}
public static List<String> friendsMutual(String json) {
return getPayloadStringArray(json, "mutual_friends");
}
private static List<String> getPayloadStringArray(String json, String field) {
List<String> res = new ArrayList<>();
try {
JsonNode root = MAPPER.readTree(json);
JsonNode payload = root.get("payload");
if (payload == null) return res;
JsonNode arr = payload.get(field);
if (arr == null || !arr.isArray()) return res;
for (JsonNode x : arr) {
if (x != null && !x.isNull()) res.add(x.asText());
}
} catch (Exception ignored) {}
return res;
}
private static String getPayloadText(String json, String field) {
try {
JsonNode root = MAPPER.readTree(json);