On Fri, 4 Apr 2025 06:08:28 GMT, Jay Bhaskar <jbhas...@openjdk.org> wrote:

>> Migrated JUnit 4 tests in the jafax.base module to JUnit 5, replacing 
>> deprecated APIs, updating assertions, and refactoring test structures to 
>> align with JUnit 5's improved features.
>
> Jay Bhaskar has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   re-order imports

Found some issues, please take a look.

modules/javafx.base/src/test/java/test/javafx/binding/BindingsNumberCastTest.java
 line 96:

> 94:     void testBindings(Functions func) {
> 95:         this.func = func;
> 96:         setUp(); // Call setup before each parameterized run

let's apply the same treatment here (for the sake of any possible future tests):
- remove `@BeforeEach` from `setUp()`
- add `(Function func)` argument to `setUp()`
- probably can remove the comment here or move it to `setUp()`

(I like how you combined multiple tests in one, it's ok in this case, as we 
don't expect these tests to fail intermittently or fail altogether.  Generally 
speaking, we should not be doing that as a failure in one use case would mask 
any possible failures that might happen down the line.)

modules/javafx.base/src/test/java/test/javafx/collections/ObservableListEmptyTest.java
 line 44:

> 42: public class ObservableListEmptyTest {
> 43: 
> 44:     static List<String> EMPTY = Collections.emptyList();

`EMPTY` can be final

modules/javafx.base/src/test/java/test/javafx/collections/ObservableListEmptyTest.java
 line 60:

> 58:     }
> 59: 
> 60:     public void setUp(Callable<ObservableList<String>> listFactory) 
> throws Exception {

private?

modules/javafx.base/src/test/java/test/javafx/collections/ObservableListEmptyTest.java
 line 61:

> 59: 
> 60:     public void setUp(Callable<ObservableList<String>> listFactory) 
> throws Exception {
> 61:         listFactory = listFactory;

Look carefully: this code has a big issue.

Interestingly, I've seen code in production that had issues like this one that 
went unnoticed for years.  

A good IDE would warn here (Eclipse does).

Should be

`this.listFactory = listFactory;`

modules/javafx.base/src/test/java/test/javafx/collections/ObservableListTest.java
 line 68:

> 66: 
> 67:     private void setUp(Callable<ObservableList<String>> listFactory) 
> throws Exception {
> 68:         listFactory = listFactory;

same issue: should be 

`this.listFactory = listFactory;`

modules/javafx.base/src/test/java/test/javafx/collections/ObservableSetTest.java
 line 62:

> 60: 
> 61:     private void setUp(Callable<ObservableSet<String>> setFactory) throws 
> Exception {
> 62:         setFactory = setFactory;

and this is the third place

`this.setFactory = setFactory;`

modules/javafx.base/src/test/java/test/javafx/collections/ObservableSubListIteratorTest.java
 line 61:

> 59:     private Callable<? extends List<String>> listFactory;
> 60:     private List<String> list;
> 61:     private ListIterator<String> iter;

this is likely incorrect:

`listFactory`, `list`, and `iter` are present in the base class.  please remove 
from here.

modules/javafx.base/src/test/java/test/javafx/util/converter/DateStringConverterTest.java
 line 108:

> 106:         this.dateFormat = dateFormat;
> 107: 
> 108:         if (dateFormat != null) {

what was the reason for this code (LL108 - 114) removal?
and for the removal of the tests from L136?

this removal also makes `private DateFormat validFormatter;` unused

modules/javafx.base/src/test/java/test/javafx/util/converter/DateTimeStringConverterTest.java
 line 104:

> 102:     private DateFormat validFormatter;
> 103: 
> 104:     public DateTimeStringConverterTest(DateTimeStringConverter 
> converter, Locale locale, int dateStyle, int timeStyle, Date validDate, 
> String pattern, DateFormat dateFormat) {

Is there a reason you did not follow the conversion pattern using setup() 
method?
I think the test is mangled now.  Could you please double check?

modules/javafx.base/src/test/java/test/javafx/util/converter/DateTimeStringConverterTest.java
 line 216:

> 214:             DateFormat dateFormat = 
> DateTimeStringConverterShim.getDateFormatVar(converter);
> 215:             assertNotNull(dateFormat);
> 216:         }

please double-check: the code LL213-L126 looks misplaced here.  it used to be a 
part of the constructor, and in this case should probably precede the 
assertions.

modules/javafx.base/src/test/java/test/javafx/util/converter/ParameterizedConverterTest.java
 line 41:

> 39: 
> 40:     static Stream<Arguments> converterClasses() {
> 41:         return Stream.of(

FYI: I think you could simply return a `List<Class<? extends 
StringConverter<?>>>`, but this code is ok too.

modules/javafx.base/src/test/java/test/javafx/util/converter/TimeStringConverterTest.java
 line 149:

> 147: 
> 148:     @ParameterizedTest
> 149:     @MethodSource("provideConvertersForGetDateFormat")

ooh, using two different `@MethodSource`s, nice.

-------------

Changes requested by angorya (Reviewer).

PR Review: https://git.openjdk.org/jfx/pull/1759#pullrequestreview-2743583859
PR Review Comment: https://git.openjdk.org/jfx/pull/1759#discussion_r2029121644
PR Review Comment: https://git.openjdk.org/jfx/pull/1759#discussion_r2029133625
PR Review Comment: https://git.openjdk.org/jfx/pull/1759#discussion_r2029134174
PR Review Comment: https://git.openjdk.org/jfx/pull/1759#discussion_r2029136424
PR Review Comment: https://git.openjdk.org/jfx/pull/1759#discussion_r2029145526
PR Review Comment: https://git.openjdk.org/jfx/pull/1759#discussion_r2029148630
PR Review Comment: https://git.openjdk.org/jfx/pull/1759#discussion_r2029152054
PR Review Comment: https://git.openjdk.org/jfx/pull/1759#discussion_r2029162216
PR Review Comment: https://git.openjdk.org/jfx/pull/1759#discussion_r2029167960
PR Review Comment: https://git.openjdk.org/jfx/pull/1759#discussion_r2029166902
PR Review Comment: https://git.openjdk.org/jfx/pull/1759#discussion_r2029176382
PR Review Comment: https://git.openjdk.org/jfx/pull/1759#discussion_r2029179457

Reply via email to