View Javadoc
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      // Verify structure of first language
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  }