RFR: 8310923: Refactor Currency tests to use JUnit [v4]
Naoto Sato
naoto at openjdk.org
Thu Jun 29 23:36:01 UTC 2023
On Wed, 28 Jun 2023 20:49:18 GMT, Justin Lu <jlu at openjdk.org> wrote:
>> Please review this PR which refactors Currency tests to use JUnit.
>>
>> The most significant change occurs in `ValidateISO4217.java`. Other changes to this file excluding the JUnit refactoring include
>>
>> - Tests are no longer dependent on each other (order of execution does not matter)
>> - Testing does not occur at the same time as data generation (The data is fully generated before any tests are executed)
>> - Various cleanup (dead-code, clarifying comments, more descriptive method and var names)
>>
>> `Bug4512215.java` now renamed to `MinorUndefinedCodes` was updated to remove redundant testing, and the file changed to focus on testing minor undefined currency codes instead.
>
> Justin Lu has updated the pull request incrementally with one additional commit since the last revision:
>
> Remove unusued JUnit imports from ValidateISO4217.java
test/jdk/java/util/Currency/CurrencyNameProviderTest.java line 43:
> 41: import static org.junit.jupiter.api.Assertions.assertThrows;
> 42:
> 43: public class CurrencyNameProviderTest {
Since this is not a generic CurrencyNameProvider test, but specific to the default impl of CNP.getDisplayName(), the class name could be more specific.
test/jdk/java/util/Currency/CurrencyTest.java line 81:
> 79: }
> 80:
> 81: // Calling getInstance() with an illegal name should throw an IAE
illegal name -> invalid currency code
test/jdk/java/util/Currency/CurrencyTest.java line 241:
> 239: Arguments.of("JOD", 3), Arguments.of("KWD", 3),
> 240: Arguments.of("LYD", 3), Arguments.of("OMR", 3),
> 241: Arguments.of("TND", 3), Arguments.of("TRL", 0), // Turkish Lira
The turkish lira comment should apply to both TRL and TRY
test/jdk/java/util/Currency/CurrencyTest.java line 321:
> 319: Currency currency2 = Currency.getInstance(currencyCode);
> 320: assertEquals(currency1, currency2, "Didn't get same instance for same currency code");
> 321: assertEquals(currency1.getCurrencyCode(), currencyCode, "Currency code changed");
Error message more like "wrong currency code", than "changed"
test/jdk/java/util/Currency/MinorUndefinedCodes.java line 27:
> 25: * @test
> 26: * @bug 4512215 4818420 4819436 8310923
> 27: * @summary Test some minor undefined currencies.
It'd be more readable something like "currencies without minor units." The class name can also be renamed to something like NoMinorUnitCurrenciesTest
test/jdk/java/util/Currency/ValidateISO4217.java line 82:
> 80: // Codes derived from ISO4217 golden-data file
> 81: private static final List<Arguments> ISO4217Codes = new ArrayList<Arguments>();
> 82: // Additional codes not from the ISO4217 golden-data file
Are these from the golden file?
test/jdk/java/util/Currency/ValidateISO4217.java line 96:
> 94: setUpISO4217Codes();
> 95: setUpAdditionalCodes();
> 96: finishTestCurrencies();
The method name `finish` is kind of confusing. I'd explicitly describe what the method does, i.e, setup `other` currencies.
test/jdk/java/util/Currency/ValidateISO4217.java line 192:
> 190: /* Defined neither in ISO 4217 nor ISO 3166 list */
> 191: {"XK", "EUR", "978", "2"}, // Kosovo
> 192: };
I'd prefer this array to be placed as static in the class, not within the method.
test/jdk/java/util/Currency/ValidateISO4217.java line 214:
> 212: + "PTE-ROL-RUR-SDD-SIT-SLL-SKK-SRG-STD-TMM-TPE-TRL-VEF-UYI-USN-USS-VEB-VED-"
> 213: + "XAG-XAU-XBA-XBB-XBC-XBD-XDR-XFO-XFU-XPD-XPT-XSU-XTS-XUA-XXX-"
> 214: + "YUM-ZMK-ZWD-ZWN-ZWR";
Ditto as `extraCodes`
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14682#discussion_r1247234295
PR Review Comment: https://git.openjdk.org/jdk/pull/14682#discussion_r1247239767
PR Review Comment: https://git.openjdk.org/jdk/pull/14682#discussion_r1247238613
PR Review Comment: https://git.openjdk.org/jdk/pull/14682#discussion_r1247237567
PR Review Comment: https://git.openjdk.org/jdk/pull/14682#discussion_r1247247681
PR Review Comment: https://git.openjdk.org/jdk/pull/14682#discussion_r1247255026
PR Review Comment: https://git.openjdk.org/jdk/pull/14682#discussion_r1247253772
PR Review Comment: https://git.openjdk.org/jdk/pull/14682#discussion_r1247254253
PR Review Comment: https://git.openjdk.org/jdk/pull/14682#discussion_r1247254528
More information about the core-libs-dev
mailing list