| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package com.ruoyi.system.omgpay.service;
- import org.junit.jupiter.api.Test;
- import java.io.IOException;
- import java.io.Reader;
- import java.nio.charset.StandardCharsets;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- import java.util.List;
- import java.util.Properties;
- import static org.junit.jupiter.api.Assertions.assertNotNull;
- import static org.junit.jupiter.api.Assertions.assertTrue;
- class OmgPaymentAttemptI18nContractTest {
- private static final List<String> OMG_KEYS = List.of(
- "omg.payment.ddid.required",
- "omg.payment.merchantTradeNo.required",
- "omg.payment.storeId.required",
- "omg.payment.merchantId.required",
- "omg.payment.amount.invalid"
- );
- @Test
- void omgValidationKeysResolveInAllBundlesAndBoundaryIsSeparated() throws IOException {
- for (Path bundle : allBundles()) {
- Properties properties = loadProperties(bundle);
- for (String key : OMG_KEYS) {
- assertNotNull(properties.getProperty(key),
- () -> bundle.getFileName() + " should resolve " + key);
- }
- }
- for (Path bundle : malformedBoundaryBundles()) {
- String normalized = Files.readString(bundle, StandardCharsets.UTF_8).replace("\r\n", "\n");
- assertTrue(normalized.contains("\n\nomg.payment.ddid.required="),
- () -> bundle.getFileName() + " should start OMG keys on a separated block boundary");
- }
- }
- private static Properties loadProperties(Path bundle) throws IOException {
- Properties properties = new Properties();
- try (Reader reader = Files.newBufferedReader(bundle, StandardCharsets.UTF_8)) {
- properties.load(reader);
- }
- return properties;
- }
- private static List<Path> allBundles() {
- return List.of(
- bundle("messages.properties"),
- bundle("messages_en_US.properties"),
- bundle("messages_vi.properties"),
- bundle("messages_zh_CN.properties"),
- bundle("messages_zh_TW.properties")
- );
- }
- private static List<Path> malformedBoundaryBundles() {
- return List.of(
- bundle("messages.properties"),
- bundle("messages_zh_CN.properties"),
- bundle("messages_zh_TW.properties")
- );
- }
- private static Path bundle(String name) {
- return Paths.get("..", "ruoyi-admin", "src", "main", "resources", "i18n", name);
- }
- }
|