From 939f6961a9eafbac17c95bc0b97311b85d3262d2 Mon Sep 17 00:00:00 2001 From: leaf-soba Date: Fri, 13 Sep 2024 20:54:03 +0800 Subject: [PATCH] add unit test to generateInstitutionKey (#11756) * add unit test to generateInstitutionKey prepare to refactor this method * Update BracketedPatternTest.java --- .../citationkeypattern/BracketedPattern.java | 8 +++--- .../BracketedPatternTest.java | 28 +++++++++++++++++++ 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jabref/logic/citationkeypattern/BracketedPattern.java b/src/main/java/org/jabref/logic/citationkeypattern/BracketedPattern.java index 2407cf0fe7f..0447f748cef 100644 --- a/src/main/java/org/jabref/logic/citationkeypattern/BracketedPattern.java +++ b/src/main/java/org/jabref/logic/citationkeypattern/BracketedPattern.java @@ -36,6 +36,7 @@ import org.jabref.model.strings.LatexToUnicodeAdapter; import org.jabref.model.strings.StringUtil; +import com.google.common.annotations.VisibleForTesting; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -1218,14 +1219,14 @@ protected static List parseFieldAndModifiers(String arg) { *
  • null if content is null
  • * */ - private static String generateInstitutionKey(String content) { + @VisibleForTesting + static String generateInstitutionKey(String content) { if (content == null) { return null; } if (content.isBlank()) { return ""; } - Matcher matcher = INLINE_ABBREVIATION.matcher(content); if (matcher.find()) { return LatexToUnicodeAdapter.format(matcher.group()); @@ -1309,8 +1310,7 @@ private static String generateInstitutionKey(String content) { // Putting parts together. return (university == null ? Objects.toString(rest, "") : university) + (school == null ? "" : school) - + ((department == null) - || ((school != null) && department.equals(school)) ? "" : department); + + ((department == null) || (department.equals(school)) ? "" : department); } /** diff --git a/src/test/java/org/jabref/logic/citationkeypattern/BracketedPatternTest.java b/src/test/java/org/jabref/logic/citationkeypattern/BracketedPatternTest.java index cc466d6b90e..4d1b3649778 100644 --- a/src/test/java/org/jabref/logic/citationkeypattern/BracketedPatternTest.java +++ b/src/test/java/org/jabref/logic/citationkeypattern/BracketedPatternTest.java @@ -20,6 +20,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertThrows; /** @@ -734,4 +735,31 @@ void editorFieldMarkers(String expectedCitationKey, String pattern, String edito BracketedPattern bracketedPattern = new BracketedPattern(pattern); assertEquals(expectedCitationKey, bracketedPattern.expand(bibEntry)); } + + @ParameterizedTest + @CsvSource({ + "'', ''", + "The Attributed Graph Grammar System ({AGG}),AGG", + "'The University of Science',UniScience", + "'School of Business, Department of Management',BM", + "'Graph Systems Research Group',GSRG", + "'The Great Institute, 123 Main Street, Springfield',GreatInstitute", + "'Invalid {\\Unicode}',Invalid", + "'School of Electrical Engineering ({SEE}), Department of Computer Science',SEE", + "'{The Attributed Graph Grammar System ({AGG})}',AGG", + "'{The Attributed Graph Grammar System}',AGGS", + "'{University of Example, Department of Computer Science, Some Address}',UniExampleCS", + "'{Example School of Engineering, Department of Computer Science, Some Address}',SomeAddressEECS", + "'{Example Institute, Computer Science Department, Some Address}',ExampleInstituteCS", + "'{Short Part, Some Address}',ShortPart", + "'{Example with Several Tokens, Some Address}',EST"}) + + void generateInstitutionKeyTest(String input, String expected) { + assertEquals(expected, BracketedPattern.generateInstitutionKey(input)); + } + + @Test + void generateInstitutionKeyNullTest() { + assertNull(BracketedPattern.generateInstitutionKey(null)); + } }