diff --git a/src/test/java/org/jabref/logic/integrity/NoBibTexFieldCheckerTest.java b/src/test/java/org/jabref/logic/integrity/NoBibTexFieldCheckerTest.java index a177f7e1ef6..857c9514cdd 100644 --- a/src/test/java/org/jabref/logic/integrity/NoBibTexFieldCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/NoBibTexFieldCheckerTest.java @@ -2,12 +2,16 @@ import java.util.Collections; import java.util.List; +import java.util.stream.Stream; import org.jabref.model.entry.BibEntry; +import org.jabref.model.entry.field.Field; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.field.UnknownField; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; +import org.junit.jupiter.params.provider.MethodSource; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -15,86 +19,42 @@ class NoBibTexFieldCheckerTest { private final NoBibtexFieldChecker checker = new NoBibtexFieldChecker(); - @Test - void abstractIsNotRecognizedAsBiblatexOnlyField() { - BibEntry entry = new BibEntry(); - entry.setField(StandardField.ABSTRACT, "test"); - assertEquals(Collections.emptyList(), checker.check(entry)); - } - - @Test - void addressIsNotRecognizedAsBiblatexOnlyField() { - BibEntry entry = new BibEntry(); - entry.setField(StandardField.ADDRESS, "test"); - assertEquals(Collections.emptyList(), checker.check(entry)); - } - - @Test - void afterwordIsRecognizedAsBiblatexOnlyField() { - BibEntry entry = new BibEntry(); - entry.setField(StandardField.AFTERWORD, "test"); - IntegrityMessage message = new IntegrityMessage("biblatex field only", entry, StandardField.AFTERWORD); + private static Stream nonBiblatexOnlyFields() { + return Stream.of( + // arbitrary field + new UnknownField("fieldNameNotDefinedInThebiblatexManual"), + StandardField.ABSTRACT, + StandardField.COMMENT, + StandardField.DOI, + StandardField.URL, + + // these fields are not recognized as biblatex only fields + StandardField.ADDRESS, + StandardField.INSTITUTION, + StandardField.JOURNAL, + StandardField.KEYWORDS, + StandardField.REVIEW + ); + } + + @ParameterizedTest() + @MethodSource("nonBiblatexOnlyFields") + void nonBiblatexOnlyField(Field field) { + BibEntry entry = new BibEntry().withField(field, "test"); + assertEquals(Collections.emptyList(), checker.check(entry)); + } + + @ParameterizedTest(name = "field={0}") + @CsvSource({ + "AFTERWORD", + "JOURNALTITLE", + "LOCATION" + }) + void biblatexOnlyField(StandardField field) { + BibEntry entry = new BibEntry().withField(field, "test"); + IntegrityMessage message = new IntegrityMessage("biblatex field only", entry, field); List messages = checker.check(entry); assertEquals(Collections.singletonList(message), messages); } - @Test - void arbitraryNonBiblatexFieldIsNotRecognizedAsBiblatexOnlyField() { - BibEntry entry = new BibEntry(); - entry.setField(new UnknownField("fieldNameNotDefinedInThebiblatexManual"), "test"); - assertEquals(Collections.emptyList(), checker.check(entry)); - } - - @Test - void commentIsNotRecognizedAsBiblatexOnlyField() { - BibEntry entry = new BibEntry(); - entry.setField(StandardField.COMMENT, "test"); - assertEquals(Collections.emptyList(), checker.check(entry)); - } - - @Test - void instituationIsNotRecognizedAsBiblatexOnlyField() { - BibEntry entry = new BibEntry(); - entry.setField(StandardField.INSTITUTION, "test"); - assertEquals(Collections.emptyList(), checker.check(entry)); - } - - @Test - void journalIsNotRecognizedAsBiblatexOnlyField() { - BibEntry entry = new BibEntry(); - entry.setField(StandardField.JOURNAL, "test"); - assertEquals(Collections.emptyList(), checker.check(entry)); - } - - @Test - void journaltitleIsRecognizedAsBiblatexOnlyField() { - BibEntry entry = new BibEntry(); - entry.setField(StandardField.JOURNALTITLE, "test"); - IntegrityMessage message = new IntegrityMessage("biblatex field only", entry, StandardField.JOURNALTITLE); - List messages = checker.check(entry); - assertEquals(Collections.singletonList(message), messages); - } - - @Test - void keywordsNotRecognizedAsBiblatexOnlyField() { - BibEntry entry = new BibEntry(); - entry.setField(StandardField.KEYWORDS, "test"); - assertEquals(Collections.emptyList(), checker.check(entry)); - } - - @Test - void locationIsRecognizedAsBiblatexOnlyField() { - BibEntry entry = new BibEntry(); - entry.setField(StandardField.LOCATION, "test"); - IntegrityMessage message = new IntegrityMessage("biblatex field only", entry, StandardField.LOCATION); - List messages = checker.check(entry); - assertEquals(Collections.singletonList(message), messages); - } - - @Test - void reviewIsNotRecognizedAsBiblatexOnlyField() { - BibEntry entry = new BibEntry(); - entry.setField(StandardField.REVIEW, "test"); - assertEquals(Collections.emptyList(), checker.check(entry)); - } }