Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
186 changes: 100 additions & 86 deletions test/jdk/java/util/Locale/LocaleMatchingTest.java

Large diffs are not rendered by default.

33 changes: 21 additions & 12 deletions test/jdk/java/util/Locale/RequiredAvailableLocalesTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,33 +20,41 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**

/*
* @test
* @bug 8276186 8174269
* @summary Checks whether getAvailableLocales() returns at least Locale.ROOT and
* Locale.US instances.
* @run testng RequiredAvailableLocalesTest
* @run junit RequiredAvailableLocalesTest
*/

import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
import java.text.*;
import java.text.BreakIterator;
import java.text.Collator;
import java.text.DateFormat;
import java.text.DateFormatSymbols;
import java.text.DecimalFormatSymbols;
import java.text.NumberFormat;
import java.time.format.DecimalStyle;
import java.util.*;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Locale;
import java.util.Set;

import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import static org.testng.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertTrue;

@Test
public class RequiredAvailableLocalesTest {

private static final Set<Locale> REQUIRED_LOCALES = Set.of(Locale.ROOT, Locale.US);
private static final MethodType ARRAY_RETURN_TYPE = MethodType.methodType(Locale.class.arrayType());
private static final MethodType SET_RETURN_TYPE = MethodType.methodType(Set.class);

@DataProvider
public Object[][] availableLocalesClasses() {
static Object[][] availableLocalesClasses() {
return new Object[][] {
{BreakIterator.class, ARRAY_RETURN_TYPE},
{Calendar.class, ARRAY_RETURN_TYPE},
Expand All @@ -60,8 +68,9 @@ public Object[][] availableLocalesClasses() {
};
}

@Test (dataProvider = "availableLocalesClasses")
public void checkRequiredLocales(Class<?> c, MethodType mt) throws Throwable {
@MethodSource("availableLocalesClasses")
@ParameterizedTest
void checkRequiredLocales(Class<?> c, MethodType mt) throws Throwable {
var ret = MethodHandles.lookup().findStatic(c, "getAvailableLocales", mt).invoke();

if (ret instanceof Locale[] a) {
Expand Down
50 changes: 26 additions & 24 deletions test/jdk/java/util/Locale/TestOf.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
Expand All @@ -20,29 +20,30 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**

/*
* @test
* @bug 8282819
* @summary Unit tests for Locale.of() method. Those tests check the equality
* of obtained objects with ones that are gotten from other means with both
* well-formed and ill-formed arguments. Also checks the possible NPEs
* for error cases.
* @run testng TestOf
* @run junit TestOf
*/
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertThrows;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;

import java.util.Locale;

import org.testng.annotations.Test;
import org.testng.annotations.DataProvider;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;

@SuppressWarnings("deprecation")
@Test
public class TestOf {

@DataProvider
public Object[][] data_1Arg() {
static Object[][] data_1Arg() {
return new Object[][]{
// well-formed
{Locale.ENGLISH, "en"},
Expand All @@ -55,8 +56,7 @@ public Object[][] data_1Arg() {
};
}

@DataProvider
public Object[][] data_2Args() {
static Object[][] data_2Args() {
return new Object[][]{
// well-formed
{Locale.US, "en", "US"},
Expand All @@ -69,8 +69,7 @@ public Object[][] data_2Args() {
};
}

@DataProvider
public Object[][] data_3Args() {
static Object[][] data_3Args() {
return new Object[][]{
// well-formed
{Locale.forLanguageTag("en-US-POSIX"), "en", "US", "POSIX"},
Expand All @@ -87,23 +86,26 @@ public Object[][] data_3Args() {
};
}

@Test (dataProvider = "data_1Arg")
public void test_1Arg(Locale expected, String lang) {
assertEquals(Locale.of(lang), expected);
@MethodSource("data_1Arg")
@ParameterizedTest
void test_1Arg(Locale expected, String lang) {
assertEquals(expected, Locale.of(lang));
}

@Test (dataProvider = "data_2Args")
public void test_2Args(Locale expected, String lang, String ctry) {
assertEquals(Locale.of(lang, ctry), expected);
@MethodSource("data_2Args")
@ParameterizedTest
void test_2Args(Locale expected, String lang, String ctry) {
assertEquals(expected, Locale.of(lang, ctry));
}

@Test (dataProvider = "data_3Args")
public void test_3Args(Locale expected, String lang, String ctry, String vrnt) {
assertEquals(Locale.of(lang, ctry, vrnt), expected);
@MethodSource("data_3Args")
@ParameterizedTest
void test_3Args(Locale expected, String lang, String ctry, String vrnt) {
assertEquals(expected, Locale.of(lang, ctry, vrnt));
}

@Test
public void test_NPE() {
void test_NPE() {
assertThrows(NullPointerException.class, () -> Locale.of(null));
assertThrows(NullPointerException.class, () -> Locale.of("", null));
assertThrows(NullPointerException.class, () -> Locale.of("", "", null));
Expand Down
63 changes: 31 additions & 32 deletions test/jdk/java/util/Locale/bcp47u/CalendarTests.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2025, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
Expand Down Expand Up @@ -28,25 +28,24 @@
* @summary Tests Calendar class deals with Unicode extensions
* correctly.
* @modules jdk.localedata
* @run testng/othervm CalendarTests
* @run junit/othervm CalendarTests
*/

import static org.testng.Assert.assertEquals;

import java.text.DateFormat;
import java.util.Calendar;
import java.util.Locale;
import java.util.TimeZone;

import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;

import static org.junit.jupiter.api.Assertions.assertEquals;

/**
* Test Calendar with BCP47 U extensions
*/
@Test
public class CalendarTests {
private static TimeZone defaultTZ;

Expand All @@ -64,19 +63,18 @@ public class CalendarTests {
private static final Locale FW_FRI = Locale.forLanguageTag("en-US-u-fw-fri");
private static final Locale FW_SAT = Locale.forLanguageTag("en-US-u-fw-sat");

@BeforeTest
public void beforeTest() {
@BeforeAll
static void beforeTest() {
defaultTZ = TimeZone.getDefault();
TimeZone.setDefault(AMLA);
}

@AfterTest
public void afterTest() {
@AfterAll
static void afterTest() {
TimeZone.setDefault(defaultTZ);
}

@DataProvider(name="tz")
Object[][] tz() {
static Object[][] tz() {
return new Object[][] {
// Locale, Expected Zone,
{JPTYO, ASIATOKYO},
Expand All @@ -87,8 +85,7 @@ Object[][] tz() {
};
}

@DataProvider(name="firstDayOfWeek")
Object[][] firstDayOfWeek () {
static Object[][] firstDayOfWeek () {
return new Object[][] {
// Locale, Expected DayOfWeek,
{Locale.US, Calendar.SUNDAY},
Expand All @@ -114,8 +111,7 @@ Object[][] firstDayOfWeek () {
};
}

@DataProvider(name="minDaysInFirstWeek")
Object[][] minDaysInFrstWeek () {
static Object[][] minDaysInFirstWeek () {
return new Object[][] {
// Locale, Expected minDay,
{Locale.US, 1},
Expand All @@ -126,33 +122,36 @@ Object[][] minDaysInFrstWeek () {
};
}

@Test(dataProvider="tz")
public void test_tz(Locale locale, TimeZone zoneExpected) {
@MethodSource("tz")
@ParameterizedTest
void test_tz(Locale locale, TimeZone zoneExpected) {
DateFormat df = DateFormat.getTimeInstance(DateFormat.FULL, locale);
assertEquals(df.getTimeZone(), zoneExpected);
assertEquals(zoneExpected, df.getTimeZone());

Calendar c = Calendar.getInstance(locale);
assertEquals(c.getTimeZone(), zoneExpected);
assertEquals(zoneExpected, c.getTimeZone());

c = new Calendar.Builder().setLocale(locale).build();
assertEquals(c.getTimeZone(), zoneExpected);
assertEquals(zoneExpected, c.getTimeZone());
}

@Test(dataProvider="firstDayOfWeek")
public void test_firstDayOfWeek(Locale locale, int dowExpected) {
@MethodSource("firstDayOfWeek")
@ParameterizedTest
void test_firstDayOfWeek(Locale locale, int dowExpected) {
Calendar c = Calendar.getInstance(locale);
assertEquals(c.getFirstDayOfWeek(), dowExpected);
assertEquals(dowExpected, c.getFirstDayOfWeek());

c = new Calendar.Builder().setLocale(locale).build();
assertEquals(c.getFirstDayOfWeek(), dowExpected);
assertEquals(dowExpected, c.getFirstDayOfWeek());
}

@Test(dataProvider="minDaysInFirstWeek")
public void test_minDaysInFirstWeek(Locale locale, int minDaysExpected) {
@MethodSource("minDaysInFirstWeek")
@ParameterizedTest
void test_minDaysInFirstWeek(Locale locale, int minDaysExpected) {
Calendar c = Calendar.getInstance(locale);
assertEquals(c.getMinimalDaysInFirstWeek(), minDaysExpected);
assertEquals(minDaysExpected, c.getMinimalDaysInFirstWeek());

c = new Calendar.Builder().setLocale(locale).build();
assertEquals(c.getMinimalDaysInFirstWeek(), minDaysExpected);
assertEquals(minDaysExpected, c.getMinimalDaysInFirstWeek());
}
}
19 changes: 9 additions & 10 deletions test/jdk/java/util/Locale/bcp47u/CurrencyFormatTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,26 +27,24 @@
* @bug 8215181 8230284 8231273 8284840
* @summary Tests the "u-cf" extension
* @modules jdk.localedata
* @run testng CurrencyFormatTests
* @run junit CurrencyFormatTests
*/

import static org.testng.Assert.assertEquals;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;

import java.text.NumberFormat;
import java.util.Locale;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

/**
* Test NumberFormat with BCP47 u-cf extensions. Note that this test depends
* on the particular CLDR release. Results may vary on other CLDR releases.
*/
@Test
public class CurrencyFormatTests {

@DataProvider(name="getInstanceData")
Object[][] getInstanceData() {
static Object[][] getInstanceData() {
return new Object[][] {
// Locale, amount, expected
// US dollar
Expand Down Expand Up @@ -97,8 +95,9 @@ Object[][] getInstanceData() {
};
}

@Test(dataProvider="getInstanceData")
public void test_getInstance(Locale locale, int amount, String expected) {
assertEquals(NumberFormat.getCurrencyInstance(locale).format(amount), expected);
@MethodSource("getInstanceData")
@ParameterizedTest
void test_getInstance(Locale locale, int amount, String expected) {
assertEquals(expected, NumberFormat.getCurrencyInstance(locale).format(amount));
}
}
Loading