On Fri, 11 Feb 2022 21:22:44 GMT, Alexander Matveev <almat...@openjdk.org> 
wrote:

>> Added ability to override description for additional launchers via 
>> "description" property.
>
> Alexander Matveev has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   8279995: jpackage --add-launcher option should allow overriding description 
> [v2]

test/jdk/tools/jpackage/helpers/jdk/jpackage/test/AdditionalLauncher.java line 
90:

> 88:                 .findFirst().orElse(null);
> 89: 
> 90:         return entry == null ? null : entry.getValue();

This can be simply
`rawProperties.stream().findAny(item -> item.getKey().equals(key)).map(e -> 
e.getValue()).orElse(null);`

Or slightly better:

public String getRawPropertyValue(String key, Supplier<String> getDefault) {
    return rawProperties.stream().findAny(item -> 
item.getKey().equals(key)).map(e -> e.getValue()).orElseGet(getDefault);
}



Then we can create a function that will return the expected description of an 
additional launcher:

private String getDesciption(JPackageCommand cmd) {
    return getRawPropertyValue("description", () -> 
cmd.getArgumentValue("--description", unused -> "Unknown"));
}


This will let you avoid `if (expectedDescription != null)` checks and 
**always** verify launcher description.

test/jdk/tools/jpackage/helpers/jdk/jpackage/test/AdditionalLauncher.java line 
275:

> 273:                                     
> expectedDescription.equals(lines.get(i).trim());
> 274:                         }
> 275:                     }

This piece of code can be placed in `WindowsHelper.getExecutableDesciption(Path 
pathToExeFile)` function to make it reusable in other tests if needed. This way 
it can be used to verify the description of the main launcher.

test/jdk/tools/jpackage/helpers/jdk/jpackage/test/AdditionalLauncher.java line 
277:

> 275:                     }
> 276:                 }
> 277:                 TKit.assertTrue(descriptionIsValid, "Invalid file 
> description");

I'd use `TKit.assertEquals()` to compare the expected description with the 
actual one. This will produce a meaningful error message in log output in case 
they don't match.

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

PR: https://git.openjdk.java.net/jdk/pull/7399

Reply via email to