-
-
Notifications
You must be signed in to change notification settings - Fork 3k
changed ISSNCleanup into NormalizeIssn, refactored respective tests #13748 #13767
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
changed ISSNCleanup into NormalizeIssn, refactored respective tests #13748 #13767
Conversation
import org.jabref.logic.formatter.bibtexfields.NormalizePagesFormatter; | ||
import org.jabref.logic.formatter.bibtexfields.OrdinalsToSuperscriptFormatter; | ||
import org.jabref.logic.formatter.bibtexfields.UnicodeToLatexFormatter; | ||
import org.jabref.logic.formatter.bibtexfields.*; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please re-check that you really followed the setup guide setp 3: https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-13-code-style.html
5bc6ec1
to
c3687be
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks very nice. 👍
Only two nitpicks.
|
||
@Override | ||
public String format(String value) { | ||
Objects.requireNonNull(value); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use @NonNull
annotation instead of requireNonNull
new ReplaceUnicodeLigaturesFormatter(), | ||
new UnprotectTermsFormatter() | ||
new UnprotectTermsFormatter(), | ||
new NormalizeIssn() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Move to "Normalize*" Group (even though it is not really alphabetically sorted
Please move the NormalizeUnicodeFormater also up.
@Test | ||
void emptyOrNullReturnsSame() { | ||
assertEquals("", formatISSN.format("")); | ||
assertThrows(NullPointerException.class, () -> formatISSN.format(null)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line can be removed if we change to JSpecify
@Test | ||
void returnValidIssnUnchanged() { | ||
assertEquals("0123-4567", formatISSN.format("0123-4567")); | ||
} | ||
|
||
@Test | ||
void addMissingDashToIssn() { | ||
assertEquals("0123-4567", formatISSN.format("01234567")); | ||
} | ||
|
||
@Test | ||
void leavesInvalidInputUnchanged() { | ||
assertEquals("Banana", formatISSN.format("Banana")); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please convert to @ParamterizedTest
. You can use @CsvSource
@CsvSource({ | ||
"0123-4567, 0123-4567", | ||
"01234567, 0123-4567", | ||
"Banana, Banana", | ||
"'',''" | ||
}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Test data should use Arguments.of() instead of @CsvSource for better readability and maintainability in JUnit tests, following modern Java practices.
Hey @koppor , this is my first contribution. |
* upstream/main: (54 commits) Split relativizeSymlinks parameterized tests in separate tests (#13782) Update the search syntax highlight for web search (#13801) Chore(deps): Bump ai.djl:bom from 0.33.0 to 0.34.0 in /versions (#13833) Fix typos in CHANGELOG.md (#13826) Chore(deps): Bump com.konghq:unirest-modules-gson in /versions (#13831) Chore(deps): Bump org.gradlex:extra-java-module-info in /build-logic (#13830) Chore(deps): Bump org.apache.logging.log4j:log4j-to-slf4j in /versions (#13832) Chore(deps): Bump io.zonky.test.postgres:embedded-postgres-binaries-bom (#13834) Chore(deps): Bump jablib/src/main/resources/csl-locales (#13829) Chore(deps): Bump jablib/src/main/resources/csl-styles (#13827) Chore(deps): Bump jablib/src/main/abbrv.jabref.org (#13828) add: CAYW endpoint formats (#13785) New Crowdin updates (#13823) chore(deps): update dependency org.kohsuke:github-api to v2.0-rc.5 (#13822) Add support for automatic ICORE conference ranking lookup [#13476] (#13699) New Crowdin updates (#13820) Initialize search bar auto-completion with real database context (no tab switch needed) (#13816) Fixes #13274: Allow cygwin-paths on Windows (#13297) Refine "REDACTED" replacement of API key value in web fetcher search URL (#13814) changed ISSNCleanup into NormalizeIssn, refactored respective tests #13748 (#13767) ...
Closes #13748
This PR moves ISSNCleanup int NormalizeIssn Issn formatter
Changes
ISSNCleanup
→NormalizeIssn
inorg.jabref.logic.formatter.bibtexfields
.NormalizeIssn
now extends Formatter (instead of CleanupJob).CLEAN_UP_ISSN
fromCleanupWorker
andCleanupPresetPanel
.CleanupPresetPanel.fxml
to fix indentation and remove theISSN
checkbox.NormalizeIssnTest
refactoredISSNCleanupTest
Steps to test
12345678 ISSN is normalized to 1234-5678.
1234-5678 ISSN remains unchanged.
ISSN cleanup option is no longer shown.
Mandatory checks
CHANGELOG.md
in a way that is understandable for the average user (if change is visible to the user)