apps-android-commons/app/src/test/java/StringBuilderTest.java
2024-10-24 16:59:14 +11:00

74 lines
3.7 KiB
Java

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class StringBuilderTest {
@Test
void testFallbackDescriptionBuilder() {
String secondaryLanguages = "en,fr,es"; // Example secondary languages
String[] secondaryLanguageArray = secondaryLanguages.split(",\\s*");
StringBuilder fallBackDescription = new StringBuilder();
for (int i = 0; i < secondaryLanguageArray.length; i++) {
fallBackDescription.append("OPTIONAL {?item schema:description ?itemDescriptionPreferredLanguage_")
.append(i + 1) // Unique identifier for each fallback
.append(". FILTER (lang(?itemDescriptionPreferredLanguage_")
.append(i + 1)
.append(") = \"")
.append(secondaryLanguageArray[i]) // Use the secondary language code
.append("\")}\n");
}
String expected = "OPTIONAL {?item schema:description ?itemDescriptionPreferredLanguage_1. FILTER (lang(?itemDescriptionPreferredLanguage_1) = \"en\")}\n" +
"OPTIONAL {?item schema:description ?itemDescriptionPreferredLanguage_2. FILTER (lang(?itemDescriptionPreferredLanguage_2) = \"fr\")}\n" +
"OPTIONAL {?item schema:description ?itemDescriptionPreferredLanguage_3. FILTER (lang(?itemDescriptionPreferredLanguage_3) = \"es\")}\n";
assertEquals(expected, fallBackDescription.toString());
}
@Test
void testFallbackLabelBuilder() {
String secondaryLanguages = "en,fr,es"; // Example secondary languages
String[] secondaryLanguageArray = secondaryLanguages.split(",\\s*");
StringBuilder fallbackLabel = new StringBuilder();
for (int i = 0; i < secondaryLanguageArray.length; i++) {
fallbackLabel.append("OPTIONAL {?item rdfs:label ?itemLabelPreferredLanguage_")
.append(i + 1)
.append(". FILTER (lang(?itemLabelPreferredLanguage_")
.append(i + 1)
.append(") = \"")
.append(secondaryLanguageArray[i])
.append("\")}\n");
}
String expected = "OPTIONAL {?item rdfs:label ?itemLabelPreferredLanguage_1. FILTER (lang(?itemLabelPreferredLanguage_1) = \"en\")}\n" +
"OPTIONAL {?item rdfs:label ?itemLabelPreferredLanguage_2. FILTER (lang(?itemLabelPreferredLanguage_2) = \"fr\")}\n" +
"OPTIONAL {?item rdfs:label ?itemLabelPreferredLanguage_3. FILTER (lang(?itemLabelPreferredLanguage_3) = \"es\")}\n";
assertEquals(expected, fallbackLabel.toString());
}
@Test
void testFallbackClassLabelBuilder() {
String secondaryLanguages = "en,fr,es"; // Example secondary languages
String[] secondaryLanguageArray = secondaryLanguages.split(",\\s*");
StringBuilder fallbackClassLabel = new StringBuilder();
for (int i = 0; i < secondaryLanguageArray.length; i++) {
fallbackClassLabel.append("OPTIONAL {?class rdfs:label ?classLabelPreferredLanguage_")
.append(i + 1)
.append(". FILTER (lang(?classLabelPreferredLanguage_")
.append(i + 1)
.append(") = \"")
.append(secondaryLanguageArray[i])
.append("\")}\n");
}
String expected = "OPTIONAL {?class rdfs:label ?classLabelPreferredLanguage_1. FILTER (lang(?classLabelPreferredLanguage_1) = \"en\")}\n" +
"OPTIONAL {?class rdfs:label ?classLabelPreferredLanguage_2. FILTER (lang(?classLabelPreferredLanguage_2) = \"fr\")}\n" +
"OPTIONAL {?class rdfs:label ?classLabelPreferredLanguage_3. FILTER (lang(?classLabelPreferredLanguage_3) = \"es\")}\n";
assertEquals(expected, fallbackClassLabel.toString());
}
}