Skip to content

Commit 807f85e

Browse files
authored
Add simple unit tests (#7543)
* Branch Coverage Tests FieldChange.java 18% -> 94% Abbreviation.java 63% -> 88% SuggestionProviders.java 0% -> 100% * Boundary Tests FileHelper.java -> Boundary testing of an empty file CitationKeyGenerator.java -> Boundary testing of testlagepage parser for 0-00 & 1-1 HTMLCharacterChecker.java -> Null Value Boundary test * Partition Tests ParsedEntryLink.java -> Partition testing of ParsingEntryLink UpperCaseFormatter.java -> Partition testing for special characters CitationStyleCacheTest.java -> Partition testing of cache storage * Update SuggestionProvidersTest.java SPTest typo fix * CodeStyle Fixes Checkstyle passed * Update AbbreviationTest.java Adjustments for @ellieMayVelasquez feedback #7543 (review) * Applying feedback to PR addressed all comments & suggestions to test files * checkstyle fix
1 parent 97ad19b commit 807f85e

File tree

6 files changed

+96
-19
lines changed

6 files changed

+96
-19
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package org.jabref.gui.autocompleter;
2+
3+
import org.jabref.logic.journals.JournalAbbreviationRepository;
4+
import org.jabref.model.database.BibDatabase;
5+
import org.jabref.model.entry.BibEntry;
6+
import org.jabref.model.entry.field.Field;
7+
import org.jabref.model.entry.field.FieldFactory;
8+
import org.jabref.model.entry.field.SpecialField;
9+
import org.jabref.model.entry.field.StandardField;
10+
11+
import org.junit.jupiter.api.Test;
12+
13+
import static org.junit.jupiter.api.Assertions.assertEquals;
14+
import static org.mockito.Mockito.mock;
15+
16+
class SuggestionProvidersTest {
17+
18+
@Test
19+
void getForFieldTest() {
20+
BibDatabase database = new BibDatabase();
21+
JournalAbbreviationRepository abbreviationRepository = mock(JournalAbbreviationRepository.class);
22+
BibEntry entry = new BibEntry();
23+
Field personEntryField = StandardField.AUTHOR;
24+
Field singleEntryField = StandardField.XREF;
25+
Field multipleEntryField = StandardField.XDATA;
26+
Field journalEntryField = StandardField.JOURNAL;
27+
Field publisherEntryField = StandardField.PUBLISHER;
28+
Field specialEntryField = SpecialField.PRINTED;
29+
AutoCompletePreferences autoCompletePreferences = new AutoCompletePreferences(true, AutoCompleteFirstNameMode.BOTH, AutoCompletePreferences.NameFormat.BOTH, FieldFactory.parseFieldList(personEntryField.getName() + ";" + singleEntryField.getName() + ";" + multipleEntryField.getName() + ";" + journalEntryField.getName() + ";" + publisherEntryField.getName() + ";" + specialEntryField.getName()), null);
30+
SuggestionProviders sp = new SuggestionProviders(database, abbreviationRepository, autoCompletePreferences);
31+
SuggestionProviders empty = new SuggestionProviders();
32+
33+
entry.setField(personEntryField, "Goethe");
34+
entry.setField(singleEntryField, "Single");
35+
entry.setField(multipleEntryField, "Multiple");
36+
entry.setField(journalEntryField, "Journal");
37+
entry.setField(publisherEntryField, "Publisher");
38+
entry.setField(specialEntryField, "2000");
39+
40+
assertEquals(org.jabref.gui.autocompleter.EmptySuggestionProvider.class, empty.getForField(personEntryField).getClass());
41+
assertEquals(org.jabref.gui.autocompleter.PersonNameSuggestionProvider.class, sp.getForField(personEntryField).getClass());
42+
assertEquals(org.jabref.gui.autocompleter.BibEntrySuggestionProvider.class, sp.getForField(singleEntryField).getClass());
43+
assertEquals(org.jabref.gui.autocompleter.BibEntrySuggestionProvider.class, sp.getForField(multipleEntryField).getClass());
44+
assertEquals(org.jabref.gui.autocompleter.JournalsSuggestionProvider.class, sp.getForField(journalEntryField).getClass());
45+
assertEquals(org.jabref.gui.autocompleter.JournalsSuggestionProvider.class, sp.getForField(publisherEntryField).getClass());
46+
assertEquals(org.jabref.gui.autocompleter.WordSuggestionProvider.class, sp.getForField(specialEntryField).getClass());
47+
}
48+
}

src/test/java/org/jabref/logic/citationkeypattern/CitationKeyGeneratorTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -739,14 +739,15 @@ void testPagePrefixNull() {
739739

740740
@Test
741741
void testLastPage() {
742-
743742
assertEquals("27", CitationKeyGenerator.lastPage("7--27"));
744743
assertEquals("27", CitationKeyGenerator.lastPage("--27"));
745744
assertEquals("", CitationKeyGenerator.lastPage(""));
746745
assertEquals("111", CitationKeyGenerator.lastPage("42--111"));
747746
assertEquals("97", CitationKeyGenerator.lastPage("7,41,73--97"));
748747
assertEquals("97", CitationKeyGenerator.lastPage("7,41,97--73"));
749748
assertEquals("43", CitationKeyGenerator.lastPage("43+"));
749+
assertEquals("0", CitationKeyGenerator.lastPage("00--0"));
750+
assertEquals("1", CitationKeyGenerator.lastPage("1--1"));
750751
}
751752

752753
@SuppressWarnings("ConstantConditions")
Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package org.jabref.logic.formatter.casechanger;
22

3-
import org.junit.jupiter.api.BeforeEach;
4-
import org.junit.jupiter.api.Test;
3+
import java.util.stream.Stream;
4+
5+
import org.junit.jupiter.params.ParameterizedTest;
6+
import org.junit.jupiter.params.provider.Arguments;
7+
import org.junit.jupiter.params.provider.MethodSource;
58

69
import static org.junit.jupiter.api.Assertions.assertEquals;
710

@@ -10,24 +13,23 @@
1013
*/
1114
public class UpperCaseFormatterTest {
1215

13-
private UpperCaseFormatter formatter;
14-
15-
@BeforeEach
16-
public void setUp() {
17-
formatter = new UpperCaseFormatter();
18-
}
16+
private UpperCaseFormatter formatter = new UpperCaseFormatter();
1917

20-
@Test
21-
public void test() {
22-
assertEquals("LOWER", formatter.format("LOWER"));
23-
assertEquals("UPPER", formatter.format("upper"));
24-
assertEquals("UPPER", formatter.format("UPPER"));
25-
assertEquals("UPPER {lower}", formatter.format("upper {lower}"));
26-
assertEquals("UPPER {l}OWER", formatter.format("upper {l}ower"));
18+
@ParameterizedTest
19+
@MethodSource("upperCaseTests")
20+
public void upperCasetest(String expectedFormat, String inputFormat) {
21+
assertEquals(expectedFormat, formatter.format(inputFormat));
2722
}
2823

29-
@Test
30-
public void formatExample() {
31-
assertEquals("KDE {Amarok}", formatter.format(formatter.getExampleInput()));
24+
private static Stream<Arguments> upperCaseTests() {
25+
return Stream.of(
26+
Arguments.of("LOWER", "LOWER"),
27+
Arguments.of("UPPER", "upper"),
28+
Arguments.of("UPPER", "UPPER"),
29+
Arguments.of("UPPER {lower}", "upper {lower}"),
30+
Arguments.of("UPPER {l}OWER", "upper {l}ower"),
31+
Arguments.of("1", "1"),
32+
Arguments.of("!", "!")
33+
);
3234
}
3335
}

src/test/java/org/jabref/logic/integrity/HTMLCharacterCheckerTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,22 @@
99
import org.junit.jupiter.api.Test;
1010

1111
import static org.junit.jupiter.api.Assertions.assertEquals;
12+
import static org.junit.jupiter.api.Assertions.assertThrows;
1213

1314
public class HTMLCharacterCheckerTest {
1415

1516
private final HTMLCharacterChecker checker = new HTMLCharacterChecker();
1617
private final BibEntry entry = new BibEntry();
1718

19+
@Test
20+
void fieldNullValueCheck() {
21+
Exception exception = assertThrows(
22+
NullPointerException.class,
23+
() -> entry.setField(StandardField.AUTHOR, null),
24+
"field value must not be null"
25+
);
26+
}
27+
1828
@Test
1929
void titleAcceptsNonHTMLEncodedCharacters() {
2030
entry.setField(StandardField.TITLE, "Not a single {HTML} character");

src/test/java/org/jabref/model/entry/EntryLinkListTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.junit.jupiter.api.Test;
1111

1212
import static org.junit.jupiter.api.Assertions.assertEquals;
13+
import static org.junit.jupiter.api.Assertions.assertFalse;
1314
import static org.junit.jupiter.api.Assertions.assertTrue;
1415

1516
public class EntryLinkListTest {
@@ -21,6 +22,7 @@ public class EntryLinkListTest {
2122
private ParsedEntryLink link;
2223
private BibEntry source;
2324
private BibEntry target;
25+
private BibEntry entry;
2426

2527
@BeforeEach
2628
public void before() {
@@ -59,6 +61,13 @@ public void givenFieldValueAndDatabaseWhenParsingThenExpectLink() {
5961
assertEquals(expected, link);
6062
}
6163

64+
@Test
65+
public void givenBibEntryWhenParsingThenExpectLink() {
66+
entry = create("entry");
67+
ParsedEntryLink expected = new ParsedEntryLink(entry);
68+
assertFalse(expected.getLinkedEntry().isEmpty());
69+
}
70+
6271
@Test
6372
public void givenNullFieldValueAndDatabaseWhenParsingThenExpectLinksIsEmpty() {
6473
links = EntryLinkList.parse(null, database);

src/test/java/org/jabref/model/util/FileHelperTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.jabref.model.util;
22

3+
import java.nio.file.Path;
34
import java.util.Optional;
45

56
import org.junit.jupiter.api.Test;
@@ -18,4 +19,10 @@ public void fileExtensionFromUrl() {
1819
final String filePath = "https://link.springer.com/content/pdf/10.1007%2Fs40955-018-0121-9.pdf";
1920
assertEquals(Optional.of("pdf"), FileHelper.getFileExtension(filePath));
2021
}
22+
23+
@Test
24+
public void testFileNameEmpty() {
25+
Path path = Path.of("/");
26+
assertEquals(Optional.of(path), FileHelper.find("", path));
27+
}
2128
}

0 commit comments

Comments
 (0)