Captured from a real `mvn test -Dtest=HeaderNamePlaceholderMistakeTest` run with the
@Disabled annotation temporarily removed -- i.e. exactly
name = "user {USER_ID} with role {ROLE}" on a real @CsvSource(useHeadersInDisplayName = true)
test, run for real.

-------------------------------------------------------------------------------
Test set: com.ankurm.tutorials.junit.parameterized.HeaderNamePlaceholderMistakeTest
-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.050 s <<< FAILURE! -- in com.ankurm.tutorials.junit.parameterized.HeaderNamePlaceholderMistakeTest
com.ankurm.tutorials.junit.parameterized.HeaderNamePlaceholderMistakeTest.nameTemplateCannotReferenceHeadersByName(int, String, boolean) -- Time elapsed: 0.034 s <<< ERROR!
org.junit.platform.commons.JUnitException: The display name pattern defined for the parameterized test is invalid. See nested exception for further details.
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
Caused by: java.lang.IllegalArgumentException: can't parse argument number: USER_ID
	at java.base/java.text.MessageFormat.setFormatFromPattern(MessageFormat.java:1644)
	at java.base/java.text.MessageFormat.applyPatternImpl(MessageFormat.java:660)
	at java.base/java.text.MessageFormat.<init>(MessageFormat.java:516)
	... 2 more
Caused by: java.lang.NumberFormatException: For input string: "USER_ID"
	at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
	at java.base/java.lang.Integer.parseInt(Integer.java:565)
	at java.base/java.lang.Integer.parseInt(Integer.java:662)
	at java.base/java.text.MessageFormat.setFormatFromPattern(MessageFormat.java:1642)
	... 4 more

The stack trace gives away the mechanism: @ParameterizedTest's `name` attribute is not its own
template language -- it compiles down to a real java.text.MessageFormat pattern, and
MessageFormat only understands numeric argument indices ({0}, {1}, ...). "USER_ID" is not a
number, so MessageFormat's own pattern parser throws NumberFormatException trying to read it
as one, before the test ever runs a single invocation. useHeadersInDisplayName = true changes
what JUnit generates automatically when no custom name is given (see
docs/output/05-csv-source-headers-default-display-name.txt) -- it does not add a new kind of
placeholder you can reference yourself.
