1 package com.acumenvelocity.ath.integration;
2
3 import com.fasterxml.jackson.databind.JsonNode;
4 import org.junit.jupiter.api.Test;
5
6 import static org.junit.jupiter.api.Assertions.*;
7
8 public class TestLanguages_IT extends BaseIntegrationTest {
9
10 @Test
11 public void testGetLanguages() throws Exception {
12 HttpResponse response = sendGetRequest("/languages");
13
14 assertEquals(200, response.getStatusCode(), "Expected HTTP 200");
15
16 JsonNode json = parseJson(response.getBody());
17 assertTrue(json.has("languages"), "Response should have 'languages' field");
18
19 JsonNode languages = json.get("languages");
20 assertTrue(languages.isArray(), "Languages should be an array");
21 assertTrue(languages.size() > 0, "Languages array should not be empty");
22
23
24 JsonNode firstLang = languages.get(0);
25 assertTrue(firstLang.has("name"), "Language should have 'name' field");
26 assertTrue(firstLang.has("iso_code"), "Language should have 'iso_code' field");
27
28 System.out.println("Found " + languages.size() + " languages");
29 }
30
31 @Test
32 public void testGetLanguagesWithPagination() throws Exception {
33 HttpResponse response = sendGetRequest("/languages?page=1&page_size=10");
34
35 assertEquals(200, response.getStatusCode(), "Expected HTTP 200");
36
37 JsonNode json = parseJson(response.getBody());
38 JsonNode languages = json.get("languages");
39
40 assertTrue(languages.size() <= 10, "Should respect page_size parameter");
41 }
42 }