From ef7e6ed49cbb5d6fde663be2b42c868a3d4cf4b3 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 18 Aug 2024 12:01:40 +0200 Subject: [PATCH 1/9] Enable org.openrewrite.java.testing.junit5.JUnit5BestPractices --- rewrite.yml | 2 +- .../java/org/jabref/IconsPropertiesTest.java | 4 +- .../org/jabref/cli/AuxCommandLineTest.java | 6 +- .../org/jabref/gui/ClipBoardManagerTest.java | 2 +- .../AppendPersonNamesStrategyTest.java | 2 +- ...ContentSelectorSuggestionProviderTest.java | 2 +- .../PersonNameStringConverterTest.java | 2 +- .../SuggestionProvidersTest.java | 4 +- .../BackupManagerDiscardedTest.java | 8 +- .../autosaveandbackup/BackupManagerTest.java | 20 +- .../jabref/gui/edit/CopyMoreActionTest.java | 24 +- ...opyOrMoveFieldContentTabViewModelTest.java | 2 +- .../EditFieldContentTabViewModelTest.java | 2 +- .../gui/edit/ManageKeywordsViewModelTest.java | 2 +- .../gui/edit/RenameFieldViewModelTest.java | 2 +- .../gui/edit/ReplaceStringViewModelTest.java | 2 +- .../gui/entryeditor/CommentsTabTest.java | 2 +- .../jabref/gui/entryeditor/SciteTabTest.java | 15 +- .../entryeditor/SciteTabViewModelTest.java | 4 +- .../FileAnnotationViewModelTest.java | 16 +- .../exporter/ExportToClipboardActionTest.java | 8 +- .../gui/exporter/SaveDatabaseActionTest.java | 12 +- .../AutoSetFileLinksUtilTest.java | 8 +- .../externalfiles/FileFilterUtilsTest.java | 30 +-- .../GitIgnoreFileFilterTest.java | 8 +- .../UnlinkedFilesCrawlerTest.java | 4 +- .../gui/importer/NewEntryActionTest.java | 6 +- .../ContentSelectorViewModelTest.java | 2 +- .../maintable/MainTableColumnModelTest.java | 16 +- .../jabref/gui/menus/FileHistoryMenuTest.java | 4 +- .../mergeentries/DiffHighlightingTest.java | 6 +- .../mergeentries/FieldRowViewModelTest.java | 32 +-- .../gui/mergeentries/GroupMergerTest.java | 4 +- .../ThreeWayMergeCellViewModelTest.java | 2 +- .../ThreeWayMergeViewModelTest.java | 2 +- .../ExternalFileTypesTabViewModelTest.java | 8 +- .../org/jabref/gui/push/PushToEmacsTest.java | 2 +- .../jabref/gui/push/PushToTeXworksTest.java | 2 +- .../gui/search/GetLastSearchHistoryTest.java | 13 +- .../ManageStudyDefinitionViewModelTest.java | 4 +- .../jabref/gui/theme/ThemeManagerTest.java | 18 +- .../java/org/jabref/gui/theme/ThemeTest.java | 14 +- .../org/jabref/gui/util/ColorUtilTest.java | 8 +- .../jabref/gui/util/ControlHelperTest.java | 2 +- .../gui/util/OpenConsoleActionTest.java | 10 +- .../jabref/gui/util/TooltipTextUtilTest.java | 38 +-- .../NumericFieldComparatorTest.java | 24 +- .../RankingFieldComparatorTest.java | 16 +- .../SpecialFieldComparatorTest.java | 18 +- .../org/jabref/logic/TypedBibEntryTest.java | 12 +- .../logic/bibtex/FileFieldWriterTest.java | 14 +- .../bibtex/comparator/BibStringDiffTest.java | 2 +- .../BibtexStringComparatorTest.java | 4 +- .../CrossRefEntryComparatorTest.java | 14 +- .../comparator/FieldComparatorTest.java | 44 +-- .../bibtex/comparator/GroupDiffTest.java | 2 +- .../bibtex/comparator/MetaDataDiffTest.java | 10 +- .../bibtex/comparator/PreambleDiffTest.java | 2 +- .../jabref/logic/bst/BstFunctionsTest.java | 46 ++-- .../logic/bst/BstPreviewLayoutTest.java | 8 +- .../java/org/jabref/logic/bst/BstVMTest.java | 16 +- .../jabref/logic/bst/BstVMVisitorTest.java | 12 +- .../logic/bst/util/BstCaseChangersTest.java | 12 +- .../logic/bst/util/BstNameFormatterTest.java | 20 +- .../logic/bst/util/BstPurifierTest.java | 4 +- .../logic/bst/util/BstTextPrefixerTest.java | 4 +- .../bst/util/BstWidthCalculatorTest.java | 6 +- .../cleanup/ConvertToBiblatexCleanupTest.java | 16 +- .../cleanup/ConvertToBibtexCleanupTest.java | 12 +- .../jabref/logic/cleanup/DoiCleanupTest.java | 4 +- .../logic/cleanup/DoiDecodeCleanupTest.java | 4 +- .../cleanup/FieldFormatterCleanupTest.java | 14 +- .../cleanup/FieldFormatterCleanupsTest.java | 18 +- .../jabref/logic/cleanup/ISSNCleanupTest.java | 10 +- .../RemoveLinksToNotExistentFilesTest.java | 2 +- .../cleanup/TimeStampToCreationDateTest.java | 6 +- .../TimeStampToModificationDateTest.java | 4 +- .../jabref/logic/cleanup/URLCleanupTest.java | 4 +- .../org/jabref/logic/crawler/CrawlerTest.java | 4 +- .../StudyCatalogToFetcherConverterTest.java | 6 +- .../logic/crawler/StudyRepositoryTest.java | 2 +- .../logic/crawler/StudyYamlParserTest.java | 6 +- .../logic/database/DuplicateCheckTest.java | 58 ++-- .../exporter/AtomicFileOutputStreamTest.java | 4 +- .../exporter/BibtexDatabaseWriterTest.java | 2 +- .../logic/exporter/CffExporterTest.java | 20 +- .../logic/exporter/CsvExportFormatTest.java | 12 +- .../logic/exporter/DocbookExporterTest.java | 6 +- .../EmbeddedBibFilePdfExporterTest.java | 2 +- .../exporter/EndnoteXmlExporterFilesTest.java | 8 +- .../exporter/EndnoteXmlExporterTest.java | 12 +- .../jabref/logic/exporter/ExporterTest.java | 6 +- .../exporter/HayagrivaYamlExporterTest.java | 12 +- .../logic/exporter/HtmlExportFormatTest.java | 6 +- .../exporter/MetaDataSerializerTest.java | 8 +- .../exporter/ModsExportFormatFilesTest.java | 8 +- .../logic/exporter/ModsExportFormatTest.java | 6 +- .../logic/exporter/MsBibExportFormatTest.java | 4 +- .../logic/exporter/XmpExporterTest.java | 12 +- .../logic/exporter/XmpPdfExporterTest.java | 2 +- .../logic/exporter/YamlExporterTest.java | 8 +- .../jabref/logic/formatter/FormatterTest.java | 2 +- .../formatter/IdentityFormatterTest.java | 6 +- .../bibtexfields/AddBracesFormatterTest.java | 26 +- .../bibtexfields/ClearFormatterTest.java | 10 +- .../HtmlToLatexFormatterTest.java | 24 +- .../HtmlToUnicodeFormatterTest.java | 4 +- .../NormalizeDateFormatterTest.java | 52 ++-- .../NormalizeEnDashesFormatterTest.java | 18 +- .../NormalizeMonthFormatterTest.java | 8 +- .../NormalizeNamesFormatterTest.java | 58 ++-- .../NormalizePagesFormatterTest.java | 6 +- .../OrdinalsToSuperscriptFormatterTest.java | 16 +- .../RemoveDigitsFormatterTest.java | 10 +- .../RemoveEnclosingBracesFormatterTest.java | 6 +- ...RemoveHyphenatedNewlinesFormatterTest.java | 10 +- .../RemoveNewlinesFormatterTest.java | 14 +- .../RemoveRedundantSpacesFormatterTest.java | 12 +- ...gAndOuterEnclosingBracesFormatterTest.java | 6 +- .../ReplaceTabsBySpaceFormaterTest.java | 10 +- .../ReplaceWithEscapedDoubleQuotesTest.java | 14 +- .../bibtexfields/ShortenDOIFormatterTest.java | 8 +- .../TrimWhitespaceFormatterTest.java | 16 +- .../bibtexfields/UnicodeConverterTest.java | 12 +- .../UnitsToLatexFormatterTest.java | 8 +- .../casechanger/CapitalizeFormatterTest.java | 8 +- .../casechanger/LowerCaseFormatterTest.java | 8 +- .../ProtectTermsFormatterTest.java | 16 +- .../SentenceCaseFormatterTest.java | 6 +- .../casechanger/TitleCaseFormatterTest.java | 6 +- .../UnprotectTermsFormatterTest.java | 6 +- .../casechanger/UpperCaseFormatterTest.java | 6 +- .../minifier/MinifyNameListFormatterTest.java | 4 +- .../minifier/TruncateFormatterTest.java | 2 +- .../org/jabref/logic/git/GitHandlerTest.java | 2 +- .../jabref/logic/git/SlrGitHandlerTest.java | 2 +- .../logic/importer/AuthorListParserTest.java | 4 +- .../logic/importer/BibDatabaseFilesTest.java | 6 +- .../logic/importer/FulltextFetchersTest.java | 10 +- .../jabref/logic/importer/ImporterTest.java | 20 +- .../logic/importer/ParserResultTest.java | 14 +- .../logic/importer/QueryParserTest.java | 20 +- .../importer/fetcher/ArXivFetcherTest.java | 19 +- .../fetcher/AstrophysicsDataSystemTest.java | 26 +- .../fetcher/BiodiversityLibraryTest.java | 16 +- .../importer/fetcher/BvbFetcherTest.java | 14 +- ...puterScienceBibliographiesFetcherTest.java | 10 +- ...mputerScienceBibliographiesParserTest.java | 8 +- .../CompositeSearchBasedFetcherTest.java | 22 +- .../logic/importer/fetcher/CrossRefTest.java | 34 +-- .../importer/fetcher/DBLPFetcherTest.java | 10 +- .../importer/fetcher/DOABFetcherTest.java | 4 +- .../importer/fetcher/DOAJFetcherTest.java | 2 +- .../logic/importer/fetcher/DiVATest.java | 14 +- .../importer/fetcher/DoiFetcherTest.java | 22 +- .../fetcher/GrobidCitationFetcherTest.java | 10 +- .../importer/fetcher/GvkFetcherTest.java | 18 +- .../importer/fetcher/INSPIREFetcherTest.java | 4 +- .../importer/fetcher/ISIDOREFetcherTest.java | 16 +- .../fetcher/IacrEprintFetcherTest.java | 36 +-- .../fetcher/LibraryOfCongressTest.java | 10 +- .../importer/fetcher/MedlineFetcherTest.java | 26 +- .../logic/importer/fetcher/MedraTest.java | 10 +- .../importer/fetcher/MrDLibFetcherTest.java | 10 +- .../importer/fetcher/PicaXmlParserTest.java | 10 +- .../importer/fetcher/ResearchGateTest.java | 4 +- .../importer/fetcher/RfcFetcherTest.java | 12 +- .../fetcher/ScholarArchiveFetcherTest.java | 8 +- .../SearchBasedFetcherCapabilityTest.java | 3 +- .../importer/fetcher/SemanticScholarTest.java | 4 +- .../importer/fetcher/SpringerFetcherTest.java | 11 +- .../importer/fetcher/SpringerLinkTest.java | 12 +- .../importer/fetcher/TitleFetcherTest.java | 12 +- ...oiToBibtexConverterComIsbnFetcherTest.java | 10 +- .../isbntobibtex/EbookDeIsbnFetcherTest.java | 6 +- .../isbntobibtex/GVKIsbnFetcherTest.java | 6 +- .../OpenLibraryIsbnFetcherTest.java | 6 +- .../ArXivQueryTransformerTest.java | 2 + .../CiteSeerQueryTransformerTest.java | 12 +- ...nceBibliographiesQueryTransformerTest.java | 3 + .../DBLPQueryTransformerTest.java | 3 + .../transformers/GVKQueryTransformerTest.java | 3 + .../IEEEQueryTransformerTest.java | 6 +- .../JstorQueryTransformerTest.java | 3 + .../SpringerQueryTransformerTest.java | 3 + ...rRangeByFilteringQueryTransformerTest.java | 2 + ...rRangeByFilteringQueryTransformerTest.java | 2 + .../ZbMathQueryTransformerTest.java | 3 + .../fileformat/ACMPortalParserTest.java | 2 +- .../BiblioscapeImporterFilesTest.java | 6 +- .../fileformat/BiblioscapeImporterTest.java | 14 +- .../BiblioscapeImporterTypesTest.java | 5 +- .../fileformat/BibtexImporterTest.java | 28 +- .../importer/fileformat/CffImporterTest.java | 34 +-- .../CitaviXmlImporterFilesTest.java | 2 +- .../fileformat/CopacImporterFilesTest.java | 8 +- .../fileformat/CopacImporterTest.java | 10 +- .../fileformat/CustomImporterTest.java | 26 +- .../fileformat/EndnoteImporterTest.java | 22 +- .../EndnoteXmlImporterFilesTest.java | 2 +- .../fileformat/ImporterTestEngine.java | 8 +- .../fileformat/InspecImporterTest.java | 20 +- .../importer/fileformat/IsiImporterTest.java | 38 +-- .../fileformat/MarcXmlParserTest.java | 4 +- .../fileformat/MedlineImporterFilesTest.java | 10 +- .../fileformat/MedlineImporterTest.java | 10 +- .../fileformat/MrDLibImporterTest.java | 10 +- .../fileformat/MsBibImporterFilesTest.java | 8 +- .../fileformat/MsBibImporterTest.java | 12 +- .../importer/fileformat/OvidImporterTest.java | 14 +- .../fileformat/PdfGrobidImporterTest.java | 14 +- .../fileformat/PdfXmpImporterTest.java | 14 +- .../importer/fileformat/RISImporterTest.java | 4 +- .../fileformat/RepecNepImporterTest.java | 10 +- .../importer/util/FileFieldParserTest.java | 4 +- .../importer/util/GrobidServiceTest.java | 16 +- .../logic/importer/util/JsonReaderTest.java | 8 +- .../logic/importer/util/MathMLParserTest.java | 2 +- .../importer/util/MetaDataParserTest.java | 2 +- .../logic/importer/util/StaxParserTest.java | 2 +- .../integrity/ASCIICharacterCheckerTest.java | 2 +- .../logic/integrity/AmpersandCheckerTest.java | 2 +- .../logic/integrity/BibStringCheckerTest.java | 2 +- .../logic/integrity/BooktitleCheckerTest.java | 2 +- .../logic/integrity/BracesCorrectorTest.java | 18 +- .../logic/integrity/BracketCheckerTest.java | 2 +- .../integrity/CitationKeyCheckerTest.java | 2 +- .../CitationKeyDeviationCheckerTest.java | 2 +- .../CitationKeyDuplicationCheckerTest.java | 2 +- .../integrity/DoiDuplicationCheckerTest.java | 8 +- .../logic/integrity/EditionCheckerTest.java | 2 +- .../integrity/HTMLCharacterCheckerTest.java | 2 +- .../integrity/HowPublishedCheckerTest.java | 4 +- .../logic/integrity/ISBNCheckerTest.java | 4 +- .../logic/integrity/ISSNCheckerTest.java | 4 +- .../JournalInAbbreviationListCheckerTest.java | 2 +- .../integrity/LatexIntegrityCheckerTest.java | 2 +- .../logic/integrity/MonthCheckerTest.java | 4 +- .../logic/integrity/NoteCheckerTest.java | 2 +- .../integrity/PersonNamesCheckerTest.java | 12 +- .../logic/integrity/TitleCheckerTest.java | 4 +- .../logic/integrity/TypeCheckerTest.java | 2 +- .../logic/integrity/UTF8CheckerTest.java | 2 +- ...rmalFormCanonicalCompositionCheckTest.java | 2 +- .../logic/integrity/UrlCheckerTest.java | 2 +- .../ValidCitationKeyCheckerTest.java | 2 +- .../logic/integrity/YearCheckerTest.java | 2 +- .../journals/AbbreviationParserTest.java | 2 +- .../JournalInformationFetcherTest.java | 24 +- .../org/jabref/logic/l10n/EncodingsTest.java | 10 +- .../l10n/JavaLocalizationEntryParserTest.java | 8 +- .../logic/l10n/LocalizationKeyParamsTest.java | 6 +- .../logic/l10n/LocalizationKeyTest.java | 2 +- .../jabref/logic/layout/LayoutEntryTest.java | 4 +- .../jabref/logic/layout/LayoutHelperTest.java | 6 +- .../layout/format/AuthorAbbreviatorTest.java | 4 +- .../format/AuthorAndsCommaReplacerTest.java | 4 +- .../layout/format/AuthorAndsReplacerTest.java | 4 +- .../format/AuthorFirstAbbrLastCommasTest.java | 4 +- .../AuthorFirstAbbrLastOxfordCommasTest.java | 4 +- .../format/AuthorFirstFirstCommasTest.java | 4 +- .../layout/format/AuthorFirstFirstTest.java | 4 +- .../format/AuthorFirstLastCommasTest.java | 2 +- .../AuthorFirstLastOxfordCommasTest.java | 4 +- .../layout/format/AuthorLF_FFAbbrTest.java | 4 +- .../logic/layout/format/AuthorLF_FFTest.java | 4 +- .../format/AuthorLastFirstAbbrCommasTest.java | 4 +- .../AuthorLastFirstAbbrOxfordCommasTest.java | 4 +- .../format/AuthorLastFirstCommasTest.java | 4 +- .../AuthorLastFirstOxfordCommasTest.java | 4 +- .../layout/format/AuthorLastFirstTest.java | 4 +- .../logic/layout/format/AuthorNatBibTest.java | 2 +- .../logic/layout/format/AuthorOrgSciTest.java | 2 +- .../logic/layout/format/AuthorsTest.java | 48 ++-- .../layout/format/CompositeFormatTest.java | 8 +- .../logic/layout/format/DOICheckTest.java | 2 +- .../logic/layout/format/DOIStripTest.java | 8 +- .../layout/format/DateFormatterTest.java | 10 +- .../logic/layout/format/DefaultTest.java | 2 +- .../layout/format/EntryTypeFormatterTest.java | 2 +- .../logic/layout/format/FileLinkTest.java | 4 +- .../logic/layout/format/FirstPageTest.java | 2 +- .../logic/layout/format/HTMLCharsTest.java | 4 +- .../layout/format/HTMLParagraphsTest.java | 2 +- .../logic/layout/format/IfPluralTest.java | 14 +- .../logic/layout/format/LastPageTest.java | 2 +- .../layout/format/NameFormatterTest.java | 6 +- .../NoSpaceBetweenAbbreviationsTest.java | 2 +- .../logic/layout/format/OrdinalTest.java | 16 +- .../logic/layout/format/RTFCharsTest.java | 2 +- .../format/RemoveBracketsAddCommaTest.java | 4 +- .../layout/format/RemoveBracketsTest.java | 14 +- .../RemoveLatexCommandsFormatterTest.java | 20 +- .../logic/layout/format/RemoveTildeTest.java | 4 +- .../layout/format/RemoveWhitespaceTest.java | 12 +- .../logic/layout/format/ReplaceTest.java | 14 +- .../ReplaceUnicodeLigaturesFormatterTest.java | 12 +- .../logic/layout/format/RisKeywordsTest.java | 12 +- .../logic/layout/format/RisMonthTest.java | 10 +- .../format/ShortMonthFormatterTest.java | 8 +- .../logic/layout/format/ToLowerCaseTest.java | 6 +- .../logic/layout/format/ToUpperCaseTest.java | 2 +- .../logic/layout/format/WrapContentTest.java | 2 +- .../jabref/logic/msbib/MsBibAuthorTest.java | 14 +- .../jabref/logic/msbib/MsBibMappingTest.java | 10 +- .../java/org/jabref/logic/net/ProxyTest.java | 14 +- .../org/jabref/logic/net/URLDownloadTest.java | 30 +-- .../openoffice/style/OOPreFormatterTest.java | 18 +- .../openoffice/style/StyleLoaderTest.java | 36 +-- .../pdf/EntryAnnotationImporterTest.java | 6 +- .../logic/pdf/PdfAnnotationImporterTest.java | 34 +-- .../logic/pdf/search/DocumentReaderTest.java | 8 +- .../logic/pdf/search/PdfIndexerTest.java | 16 +- .../logic/pdf/search/PdfSearcherTest.java | 20 +- .../ProtectedTermsListTest.java | 30 +-- .../PseudonymizationTest.java | 2 +- .../logic/remote/RemotePreferencesTest.java | 16 +- .../jabref/logic/remote/RemoteUtilTest.java | 10 +- .../logic/search/DatabaseSearcherTest.java | 22 +- .../DatabaseSearcherWithBibFilesTest.java | 6 +- .../jabref/logic/search/SearchQueryTest.java | 62 ++--- .../logic/shared/DBMSConnectionTest.java | 4 +- .../logic/shared/DBMSProcessorTest.java | 8 +- .../logic/shared/DBMSSynchronizerTest.java | 26 +- .../org/jabref/logic/shared/DBMSTypeTest.java | 44 +-- .../shared/SynchronizationSimulatorTest.java | 16 +- .../logic/texparser/DefaultTexParserTest.java | 26 +- .../logic/texparser/LatexParserTest.java | 6 +- .../texparser/TexBibEntriesResolverTest.java | 14 +- .../org/jabref/logic/util/BuildInfoTest.java | 8 +- .../logic/util/DevelopmentStageTest.java | 10 +- .../logic/util/FileNameCleanerTest.java | 10 +- .../jabref/logic/util/UpdateFieldTest.java | 56 ++-- .../org/jabref/logic/util/VersionTest.java | 86 +++--- .../logic/util/io/BackupFileUtilTest.java | 2 +- .../logic/util/io/FileNameUniquenessTest.java | 20 +- .../jabref/logic/util/io/FileUtilTest.java | 20 +- .../strings/StringLengthComparatorTest.java | 4 +- .../util/strings/StringManipulatorTest.java | 28 +- .../util/strings/StringSimilarityTest.java | 4 +- ...eReviewIntoCommentActionMigrationTest.java | 12 +- .../SpecialFieldsToSeparateFieldsTest.java | 10 +- .../java/org/jabref/model/TreeNodeTest.java | 144 +++++----- .../BibDatabaseModeDetectionTest.java | 14 +- .../model/database/KeyChangeListenerTest.java | 18 +- .../jabref/model/entry/AuthorListTest.java | 252 +++++++++--------- .../jabref/model/entry/BibtexStringTest.java | 26 +- .../model/entry/CanonicalBibEntryTest.java | 4 +- .../jabref/model/entry/EntryLinkListTest.java | 18 +- .../model/entry/EntryTypeFactoryTest.java | 4 +- .../jabref/model/entry/IdGeneratorTest.java | 4 +- .../jabref/model/entry/KeywordListTest.java | 38 +-- .../org/jabref/model/entry/KeywordTest.java | 6 +- .../org/jabref/model/entry/MonthTest.java | 18 +- .../model/entry/field/SpecialFieldTest.java | 6 +- .../entry/identifier/ArXivIdentifierTest.java | 24 +- .../model/entry/identifier/DOITest.java | 32 +-- .../model/entry/identifier/ISBNTest.java | 26 +- .../model/entry/identifier/ISSNTest.java | 22 +- .../entry/identifier/IacrEprintTest.java | 8 +- .../entry/identifier/MathSciNetIdTest.java | 4 +- .../jabref/model/groups/SearchGroupTest.java | 14 +- .../org/jabref/model/groups/TexGroupTest.java | 10 +- .../model/groups/WordKeywordGroupTest.java | 30 +-- .../jabref/model/metadata/MetaDataTest.java | 6 +- .../org/jabref/model/paging/PageTest.java | 12 +- .../jabref/model/pdf/FileAnnotationTest.java | 12 +- .../search/matchers/MatcherSetsTest.java | 10 +- .../rules/ContainsBasedSearchRuleTest.java | 8 +- .../search/rules/SentenceAnalyzerTest.java | 4 +- .../jabref/model/texparser/CitationTest.java | 26 +- 371 files changed, 2208 insertions(+), 2174 deletions(-) diff --git a/rewrite.yml b/rewrite.yml index 0084d70e475..9dff6a410d2 100644 --- a/rewrite.yml +++ b/rewrite.yml @@ -198,4 +198,4 @@ recipeList: - org.openrewrite.java.testing.cleanup.RemoveTestPrefix - org.openrewrite.java.testing.junit5.CleanupAssertions -# - org.openrewrite.java.testing.junit5.JUnit5BestPractices + - org.openrewrite.java.testing.junit5.JUnit5BestPractices diff --git a/src/test/java/org/jabref/IconsPropertiesTest.java b/src/test/java/org/jabref/IconsPropertiesTest.java index e37e2f63533..013857bc729 100644 --- a/src/test/java/org/jabref/IconsPropertiesTest.java +++ b/src/test/java/org/jabref/IconsPropertiesTest.java @@ -17,10 +17,10 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class IconsPropertiesTest { +class IconsPropertiesTest { @Test - public void existenceOfIconImagesReferencedFromIconsProperties() throws IOException { + void existenceOfIconImagesReferencedFromIconsProperties() throws IOException { String folder = "src/main/resources/images/external"; String iconsProperties = "Icons.properties"; String iconsPropertiesPath = "src/main/resources/images/" + iconsProperties; diff --git a/src/test/java/org/jabref/cli/AuxCommandLineTest.java b/src/test/java/org/jabref/cli/AuxCommandLineTest.java index d746bffea9a..69d8734fc9d 100644 --- a/src/test/java/org/jabref/cli/AuxCommandLineTest.java +++ b/src/test/java/org/jabref/cli/AuxCommandLineTest.java @@ -21,17 +21,17 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.mockito.Mockito.mock; -public class AuxCommandLineTest { +class AuxCommandLineTest { private ImportFormatPreferences importFormatPreferences; @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); } @Test - public void test() throws URISyntaxException, IOException { + void test() throws URISyntaxException, IOException { InputStream originalStream = AuxCommandLineTest.class.getResourceAsStream("origin.bib"); File auxFile = Path.of(AuxCommandLineTest.class.getResource("paper.aux").toURI()).toFile(); diff --git a/src/test/java/org/jabref/gui/ClipBoardManagerTest.java b/src/test/java/org/jabref/gui/ClipBoardManagerTest.java index 6eacc6f1317..ff78f418fad 100644 --- a/src/test/java/org/jabref/gui/ClipBoardManagerTest.java +++ b/src/test/java/org/jabref/gui/ClipBoardManagerTest.java @@ -30,7 +30,7 @@ import static org.mockito.Mockito.when; @AllowedToUseAwt("Requires AWT for clipboard access") -public class ClipBoardManagerTest { +class ClipBoardManagerTest { private BibEntryTypesManager entryTypesManager; private ClipBoardManager clipBoardManager; diff --git a/src/test/java/org/jabref/gui/autocompleter/AppendPersonNamesStrategyTest.java b/src/test/java/org/jabref/gui/autocompleter/AppendPersonNamesStrategyTest.java index 57f6c09b548..4e1c526eff9 100644 --- a/src/test/java/org/jabref/gui/autocompleter/AppendPersonNamesStrategyTest.java +++ b/src/test/java/org/jabref/gui/autocompleter/AppendPersonNamesStrategyTest.java @@ -6,7 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AppendPersonNamesStrategyTest { +class AppendPersonNamesStrategyTest { @Test void withoutParam() { diff --git a/src/test/java/org/jabref/gui/autocompleter/ContentSelectorSuggestionProviderTest.java b/src/test/java/org/jabref/gui/autocompleter/ContentSelectorSuggestionProviderTest.java index efa4139f4e3..004fa2e57ca 100644 --- a/src/test/java/org/jabref/gui/autocompleter/ContentSelectorSuggestionProviderTest.java +++ b/src/test/java/org/jabref/gui/autocompleter/ContentSelectorSuggestionProviderTest.java @@ -14,7 +14,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -public class ContentSelectorSuggestionProviderTest { +class ContentSelectorSuggestionProviderTest { private ContentSelectorSuggestionProvider autoCompleter; diff --git a/src/test/java/org/jabref/gui/autocompleter/PersonNameStringConverterTest.java b/src/test/java/org/jabref/gui/autocompleter/PersonNameStringConverterTest.java index 44408b0df4d..37a11f60def 100644 --- a/src/test/java/org/jabref/gui/autocompleter/PersonNameStringConverterTest.java +++ b/src/test/java/org/jabref/gui/autocompleter/PersonNameStringConverterTest.java @@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class PersonNameStringConverterTest { +class PersonNameStringConverterTest { /** The author. **/ private Author author; diff --git a/src/test/java/org/jabref/gui/autocompleter/SuggestionProvidersTest.java b/src/test/java/org/jabref/gui/autocompleter/SuggestionProvidersTest.java index 79459a8c5b7..7a80a14f9ea 100644 --- a/src/test/java/org/jabref/gui/autocompleter/SuggestionProvidersTest.java +++ b/src/test/java/org/jabref/gui/autocompleter/SuggestionProvidersTest.java @@ -24,7 +24,7 @@ class SuggestionProvidersTest { private SuggestionProviders suggestionProviders; @BeforeEach - public void initializeSuggestionProviders() { + void initializeSuggestionProviders() { BibDatabase database = new BibDatabase(); JournalAbbreviationRepository abbreviationRepository = mock(JournalAbbreviationRepository.class); Set completeFields = Set.of(StandardField.AUTHOR, StandardField.XREF, StandardField.XDATA, StandardField.JOURNAL, StandardField.PUBLISHER, SpecialField.PRINTED); @@ -57,7 +57,7 @@ private static Stream getTestPairs() { @ParameterizedTest @MethodSource("getTestPairs") - public void appropriateCompleterReturned(Class> expected, Field field) { + void appropriateCompleterReturned(Class> expected, Field field) { assertEquals(expected, suggestionProviders.getForField(field).getClass()); } diff --git a/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerDiscardedTest.java b/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerDiscardedTest.java index a1ee0b8031e..246f3697a44 100644 --- a/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerDiscardedTest.java +++ b/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerDiscardedTest.java @@ -43,7 +43,7 @@ class BackupManagerDiscardedTest { private Path backupDir; @BeforeEach - public void setup(@TempDir Path tempDir) throws Exception { + void setup(@TempDir Path tempDir) throws Exception { this.backupDir = tempDir.resolve("backups"); Files.createDirectories(backupDir); @@ -85,14 +85,14 @@ private void makeBackup() { } @Test - public void noDiscardingAChangeLeadsToNewerBackupBeReported() throws Exception { + void noDiscardingAChangeLeadsToNewerBackupBeReported() throws Exception { databaseModification(); makeBackup(); assertTrue(BackupManager.backupFileDiffers(testBib, backupDir)); } @Test - public void noDiscardingASavedChange() throws Exception { + void noDiscardingASavedChange() throws Exception { databaseModification(); makeBackup(); saveDatabase(); @@ -100,7 +100,7 @@ public void noDiscardingASavedChange() throws Exception { } @Test - public void discardingAChangeLeadsToNewerBackupToBeIgnored() throws Exception { + void discardingAChangeLeadsToNewerBackupToBeIgnored() throws Exception { databaseModification(); makeBackup(); backupManager.discardBackup(backupDir); diff --git a/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerTest.java b/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerTest.java index 58788a090eb..674485aa49b 100644 --- a/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerTest.java +++ b/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerTest.java @@ -33,7 +33,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class BackupManagerTest { +class BackupManagerTest { Path backupDir; @@ -43,7 +43,7 @@ void setup(@TempDir Path tempDir) { } @Test - public void backupFileNameIsCorrectlyGeneratedInAppDataDirectory() { + void backupFileNameIsCorrectlyGeneratedInAppDataDirectory() { Path bibPath = Path.of("tmp", "test.bib"); backupDir = OS.getNativeDesktop().getBackupDirectory(); Path bakPath = BackupManager.getBackupPathForNewBackup(bibPath, backupDir); @@ -53,13 +53,13 @@ public void backupFileNameIsCorrectlyGeneratedInAppDataDirectory() { } @Test - public void backupFileIsEqualForNonExistingBackup() throws Exception { + void backupFileIsEqualForNonExistingBackup() throws Exception { Path originalFile = Path.of(BackupManagerTest.class.getResource("no-autosave.bib").toURI()); assertFalse(BackupManager.backupFileDiffers(originalFile, backupDir)); } @Test - public void backupFileIsEqual() throws Exception { + void backupFileIsEqual() throws Exception { // Prepare test: Create backup file on "right" path Path source = Path.of(BackupManagerTest.class.getResource("no-changes.bib.bak").toURI()); Path target = BackupFileUtil.getPathForNewBackupFileAndCreateDirectory(Path.of(BackupManagerTest.class.getResource("no-changes.bib").toURI()), BackupFileType.BACKUP, backupDir); @@ -70,7 +70,7 @@ public void backupFileIsEqual() throws Exception { } @Test - public void backupFileDiffers() throws Exception { + void backupFileDiffers() throws Exception { // Prepare test: Create backup file on "right" path Path source = Path.of(BackupManagerTest.class.getResource("changes.bib.bak").toURI()); Path target = BackupFileUtil.getPathForNewBackupFileAndCreateDirectory(Path.of(BackupManagerTest.class.getResource("changes.bib").toURI()), BackupFileType.BACKUP, backupDir); @@ -81,7 +81,7 @@ public void backupFileDiffers() throws Exception { } @Test - public void correctBackupFileDeterminedForMultipleBakFiles() throws Exception { + void correctBackupFileDeterminedForMultipleBakFiles() throws Exception { Path noChangesBib = Path.of(BackupManagerTest.class.getResource("no-changes.bib").toURI()); Path noChangesBibBak = Path.of(BackupManagerTest.class.getResource("no-changes.bib.bak").toURI()); @@ -105,7 +105,7 @@ public void correctBackupFileDeterminedForMultipleBakFiles() throws Exception { } @Test - public void bakFileWithNewerTimeStampLeadsToDiff() throws Exception { + void bakFileWithNewerTimeStampLeadsToDiff() throws Exception { Path changesBib = Path.of(BackupManagerTest.class.getResource("changes.bib").toURI()); Path changesBibBak = Path.of(BackupManagerTest.class.getResource("changes.bib.bak").toURI()); @@ -116,7 +116,7 @@ public void bakFileWithNewerTimeStampLeadsToDiff() throws Exception { } @Test - public void bakFileWithOlderTimeStampDoesNotLeadToDiff() throws Exception { + void bakFileWithOlderTimeStampDoesNotLeadToDiff() throws Exception { Path changesBib = Path.of(BackupManagerTest.class.getResource("changes.bib").toURI()); Path changesBibBak = Path.of(BackupManagerTest.class.getResource("changes.bib.bak").toURI()); @@ -130,7 +130,7 @@ public void bakFileWithOlderTimeStampDoesNotLeadToDiff() throws Exception { } @Test - public void shouldNotCreateABackup(@TempDir Path customDir) throws Exception { + void shouldNotCreateABackup(@TempDir Path customDir) throws Exception { Path backupDir = customDir.resolve("subBackupDir"); Files.createDirectories(backupDir); @@ -157,7 +157,7 @@ public void shouldNotCreateABackup(@TempDir Path customDir) throws Exception { } @Test - public void shouldCreateABackup(@TempDir Path customDir) throws Exception { + void shouldCreateABackup(@TempDir Path customDir) throws Exception { Path backupDir = customDir.resolve("subBackupDir"); Files.createDirectories(backupDir); diff --git a/src/test/java/org/jabref/gui/edit/CopyMoreActionTest.java b/src/test/java/org/jabref/gui/edit/CopyMoreActionTest.java index 7d8b0b2733d..b6af316427d 100644 --- a/src/test/java/org/jabref/gui/edit/CopyMoreActionTest.java +++ b/src/test/java/org/jabref/gui/edit/CopyMoreActionTest.java @@ -33,7 +33,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -public class CopyMoreActionTest { +class CopyMoreActionTest { private final DialogService dialogService = spy(DialogService.class); private final ClipBoardManager clipBoardManager = mock(ClipBoardManager.class); @@ -48,7 +48,7 @@ public class CopyMoreActionTest { private BibEntry entry; @BeforeEach - public void setUp() { + void setUp() { String title = "A tale from the trenches"; entry = new BibEntry(StandardEntryType.Misc) .withField(StandardField.AUTHOR, "Souti Chattopadhyay and Nicholas Nelson and Audrey Au and Natalia Morales and Christopher Sanchez and Rahul Pandita and Anita Sarma") @@ -67,7 +67,7 @@ public void setUp() { } @Test - public void executeOnFail() { + void executeOnFail() { when(stateManager.getActiveDatabase()).thenReturn(Optional.empty()); when(stateManager.getSelectedEntries()).thenReturn(FXCollections.emptyObservableList()); copyMoreAction = new CopyMoreAction(StandardActions.COPY_TITLE, dialogService, stateManager, clipBoardManager, preferencesService, abbreviationRepository); @@ -78,7 +78,7 @@ public void executeOnFail() { } @Test - public void executeCopyTitleWithNoTitle() { + void executeCopyTitleWithNoTitle() { BibEntry entryWithNoTitle = (BibEntry) entry.clone(); entryWithNoTitle.clearField(StandardField.TITLE); ObservableList entriesWithNoTitles = FXCollections.observableArrayList(entryWithNoTitle); @@ -94,7 +94,7 @@ public void executeCopyTitleWithNoTitle() { } @Test - public void executeCopyTitleOnPartialSuccess() { + void executeCopyTitleOnPartialSuccess() { BibEntry entryWithNoTitle = (BibEntry) entry.clone(); entryWithNoTitle.clearField(StandardField.TITLE); ObservableList mixedEntries = FXCollections.observableArrayList(entryWithNoTitle, entry); @@ -112,7 +112,7 @@ public void executeCopyTitleOnPartialSuccess() { } @Test - public void executeCopyTitleOnSuccess() { + void executeCopyTitleOnSuccess() { ObservableList entriesWithTitles = FXCollections.observableArrayList(entry); BibDatabaseContext databaseContext = new BibDatabaseContext(new BibDatabase(entriesWithTitles)); @@ -128,7 +128,7 @@ public void executeCopyTitleOnSuccess() { } @Test - public void executeCopyKeyWithNoKey() { + void executeCopyKeyWithNoKey() { BibEntry entryWithNoKey = (BibEntry) entry.clone(); entryWithNoKey.clearCiteKey(); ObservableList entriesWithNoKeys = FXCollections.observableArrayList(entryWithNoKey); @@ -144,7 +144,7 @@ public void executeCopyKeyWithNoKey() { } @Test - public void executeCopyKeyOnPartialSuccess() { + void executeCopyKeyOnPartialSuccess() { BibEntry entryWithNoKey = (BibEntry) entry.clone(); entryWithNoKey.clearCiteKey(); ObservableList mixedEntries = FXCollections.observableArrayList(entryWithNoKey, entry); @@ -162,7 +162,7 @@ public void executeCopyKeyOnPartialSuccess() { } @Test - public void executeCopyKeyOnSuccess() { + void executeCopyKeyOnSuccess() { ObservableList entriesWithKeys = FXCollections.observableArrayList(entry); BibDatabaseContext databaseContext = new BibDatabaseContext(new BibDatabase(entriesWithKeys)); @@ -178,7 +178,7 @@ public void executeCopyKeyOnSuccess() { } @Test - public void executeCopyDoiWithNoDoi() { + void executeCopyDoiWithNoDoi() { BibEntry entryWithNoDoi = (BibEntry) entry.clone(); entryWithNoDoi.clearField(StandardField.DOI); ObservableList entriesWithNoDois = FXCollections.observableArrayList(entryWithNoDoi); @@ -194,7 +194,7 @@ public void executeCopyDoiWithNoDoi() { } @Test - public void executeCopyDoiOnPartialSuccess() { + void executeCopyDoiOnPartialSuccess() { BibEntry entryWithNoDoi = (BibEntry) entry.clone(); entryWithNoDoi.clearField(StandardField.DOI); ObservableList mixedEntries = FXCollections.observableArrayList(entryWithNoDoi, entry); @@ -212,7 +212,7 @@ public void executeCopyDoiOnPartialSuccess() { } @Test - public void executeCopyDoiOnSuccess() { + void executeCopyDoiOnSuccess() { ObservableList entriesWithDois = FXCollections.observableArrayList(entry); BibDatabaseContext databaseContext = new BibDatabaseContext(new BibDatabase(entriesWithDois)); diff --git a/src/test/java/org/jabref/gui/edit/CopyOrMoveFieldContentTabViewModelTest.java b/src/test/java/org/jabref/gui/edit/CopyOrMoveFieldContentTabViewModelTest.java index 75a1a176597..e8182ba5cd1 100644 --- a/src/test/java/org/jabref/gui/edit/CopyOrMoveFieldContentTabViewModelTest.java +++ b/src/test/java/org/jabref/gui/edit/CopyOrMoveFieldContentTabViewModelTest.java @@ -15,7 +15,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; -public class CopyOrMoveFieldContentTabViewModelTest { +class CopyOrMoveFieldContentTabViewModelTest { CopyOrMoveFieldContentTabViewModel copyOrMoveFieldContentTabViewModel; BibEntry entryA; BibEntry entryB; diff --git a/src/test/java/org/jabref/gui/edit/EditFieldContentTabViewModelTest.java b/src/test/java/org/jabref/gui/edit/EditFieldContentTabViewModelTest.java index 1221580762a..931edb84a05 100644 --- a/src/test/java/org/jabref/gui/edit/EditFieldContentTabViewModelTest.java +++ b/src/test/java/org/jabref/gui/edit/EditFieldContentTabViewModelTest.java @@ -16,7 +16,7 @@ import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.mockito.Mockito.mock; -public class EditFieldContentTabViewModelTest { +class EditFieldContentTabViewModelTest { EditFieldContentViewModel editFieldContentViewModel; BibEntry entryA; BibEntry entryB; diff --git a/src/test/java/org/jabref/gui/edit/ManageKeywordsViewModelTest.java b/src/test/java/org/jabref/gui/edit/ManageKeywordsViewModelTest.java index 39e9ffab57b..ecb365d5715 100644 --- a/src/test/java/org/jabref/gui/edit/ManageKeywordsViewModelTest.java +++ b/src/test/java/org/jabref/gui/edit/ManageKeywordsViewModelTest.java @@ -19,7 +19,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class ManageKeywordsViewModelTest { +class ManageKeywordsViewModelTest { private final BibEntryPreferences bibEntryPreferences = mock(BibEntryPreferences.class); private ManageKeywordsViewModel keywordsViewModel; diff --git a/src/test/java/org/jabref/gui/edit/RenameFieldViewModelTest.java b/src/test/java/org/jabref/gui/edit/RenameFieldViewModelTest.java index bf5a246e97f..7d3c4c3cd18 100644 --- a/src/test/java/org/jabref/gui/edit/RenameFieldViewModelTest.java +++ b/src/test/java/org/jabref/gui/edit/RenameFieldViewModelTest.java @@ -18,7 +18,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; -public class RenameFieldViewModelTest { +class RenameFieldViewModelTest { RenameFieldViewModel renameFieldViewModel; BibEntry entryA; BibEntry entryB; diff --git a/src/test/java/org/jabref/gui/edit/ReplaceStringViewModelTest.java b/src/test/java/org/jabref/gui/edit/ReplaceStringViewModelTest.java index 606b34bc3ec..3a4c6e9c7f1 100644 --- a/src/test/java/org/jabref/gui/edit/ReplaceStringViewModelTest.java +++ b/src/test/java/org/jabref/gui/edit/ReplaceStringViewModelTest.java @@ -20,7 +20,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class ReplaceStringViewModelTest { +class ReplaceStringViewModelTest { private final LibraryTab libraryTab = mock(LibraryTab.class); private ReplaceStringViewModel viewModel; diff --git a/src/test/java/org/jabref/gui/entryeditor/CommentsTabTest.java b/src/test/java/org/jabref/gui/entryeditor/CommentsTabTest.java index 91f03698fd6..f2c87edfb76 100644 --- a/src/test/java/org/jabref/gui/entryeditor/CommentsTabTest.java +++ b/src/test/java/org/jabref/gui/entryeditor/CommentsTabTest.java @@ -163,7 +163,7 @@ void determineFieldsToShowWorksForMultipleUsers() { } @Test - public void differentiateCaseInUserName() { + void differentiateCaseInUserName() { UserSpecificCommentField field1 = new UserSpecificCommentField("USER"); UserSpecificCommentField field2 = new UserSpecificCommentField("user"); assertNotEquals(field1, field2, "Two UserSpecificCommentField instances with usernames that differ only by case should be considered different"); diff --git a/src/test/java/org/jabref/gui/entryeditor/SciteTabTest.java b/src/test/java/org/jabref/gui/entryeditor/SciteTabTest.java index 2e39af4d541..7349ef69d7c 100644 --- a/src/test/java/org/jabref/gui/entryeditor/SciteTabTest.java +++ b/src/test/java/org/jabref/gui/entryeditor/SciteTabTest.java @@ -7,7 +7,6 @@ import org.jabref.preferences.PreferencesService; import org.jabref.testutils.category.GUITest; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -16,6 +15,8 @@ import org.mockito.MockitoAnnotations; import org.testfx.framework.junit5.ApplicationExtension; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -41,25 +42,25 @@ void setUp() { } @Test - public void name() { - Assertions.assertEquals(SciteTab.NAME, "Citation information"); + void name() { + assertEquals(SciteTab.NAME, "Citation information"); } @Test - public void shouldShow() { + void shouldShow() { var tab = new SciteTab(preferencesService, taskExecutor, dialogService); boolean shouldShow = tab.shouldShow(null); - Assertions.assertTrue(shouldShow); + assertTrue(shouldShow); } @Test - public void bindNullEntry() { + void bindNullEntry() { var tab = new SciteTab(preferencesService, taskExecutor, dialogService); tab.bindToEntry(null); } @Test - public void bindEntry() { + void bindEntry() { var tab = new SciteTab(preferencesService, taskExecutor, dialogService); var entry = new BibEntry() .withField(StandardField.DOI, SAMPLE_DOI); diff --git a/src/test/java/org/jabref/gui/entryeditor/SciteTabViewModelTest.java b/src/test/java/org/jabref/gui/entryeditor/SciteTabViewModelTest.java index e10db4ec3d1..6b8bc95a6f3 100644 --- a/src/test/java/org/jabref/gui/entryeditor/SciteTabViewModelTest.java +++ b/src/test/java/org/jabref/gui/entryeditor/SciteTabViewModelTest.java @@ -18,7 +18,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class SciteTabViewModelTest { +class SciteTabViewModelTest { @Mock private PreferencesService preferencesService; @@ -34,7 +34,7 @@ void setUp() { } @Test - public void sciteTallyDTO() { + void sciteTallyDTO() { JSONObject jsonObject = new JSONObject(); jsonObject.put("total", 1); jsonObject.put("supporting", 2); diff --git a/src/test/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationViewModelTest.java b/src/test/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationViewModelTest.java index d53cf7c0499..95d38b96872 100644 --- a/src/test/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationViewModelTest.java +++ b/src/test/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationViewModelTest.java @@ -11,7 +11,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class FileAnnotationViewModelTest { +class FileAnnotationViewModelTest { private FileAnnotationViewModel annotationViewModel; private FileAnnotationViewModel annotationViewModelWithoutFileAnnotation; @@ -31,27 +31,27 @@ void setup() { } @Test - public void sameAuthor() { + void sameAuthor() { assertEquals("Jaroslav Kucha ˇr", annotationViewModel.getAuthor()); } @Test - public void retrieveCorrectPageNumberAsString() { + void retrieveCorrectPageNumberAsString() { assertEquals("1", annotationViewModel.getPage()); } @Test - public void retrieveCorrectDateAsString() { + void retrieveCorrectDateAsString() { assertEquals("2017-07-20 10:11:30", annotationViewModel.getDate()); } @Test - public void retrieveCorrectContent() { + void retrieveCorrectContent() { assertEquals("This is content", annotationViewModel.getContent()); } @Test - public void retrieveCorrectContentWithoutLinkedFileAnnotation() { + void retrieveCorrectContentWithoutLinkedFileAnnotation() { String expectedMarking = ("This is paragraph 1.%n" + "This is paragraph 2, and it crosses several lines, now you can see next paragraph:%n" + "This is paragraph 3.").formatted(); @@ -60,7 +60,7 @@ public void retrieveCorrectContentWithoutLinkedFileAnnotation() { } @Test - public void removeOnlyLineBreaksNotPrecededByPeriodOrColon() { + void removeOnlyLineBreaksNotPrecededByPeriodOrColon() { String expectedMarking = ("This is paragraph 1.%n" + "This is paragraph 2, and it crosses several lines, now you can see next paragraph:%n" + "This is paragraph 3.").formatted(); @@ -69,7 +69,7 @@ public void removeOnlyLineBreaksNotPrecededByPeriodOrColon() { } @Test - public void retrieveCorrectMarkingWithoutLinkedFileAnnotation() { + void retrieveCorrectMarkingWithoutLinkedFileAnnotation() { assertEquals("", annotationViewModelWithoutFileAnnotation.getMarking()); } } diff --git a/src/test/java/org/jabref/gui/exporter/ExportToClipboardActionTest.java b/src/test/java/org/jabref/gui/exporter/ExportToClipboardActionTest.java index 1d545d104f4..a8ce6e4e719 100644 --- a/src/test/java/org/jabref/gui/exporter/ExportToClipboardActionTest.java +++ b/src/test/java/org/jabref/gui/exporter/ExportToClipboardActionTest.java @@ -41,7 +41,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -public class ExportToClipboardActionTest { +class ExportToClipboardActionTest { private ExportToClipboardAction exportToClipboardAction; private final DialogService dialogService = spy(DialogService.class); @@ -54,7 +54,7 @@ public class ExportToClipboardActionTest { private ObservableList selectedEntries; @BeforeEach - public void setUp() { + void setUp() { BibEntry entry = new BibEntry(StandardEntryType.Misc) .withField(StandardField.AUTHOR, "Souti Chattopadhyay and Nicholas Nelson and Audrey Au and Natalia Morales and Christopher Sanchez and Rahul Pandita and Anita Sarma") .withField(StandardField.TITLE, "A tale from the trenches") @@ -73,7 +73,7 @@ public void setUp() { } @Test - public void executeIfNoSelectedEntries() { + void executeIfNoSelectedEntries() { when(stateManager.getSelectedEntries()).thenReturn(FXCollections.emptyObservableList()); exportToClipboardAction.execute(); @@ -81,7 +81,7 @@ public void executeIfNoSelectedEntries() { } @Test - public void executeOnSuccess() { + void executeOnSuccess() { Exporter selectedExporter = new Exporter("html", "HTML", StandardFileType.HTML) { @Override public void export(BibDatabaseContext databaseContext, Path file, List entries) { diff --git a/src/test/java/org/jabref/gui/exporter/SaveDatabaseActionTest.java b/src/test/java/org/jabref/gui/exporter/SaveDatabaseActionTest.java index 152e1eb4879..9f541d58efe 100644 --- a/src/test/java/org/jabref/gui/exporter/SaveDatabaseActionTest.java +++ b/src/test/java/org/jabref/gui/exporter/SaveDatabaseActionTest.java @@ -57,7 +57,7 @@ class SaveDatabaseActionTest { private SaveDatabaseAction saveDatabaseAction; @BeforeEach - public void setUp() { + void setUp() { when(libraryTab.getBibDatabaseContext()).thenReturn(dbContext); when(filePreferences.getWorkingDirectory()).thenReturn(Path.of(TEST_BIBTEX_LIBRARY_LOCATION)); when(preferences.getFilePreferences()).thenReturn(filePreferences); @@ -66,7 +66,7 @@ public void setUp() { } @Test - public void saveAsShouldSetWorkingDirectory() { + void saveAsShouldSetWorkingDirectory() { when(dialogService.showFileSaveDialog(any(FileDialogConfiguration.class))).thenReturn(Optional.of(file)); doReturn(true).when(saveDatabaseAction).saveAs(any()); @@ -76,7 +76,7 @@ public void saveAsShouldSetWorkingDirectory() { } @Test - public void saveAsShouldNotSetWorkingDirectoryIfNotSelected() { + void saveAsShouldNotSetWorkingDirectoryIfNotSelected() { when(dialogService.showFileSaveDialog(any(FileDialogConfiguration.class))).thenReturn(Optional.empty()); doReturn(false).when(saveDatabaseAction).saveAs(any()); @@ -86,7 +86,7 @@ public void saveAsShouldNotSetWorkingDirectoryIfNotSelected() { } @Test - public void saveShouldShowSaveAsIfDatabaseNotSelected() { + void saveShouldShowSaveAsIfDatabaseNotSelected() { when(dbContext.getDatabasePath()).thenReturn(Optional.empty()); when(dbContext.getLocation()).thenReturn(DatabaseLocation.LOCAL); when(preferences.getBoolean(JabRefPreferences.LOCAL_AUTO_SAVE)).thenReturn(false); @@ -131,7 +131,7 @@ private SaveDatabaseAction createSaveDatabaseActionForBibDatabase(BibDatabase da } @Test - public void saveKeepsChangedFlag() throws Exception { + void saveKeepsChangedFlag() throws Exception { BibEntry firstEntry = new BibEntry().withField(StandardField.AUTHOR, "first"); firstEntry.setChanged(true); BibEntry secondEntry = new BibEntry().withField(StandardField.AUTHOR, "second"); @@ -148,7 +148,7 @@ public void saveKeepsChangedFlag() throws Exception { } @Test - public void saveShouldNotSaveDatabaseIfPathNotSet() { + void saveShouldNotSaveDatabaseIfPathNotSet() { when(dbContext.getDatabasePath()).thenReturn(Optional.empty()); boolean result = saveDatabaseAction.save(); assertFalse(result); diff --git a/src/test/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtilTest.java b/src/test/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtilTest.java index 51a91c5bc80..a609b37ab3c 100644 --- a/src/test/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtilTest.java +++ b/src/test/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtilTest.java @@ -25,7 +25,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class AutoSetFileLinksUtilTest { +class AutoSetFileLinksUtilTest { private final FilePreferences filePreferences = mock(FilePreferences.class); private final AutoLinkPreferences autoLinkPrefs = new AutoLinkPreferences( @@ -38,7 +38,7 @@ public class AutoSetFileLinksUtilTest { private Path path = null; @BeforeEach - public void setUp(@TempDir Path folder) throws Exception { + void setUp(@TempDir Path folder) throws Exception { path = folder.resolve("CiteKey.pdf"); Files.createFile(path); entry.setCitationKey("CiteKey"); @@ -47,7 +47,7 @@ public void setUp(@TempDir Path folder) throws Exception { } @Test - public void findAssociatedNotLinkedFilesSuccess() throws Exception { + void findAssociatedNotLinkedFilesSuccess() throws Exception { when(databaseContext.getFileDirectories(any())).thenReturn(Collections.singletonList(path.getParent())); List expected = Collections.singletonList(new LinkedFile("", Path.of("CiteKey.pdf"), "PDF")); AutoSetFileLinksUtil util = new AutoSetFileLinksUtil(databaseContext, filePreferences, autoLinkPrefs); @@ -56,7 +56,7 @@ public void findAssociatedNotLinkedFilesSuccess() throws Exception { } @Test - public void findAssociatedNotLinkedFilesForEmptySearchDir() throws Exception { + void findAssociatedNotLinkedFilesForEmptySearchDir() throws Exception { when(filePreferences.shouldStoreFilesRelativeToBibFile()).thenReturn(false); AutoSetFileLinksUtil util = new AutoSetFileLinksUtil(databaseContext, filePreferences, autoLinkPrefs); List actual = util.findAssociatedNotLinkedFiles(entry); diff --git a/src/test/java/org/jabref/gui/externalfiles/FileFilterUtilsTest.java b/src/test/java/org/jabref/gui/externalfiles/FileFilterUtilsTest.java index 6f0ce769452..9faa54d6e9f 100755 --- a/src/test/java/org/jabref/gui/externalfiles/FileFilterUtilsTest.java +++ b/src/test/java/org/jabref/gui/externalfiles/FileFilterUtilsTest.java @@ -20,48 +20,48 @@ import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -public class FileFilterUtilsTest { +class FileFilterUtilsTest { private final FileFilterUtils fileFilterUtils = new FileFilterUtils(); private final LocalDateTime time = LocalDateTime.now(); @Test - public void isDuringLastDayNegativeTest() { + void isDuringLastDayNegativeTest() { assertFalse(fileFilterUtils.isDuringLastDay(time.minusHours(24))); } @Test - public void isDuringLastDayPositiveTest() { + void isDuringLastDayPositiveTest() { assertTrue(fileFilterUtils.isDuringLastDay(time.minusHours(23))); } @Test - public void isDuringLastWeekNegativeTest() { + void isDuringLastWeekNegativeTest() { assertFalse(fileFilterUtils.isDuringLastWeek(time.minusDays(7))); } @Test - public void isDuringLastWeekPositiveTest() { + void isDuringLastWeekPositiveTest() { assertTrue(fileFilterUtils.isDuringLastWeek(time.minusDays(6).minusHours(23))); } @Test - public void isDuringLastMonthNegativeTest() { + void isDuringLastMonthNegativeTest() { assertFalse(fileFilterUtils.isDuringLastMonth(time.minusDays(30))); } @Test - public void isDuringLastMonthPositiveTest() { + void isDuringLastMonthPositiveTest() { assertTrue(fileFilterUtils.isDuringLastMonth(time.minusDays(29).minusHours(23))); } @Test - public void isDuringLastYearNegativeTest() { + void isDuringLastYearNegativeTest() { assertFalse(fileFilterUtils.isDuringLastYear(time.minusDays(365))); } @Test - public void isDuringLastYearPositiveTest() { + void isDuringLastYearPositiveTest() { assertTrue(fileFilterUtils.isDuringLastYear(time.minusDays(364).minusHours(23))); } @@ -75,7 +75,7 @@ class SortingTests { /* Initialize the directory and files used in the sorting tests, and change their last edited dates. */ @BeforeEach - public void setUp(@TempDir Path tempDir) throws Exception { + void setUp(@TempDir Path tempDir) throws Exception { Path firstPath = tempDir.resolve("firstFile.pdf"); Path secondPath = tempDir.resolve("secondFile.pdf"); @@ -117,7 +117,7 @@ public void setUp(@TempDir Path tempDir) throws Exception { } @Test - public void sortByDateAscendingPositiveTest() { + void sortByDateAscendingPositiveTest() { List sortedPaths = fileFilterUtils .sortByDateAscending(files) .stream() @@ -127,7 +127,7 @@ public void sortByDateAscendingPositiveTest() { } @Test - public void sortByDateAscendingNegativeTest() { + void sortByDateAscendingNegativeTest() { List sortedPaths = fileFilterUtils .sortByDateAscending(files) .stream() @@ -137,7 +137,7 @@ public void sortByDateAscendingNegativeTest() { } @Test - public void sortByDateDescendingPositiveTest() { + void sortByDateDescendingPositiveTest() { List sortedPaths = fileFilterUtils .sortByDateDescending(files) .stream() @@ -147,7 +147,7 @@ public void sortByDateDescendingPositiveTest() { } @Test - public void sortByDateDescendingNegativeTest() { + void sortByDateDescendingNegativeTest() { List sortedPaths = fileFilterUtils .sortByDateDescending(files) .stream() @@ -164,7 +164,7 @@ class filteringTests { private final Set ignoreFileSet = new HashSet<>(); @BeforeEach - public void setUp(@TempDir Path tempDir) throws Exception { + void setUp(@TempDir Path tempDir) throws Exception { ignoreFileSet.add(".DS_Store"); ignoreFileSet.add("Thumbs.db"); diff --git a/src/test/java/org/jabref/gui/externalfiles/GitIgnoreFileFilterTest.java b/src/test/java/org/jabref/gui/externalfiles/GitIgnoreFileFilterTest.java index 2504ffb55b7..c574719bdde 100644 --- a/src/test/java/org/jabref/gui/externalfiles/GitIgnoreFileFilterTest.java +++ b/src/test/java/org/jabref/gui/externalfiles/GitIgnoreFileFilterTest.java @@ -12,7 +12,7 @@ class GitIgnoreFileFilterTest { @Test - public void checkSimpleGitIgnore(@TempDir Path dir) throws Exception { + void checkSimpleGitIgnore(@TempDir Path dir) throws Exception { Files.writeString(dir.resolve(".gitignore"), """ *.png """); @@ -21,7 +21,7 @@ public void checkSimpleGitIgnore(@TempDir Path dir) throws Exception { } @Test - public void checkSimpleGitIgnoreWithAllowing(@TempDir Path dir) throws Exception { + void checkSimpleGitIgnoreWithAllowing(@TempDir Path dir) throws Exception { Files.writeString(dir.resolve(".gitignore"), """ !*.png """); @@ -30,7 +30,7 @@ public void checkSimpleGitIgnoreWithAllowing(@TempDir Path dir) throws Exception } @Test - public void checkSimpleGitIgnoreWithOverwritingDefs(@TempDir Path dir) throws Exception { + void checkSimpleGitIgnoreWithOverwritingDefs(@TempDir Path dir) throws Exception { Files.writeString(dir.resolve(".gitignore"), """ !*.png *.png @@ -40,7 +40,7 @@ public void checkSimpleGitIgnoreWithOverwritingDefs(@TempDir Path dir) throws Ex } @Test - public void checkDirectoryGitIgnore(@TempDir Path dir) throws Exception { + void checkDirectoryGitIgnore(@TempDir Path dir) throws Exception { Files.writeString(dir.resolve(".gitignore"), """ **/*.png """); diff --git a/src/test/java/org/jabref/gui/externalfiles/UnlinkedFilesCrawlerTest.java b/src/test/java/org/jabref/gui/externalfiles/UnlinkedFilesCrawlerTest.java index 534894b59ce..607c30c4658 100644 --- a/src/test/java/org/jabref/gui/externalfiles/UnlinkedFilesCrawlerTest.java +++ b/src/test/java/org/jabref/gui/externalfiles/UnlinkedFilesCrawlerTest.java @@ -22,7 +22,7 @@ class UnlinkedFilesCrawlerTest { @Test - public void minimalGitIgnore(@TempDir Path testRoot) throws Exception { + void minimalGitIgnore(@TempDir Path testRoot) throws Exception { Files.writeString(testRoot.resolve(".gitignore"), """ *.png """); @@ -41,7 +41,7 @@ public void minimalGitIgnore(@TempDir Path testRoot) throws Exception { } @Test - public void excludingTheCurrentLibraryTest(@TempDir Path testRoot) throws IOException { + void excludingTheCurrentLibraryTest(@TempDir Path testRoot) throws IOException { // Adding 3 files one of which is the database file Files.createFile(testRoot.resolve("unlinkedPdf.pdf")); Files.createFile(testRoot.resolve("another-unlinkedPdf.pdf")); diff --git a/src/test/java/org/jabref/gui/importer/NewEntryActionTest.java b/src/test/java/org/jabref/gui/importer/NewEntryActionTest.java index 3bb923b426c..123155bab8f 100644 --- a/src/test/java/org/jabref/gui/importer/NewEntryActionTest.java +++ b/src/test/java/org/jabref/gui/importer/NewEntryActionTest.java @@ -21,7 +21,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -public class NewEntryActionTest { +class NewEntryActionTest { private NewEntryAction newEntryAction; private final LibraryTab libraryTab = mock(LibraryTab.class); @@ -31,13 +31,13 @@ public class NewEntryActionTest { private final StateManager stateManager = mock(StateManager.class); @BeforeEach - public void setUp() { + void setUp() { when(stateManager.activeDatabaseProperty()).thenReturn(OptionalObjectProperty.empty()); newEntryAction = new NewEntryAction(() -> libraryTab, dialogService, preferencesService, stateManager); } @Test - public void executeOnSuccessWithFixedType() { + void executeOnSuccessWithFixedType() { EntryType type = StandardEntryType.Article; newEntryAction = new NewEntryAction(() -> libraryTab, type, dialogService, preferencesService, stateManager); when(tabContainer.getLibraryTabs()).thenReturn(List.of(libraryTab)); diff --git a/src/test/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelectorViewModelTest.java b/src/test/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelectorViewModelTest.java index 309dc0a4ff8..cd17e1c38b4 100644 --- a/src/test/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelectorViewModelTest.java +++ b/src/test/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelectorViewModelTest.java @@ -25,7 +25,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class ContentSelectorViewModelTest { +class ContentSelectorViewModelTest { private final DialogService dialogService = mock(DialogService.class); private final List DEFAULT_FIELDS = Arrays.asList( StandardField.AUTHOR, StandardField.JOURNAL, StandardField.KEYWORDS, StandardField.PUBLISHER); diff --git a/src/test/java/org/jabref/gui/maintable/MainTableColumnModelTest.java b/src/test/java/org/jabref/gui/maintable/MainTableColumnModelTest.java index f8a094b3d91..f2f393d0300 100644 --- a/src/test/java/org/jabref/gui/maintable/MainTableColumnModelTest.java +++ b/src/test/java/org/jabref/gui/maintable/MainTableColumnModelTest.java @@ -9,7 +9,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; -public class MainTableColumnModelTest { +class MainTableColumnModelTest { private static String testName = "field:author"; private static MainTableColumnModel.Type testType = MainTableColumnModel.Type.NORMALFIELD; @@ -19,47 +19,47 @@ public class MainTableColumnModelTest { private static MainTableColumnModel.Type testTypeOnlyType = MainTableColumnModel.Type.LINKED_IDENTIFIER; @BeforeAll - public static void setup() { + static void setup() { Injector.setModelOrService(PreferencesService.class, mock(PreferencesService.class)); } @Test - public void mainTableColumnModelParserRetrievesCorrectType() { + void mainTableColumnModelParserRetrievesCorrectType() { MainTableColumnModel testColumnModel = MainTableColumnModel.parse(testQualifier); assertEquals(testType, testColumnModel.getType()); } @Test - public void mainTableColumnModelParserRetrievesCorrectQualifier() { + void mainTableColumnModelParserRetrievesCorrectQualifier() { MainTableColumnModel testColumnModel = MainTableColumnModel.parse(testQualifier); assertEquals(testQualifier, testColumnModel.getQualifier()); } @Test - public void fullMainTableColumnModelParserRetrievesCorrectType() { + void fullMainTableColumnModelParserRetrievesCorrectType() { MainTableColumnModel testColumnModel = MainTableColumnModel.parse(testName); assertEquals(testType, testColumnModel.getType()); } @Test - public void fullMainTableColumnModelParserRetrievesCorrectQualifier() { + void fullMainTableColumnModelParserRetrievesCorrectQualifier() { MainTableColumnModel testColumnModel = MainTableColumnModel.parse(testName); assertEquals(testQualifier, testColumnModel.getQualifier()); } @Test - public void typeOnlyMainTableColumnModelParserRetrievesCorrectType() { + void typeOnlyMainTableColumnModelParserRetrievesCorrectType() { MainTableColumnModel testColumnModel = MainTableColumnModel.parse(testTypeOnlyName); assertEquals(testTypeOnlyType, testColumnModel.getType()); } @Test - public void typeOnlyMainTableColumnModelParserRetrievesCorrectQualifier() { + void typeOnlyMainTableColumnModelParserRetrievesCorrectQualifier() { MainTableColumnModel testColumnModel = MainTableColumnModel.parse(testTypeOnlyName); assertEquals("", testColumnModel.getQualifier()); diff --git a/src/test/java/org/jabref/gui/menus/FileHistoryMenuTest.java b/src/test/java/org/jabref/gui/menus/FileHistoryMenuTest.java index 7f1a2fde341..a50815f835e 100644 --- a/src/test/java/org/jabref/gui/menus/FileHistoryMenuTest.java +++ b/src/test/java/org/jabref/gui/menus/FileHistoryMenuTest.java @@ -17,7 +17,7 @@ import static org.mockito.MockitoAnnotations.openMocks; @ExtendWith(ApplicationExtension.class) -public class FileHistoryMenuTest { +class FileHistoryMenuTest { private static final String BIBTEX_LIBRARY_PATH = "src/test/resources/org/jabref/"; private FileHistoryMenu fileHistoryMenu; @@ -27,7 +27,7 @@ public class FileHistoryMenuTest { private DialogService dialogService; @BeforeEach - public void setUp() { + void setUp() { openMocks(this); // "null" is a workaround, because OpenDatabaseAction cannot be mocked easily fileHistoryMenu = new FileHistoryMenu(fileHistory, dialogService, null); diff --git a/src/test/java/org/jabref/gui/mergeentries/DiffHighlightingTest.java b/src/test/java/org/jabref/gui/mergeentries/DiffHighlightingTest.java index bab1a6e46d0..f0da5e434c7 100644 --- a/src/test/java/org/jabref/gui/mergeentries/DiffHighlightingTest.java +++ b/src/test/java/org/jabref/gui/mergeentries/DiffHighlightingTest.java @@ -9,6 +9,8 @@ import org.jabref.testutils.category.GUITest; import org.junit.jupiter.api.Assertions; + +import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.testfx.framework.junit5.ApplicationExtension; @@ -29,12 +31,12 @@ public static void assertEquals(List expected, List actual) { @Test void generateDiffHighlightingBothNullThrowsNPE() { - Assertions.assertThrows(NullPointerException.class, () -> DiffHighlighting.generateDiffHighlighting(null, null, "")); + assertThrows(NullPointerException.class, () -> DiffHighlighting.generateDiffHighlighting(null, null, "")); } @Test void nullSeparatorThrowsNPE() { - Assertions.assertThrows(NullPointerException.class, () -> DiffHighlighting.generateDiffHighlighting("", "", null)); + assertThrows(NullPointerException.class, () -> DiffHighlighting.generateDiffHighlighting("", "", null)); } @Test diff --git a/src/test/java/org/jabref/gui/mergeentries/FieldRowViewModelTest.java b/src/test/java/org/jabref/gui/mergeentries/FieldRowViewModelTest.java index a4802c8537a..02a4dcd68a4 100644 --- a/src/test/java/org/jabref/gui/mergeentries/FieldRowViewModelTest.java +++ b/src/test/java/org/jabref/gui/mergeentries/FieldRowViewModelTest.java @@ -37,7 +37,7 @@ public class FieldRowViewModelTest { BibEntryPreferences bibEntryPreferences = mock(BibEntryPreferences.class); @BeforeEach - public void setup() throws ParseException { + void setup() throws ParseException { leftEntry = new BibEntry(StandardEntryType.Article) .withCitationKey("LajnDiezScheinEtAl2012") .withField(StandardField.AUTHOR, "Lajn, A and Diez, T and Schein, F and Frenzel, H and von Wenckstern, H and Grundmann, M") @@ -78,7 +78,7 @@ public void setup() throws ParseException { } @Test - public void selectNonEmptyValueShouldSelectLeftFieldValueIfItIsNotEmpty() { + void selectNonEmptyValueShouldSelectLeftFieldValueIfItIsNotEmpty() { var numberFieldViewModel = createViewModelForField(StandardField.NUMBER); numberFieldViewModel.selectNonEmptyValue(); assertEquals(FieldRowViewModel.Selection.LEFT, numberFieldViewModel.getSelection()); @@ -89,7 +89,7 @@ public void selectNonEmptyValueShouldSelectLeftFieldValueIfItIsNotEmpty() { } @Test - public void selectNonEmptyValueShouldSelectRightFieldValueIfLeftValueIsEmpty() { + void selectNonEmptyValueShouldSelectRightFieldValueIfLeftValueIsEmpty() { var monthFieldViewModel = createViewModelForField(StandardField.MONTH); monthFieldViewModel.selectNonEmptyValue(); assertEquals(FieldRowViewModel.Selection.RIGHT, monthFieldViewModel.getSelection()); @@ -100,14 +100,14 @@ public void selectNonEmptyValueShouldSelectRightFieldValueIfLeftValueIsEmpty() { } @Test - public void hasEqualLeftAndRightValuesShouldReturnFalseIfOneOfTheValuesIsEmpty() { + void hasEqualLeftAndRightValuesShouldReturnFalseIfOneOfTheValuesIsEmpty() { var monthFieldViewModel = createViewModelForField(StandardField.MONTH); monthFieldViewModel.selectNonEmptyValue(); assertFalse(monthFieldViewModel.hasEqualLeftAndRightValues()); } @Test - public void hasEqualLeftAndRightValuesShouldReturnTrueIfLeftAndRightAreEqual() { + void hasEqualLeftAndRightValuesShouldReturnTrueIfLeftAndRightAreEqual() { var yearFieldViewModel = createViewModelForField(StandardField.YEAR); yearFieldViewModel.selectNonEmptyValue(); assertTrue(yearFieldViewModel.hasEqualLeftAndRightValues()); @@ -115,13 +115,13 @@ public void hasEqualLeftAndRightValuesShouldReturnTrueIfLeftAndRightAreEqual() { @Test @Disabled("This test is kept as a reminder to implement a different comparison logic based on the given field.") - public void hasEqualLeftAndRightValuesShouldReturnTrueIfKeywordsAreEqual() { + void hasEqualLeftAndRightValuesShouldReturnTrueIfKeywordsAreEqual() { FieldRowViewModel keywordsField = new FieldRowViewModel(StandardField.KEYWORDS, rightEntry, extraEntry, mergedEntry, fieldMergerFactory); assertTrue(keywordsField.hasEqualLeftAndRightValues()); } @Test - public void selectLeftValueShouldBeCorrect() { + void selectLeftValueShouldBeCorrect() { var monthFieldViewModel = createViewModelForField(StandardField.MONTH); monthFieldViewModel.selectLeftValue(); assertEquals(FieldRowViewModel.Selection.LEFT, monthFieldViewModel.getSelection()); @@ -134,7 +134,7 @@ public void selectLeftValueShouldBeCorrect() { } @Test - public void selectRightValueShouldBeCorrect() { + void selectRightValueShouldBeCorrect() { var monthFieldViewModel = createViewModelForField(StandardField.MONTH); monthFieldViewModel.selectRightValue(); assertEquals(FieldRowViewModel.Selection.RIGHT, monthFieldViewModel.getSelection()); @@ -147,13 +147,13 @@ public void selectRightValueShouldBeCorrect() { } @Test - public void isFieldsMergedShouldReturnTrueIfLeftAndRightValuesAreEqual() { + void isFieldsMergedShouldReturnTrueIfLeftAndRightValuesAreEqual() { var yearFieldViewModel = createViewModelForField(StandardField.YEAR); assertTrue(yearFieldViewModel.isFieldsMerged()); } @Test - public void isFieldsMergedShouldReturnFalseIfLeftAndRightValuesAreNotEqual() { + void isFieldsMergedShouldReturnFalseIfLeftAndRightValuesAreNotEqual() { var monthFieldViewModel = createViewModelForField(StandardField.MONTH); assertFalse(monthFieldViewModel.isFieldsMerged()); @@ -165,27 +165,27 @@ public void isFieldsMergedShouldReturnFalseIfLeftAndRightValuesAreNotEqual() { } @Test - public void mergeFieldsShouldResultInLeftAndRightValuesBeingEqual() { + void mergeFieldsShouldResultInLeftAndRightValuesBeingEqual() { var groupsField = createViewModelForField(StandardField.GROUPS); groupsField.mergeFields(); assertEquals(groupsField.getLeftFieldValue(), groupsField.getRightFieldValue()); } @Test - public void mergeFieldsShouldBeCorrectEvenWhenOnOfTheValuesIsEmpty() { + void mergeFieldsShouldBeCorrectEvenWhenOnOfTheValuesIsEmpty() { var keywordsField = createViewModelForField(StandardField.KEYWORDS); keywordsField.mergeFields(); assertEquals(keywordsField.getLeftFieldValue(), keywordsField.getRightFieldValue()); } @Test - public void mergeFieldsShouldThrowUnsupportedOperationExceptionIfTheGivenFieldCanBeMerged() { + void mergeFieldsShouldThrowUnsupportedOperationExceptionIfTheGivenFieldCanBeMerged() { var authorField = createViewModelForField(StandardField.AUTHOR); assertThrows(UnsupportedOperationException.class, authorField::mergeFields); } @Test - public void mergeFieldsShouldSelectLeftFieldValue() { + void mergeFieldsShouldSelectLeftFieldValue() { var groupsField = createViewModelForField(StandardField.GROUPS); groupsField.mergeFields(); @@ -193,7 +193,7 @@ public void mergeFieldsShouldSelectLeftFieldValue() { } @Test - public void unmergeFieldsShouldBeCorrect() { + void unmergeFieldsShouldBeCorrect() { var groupsField = createViewModelForField(StandardField.GROUPS); var oldLeftGroups = groupsField.getLeftFieldValue(); var oldRightGroups = groupsField.getRightFieldValue(); @@ -205,7 +205,7 @@ public void unmergeFieldsShouldBeCorrect() { } @Test - public void unmergeFieldsShouldDoNothingIfFieldsAreNotMerged() { + void unmergeFieldsShouldDoNothingIfFieldsAreNotMerged() { var groupsField = createViewModelForField(StandardField.GROUPS); var oldLeftGroups = groupsField.getLeftFieldValue(); var oldRightGroups = groupsField.getRightFieldValue(); diff --git a/src/test/java/org/jabref/gui/mergeentries/GroupMergerTest.java b/src/test/java/org/jabref/gui/mergeentries/GroupMergerTest.java index 4f1c6824062..025ecc61b94 100644 --- a/src/test/java/org/jabref/gui/mergeentries/GroupMergerTest.java +++ b/src/test/java/org/jabref/gui/mergeentries/GroupMergerTest.java @@ -11,7 +11,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class GroupMergerTest { +class GroupMergerTest { GroupMerger groupMerger; @@ -35,7 +35,7 @@ private static Stream mergeShouldMergeGroupsCorrectly() { @ParameterizedTest @MethodSource - public void mergeShouldMergeGroupsCorrectly(String groupsA, String groupsB, String expected) { + void mergeShouldMergeGroupsCorrectly(String groupsA, String groupsB, String expected) { assertEquals(expected, groupMerger.merge(groupsA, groupsB)); } } diff --git a/src/test/java/org/jabref/gui/mergeentries/ThreeWayMergeCellViewModelTest.java b/src/test/java/org/jabref/gui/mergeentries/ThreeWayMergeCellViewModelTest.java index 663077b854c..beb2daec618 100644 --- a/src/test/java/org/jabref/gui/mergeentries/ThreeWayMergeCellViewModelTest.java +++ b/src/test/java/org/jabref/gui/mergeentries/ThreeWayMergeCellViewModelTest.java @@ -11,7 +11,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class ThreeWayMergeCellViewModelTest { +class ThreeWayMergeCellViewModelTest { ThreeWayMergeCellViewModel viewModel; diff --git a/src/test/java/org/jabref/gui/mergeentries/ThreeWayMergeViewModelTest.java b/src/test/java/org/jabref/gui/mergeentries/ThreeWayMergeViewModelTest.java index 7fd2ace57bc..9fdb230312c 100644 --- a/src/test/java/org/jabref/gui/mergeentries/ThreeWayMergeViewModelTest.java +++ b/src/test/java/org/jabref/gui/mergeentries/ThreeWayMergeViewModelTest.java @@ -19,7 +19,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -public class ThreeWayMergeViewModelTest { +class ThreeWayMergeViewModelTest { ThreeWayMergeViewModel viewModel; BibEntry leftEntry; diff --git a/src/test/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTabViewModelTest.java b/src/test/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTabViewModelTest.java index 8c730d6b583..b690f5d5290 100644 --- a/src/test/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTabViewModelTest.java +++ b/src/test/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTabViewModelTest.java @@ -54,18 +54,18 @@ public boolean viewModelIsSameValue(ExternalFileTypeItemViewModel item) { } @Test - public void whenExternalFileTypeItemViewModelWithNonEmptyStringValueThenisValidExternalFileTypeReturnTrue() { + void whenExternalFileTypeItemViewModelWithNonEmptyStringValueThenisValidExternalFileTypeReturnTrue() { assertTrue(externalFileTypesTabViewModel.isValidExternalFileType(externalFileTypeItemViewModel)); } @Test - public void whenExternalFileTypeItemViewModelWithEmptyNameThenisValidExternalFileTypeReturnFalse() { + void whenExternalFileTypeItemViewModelWithEmptyNameThenisValidExternalFileTypeReturnFalse() { this.setupViewModelWithoutName(); assertFalse(externalFileTypesTabViewModel.isValidExternalFileType(externalFileTypeItemViewModel)); } @Test - public void WhenExternalFileTypeItemViewModelIsValidThenAddNewTypeIsSuccessful() { + void WhenExternalFileTypeItemViewModelIsValidThenAddNewTypeIsSuccessful() { ArgumentCaptor itemCaptor = ArgumentCaptor.forClass(ExternalFileTypeItemViewModel.class); doAnswer(mocked -> { ExternalFileTypeItemViewModel capturedItem = itemCaptor.getValue(); @@ -81,7 +81,7 @@ public void WhenExternalFileTypeItemViewModelIsValidThenAddNewTypeIsSuccessful() } @Test - public void WhenExternalFileTypeItemViewModelMissNameThenAddNewTypeIsFailed() { + void WhenExternalFileTypeItemViewModelMissNameThenAddNewTypeIsFailed() { setupViewModelWithoutName(); ArgumentCaptor itemCaptor = ArgumentCaptor.forClass(ExternalFileTypeItemViewModel.class); doAnswer(mocked -> { diff --git a/src/test/java/org/jabref/gui/push/PushToEmacsTest.java b/src/test/java/org/jabref/gui/push/PushToEmacsTest.java index 7e298a2ec6e..8f902b299c1 100644 --- a/src/test/java/org/jabref/gui/push/PushToEmacsTest.java +++ b/src/test/java/org/jabref/gui/push/PushToEmacsTest.java @@ -25,7 +25,7 @@ class PushToEmacsTest { PushToEmacs pushToEmacs; @BeforeEach - public void setup() { + void setup() { DialogService dialogService = mock(DialogService.class, Answers.RETURNS_DEEP_STUBS); PreferencesService preferencesService = mock(PreferencesService.class); diff --git a/src/test/java/org/jabref/gui/push/PushToTeXworksTest.java b/src/test/java/org/jabref/gui/push/PushToTeXworksTest.java index 4dad0b67582..1e1e6acf710 100644 --- a/src/test/java/org/jabref/gui/push/PushToTeXworksTest.java +++ b/src/test/java/org/jabref/gui/push/PushToTeXworksTest.java @@ -30,7 +30,7 @@ class PushToTeXworksTest { private PushToTeXworks pushToTeXworks; @BeforeEach - public void setup() { + void setup() { DialogService dialogService = mock(DialogService.class, Answers.RETURNS_DEEP_STUBS); PreferencesService preferencesService = mock(PreferencesService.class); PushToApplicationPreferences pushToApplicationPreferences = mock(PushToApplicationPreferences.class); diff --git a/src/test/java/org/jabref/gui/search/GetLastSearchHistoryTest.java b/src/test/java/org/jabref/gui/search/GetLastSearchHistoryTest.java index f97eca96ff7..a3e5b2a5a43 100644 --- a/src/test/java/org/jabref/gui/search/GetLastSearchHistoryTest.java +++ b/src/test/java/org/jabref/gui/search/GetLastSearchHistoryTest.java @@ -7,15 +7,16 @@ import org.jabref.gui.StateManager; import org.jabref.testutils.category.GUITest; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.extension.ExtendWith; import org.testfx.framework.junit5.ApplicationExtension; import org.testfx.framework.junit5.Start; @GUITest @ExtendWith(ApplicationExtension.class) -public class GetLastSearchHistoryTest { +class GetLastSearchHistoryTest { @Start void onStart(Stage stage) { // Needed to init JavaFX thread @@ -31,7 +32,7 @@ void getLastSearchHistory() { List lastSearchHistory = stateManager.getLastSearchHistory(2); List expected = List.of("test2", "test3"); - Assertions.assertEquals(expected, lastSearchHistory); + assertEquals(expected, lastSearchHistory); } @Test @@ -44,7 +45,7 @@ void duplicateSearchHistory() { List lastSearchHistory = stateManager.getWholeSearchHistory(); List expected = List.of("test2", "test3", "test1"); - Assertions.assertEquals(expected, lastSearchHistory); + assertEquals(expected, lastSearchHistory); } @Test @@ -55,10 +56,10 @@ void clearSearchHistory() { stateManager.addSearchHistory("test3"); List lastSearchHistory = stateManager.getWholeSearchHistory(); List expected = List.of("test1", "test2", "test3"); - Assertions.assertEquals(expected, lastSearchHistory); + assertEquals(expected, lastSearchHistory); stateManager.clearSearchHistory(); lastSearchHistory = stateManager.getWholeSearchHistory(); expected = List.of(); - Assertions.assertEquals(expected, lastSearchHistory); + assertEquals(expected, lastSearchHistory); } } diff --git a/src/test/java/org/jabref/gui/slr/ManageStudyDefinitionViewModelTest.java b/src/test/java/org/jabref/gui/slr/ManageStudyDefinitionViewModelTest.java index cb6789d918f..ff18ea6dfd2 100644 --- a/src/test/java/org/jabref/gui/slr/ManageStudyDefinitionViewModelTest.java +++ b/src/test/java/org/jabref/gui/slr/ManageStudyDefinitionViewModelTest.java @@ -31,7 +31,7 @@ void setUp() { } @Test - public void emptyStudyConstructorFillsDatabasesCorrectly() { + void emptyStudyConstructorFillsDatabasesCorrectly() { ManageStudyDefinitionViewModel manageStudyDefinitionViewModel = new ManageStudyDefinitionViewModel(importFormatPreferences, importerPreferences, dialogService); assertEquals(List.of( new StudyCatalogItem("ACM Portal", true), @@ -60,7 +60,7 @@ public void emptyStudyConstructorFillsDatabasesCorrectly() { } @Test - public void studyConstructorFillsDatabasesCorrectly(@TempDir Path tempDir) { + void studyConstructorFillsDatabasesCorrectly(@TempDir Path tempDir) { ManageStudyDefinitionViewModel manageStudyDefinitionViewModel = getManageStudyDefinitionViewModel(tempDir); assertEquals(List.of( new StudyCatalogItem("ACM Portal", true), diff --git a/src/test/java/org/jabref/gui/theme/ThemeManagerTest.java b/src/test/java/org/jabref/gui/theme/ThemeManagerTest.java index 6dc7acfc99c..92d1fa7a7e5 100644 --- a/src/test/java/org/jabref/gui/theme/ThemeManagerTest.java +++ b/src/test/java/org/jabref/gui/theme/ThemeManagerTest.java @@ -18,7 +18,6 @@ import org.jabref.preferences.WorkspacePreferences; import org.jabref.support.DisabledOnCIServer; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -27,6 +26,7 @@ import org.mockito.Answers; import org.testfx.framework.junit5.ApplicationExtension; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; @@ -50,7 +50,7 @@ void setUp(@TempDir Path tempFolder) { } @Test - public void themeManagerUsesProvidedTheme() throws IOException { + void themeManagerUsesProvidedTheme() throws IOException { Path testCss = tempFolder.resolve("test.css"); Files.writeString(testCss, TEST_CSS_CONTENT, StandardOpenOption.CREATE); WorkspacePreferences workspacePreferences = mock(WorkspacePreferences.class, Answers.RETURNS_DEEP_STUBS); @@ -68,7 +68,7 @@ public void themeManagerUsesProvidedTheme() throws IOException { } @Test - public void customThemeAvailableEvenWhenDeleted() throws IOException { + void customThemeAvailableEvenWhenDeleted() throws IOException { /* Create a temporary custom theme that is just a small snippet of CSS. There is no CSS validation (at the moment) but by making a valid CSS block we don't preclude adding validation later */ Path testCss = tempFolder.resolve("test.css"); @@ -99,7 +99,7 @@ public void customThemeAvailableEvenWhenDeleted() throws IOException { */ @Disabled @Test - public void customThemeBecomesAvailableAfterFileIsCreated() throws IOException { + void customThemeBecomesAvailableAfterFileIsCreated() throws IOException { Path testCss = tempFolder.resolve("test.css"); WorkspacePreferences workspacePreferences = mock(WorkspacePreferences.class); when(workspacePreferences.getTheme()).thenReturn(new Theme(testCss.toString())); @@ -121,7 +121,7 @@ public void customThemeBecomesAvailableAfterFileIsCreated() throws IOException { } @Test - public void largeCustomThemeNotHeldInMemory() throws IOException { + void largeCustomThemeNotHeldInMemory() throws IOException { /* Create a temporary custom theme that is just a large comment over 48 kilobytes in size. There is no CSS validation (at the moment) but by making a valid CSS comment we don't preclude adding validation later */ Path largeCssTestFile = tempFolder.resolve("test.css"); @@ -159,7 +159,7 @@ public void largeCustomThemeNotHeldInMemory() throws IOException { @Test @DisabledOnCIServer("Randomly fails on CI server") - public void installThemeOnScene() throws IOException { + void installThemeOnScene() throws IOException { Scene scene = mock(Scene.class); when(scene.getStylesheets()).thenReturn(FXCollections.observableArrayList()); when(scene.getRoot()).thenReturn(mock(Parent.class)); @@ -178,7 +178,7 @@ public void installThemeOnScene() throws IOException { } @Test - public void installThemeOnWebEngine() throws IOException { + void installThemeOnWebEngine() throws IOException { Path testCss = tempFolder.resolve("reload.css"); Files.writeString(testCss, TEST_CSS_CONTENT, StandardOpenOption.CREATE); WorkspacePreferences workspacePreferences = mock(WorkspacePreferences.class, Answers.RETURNS_DEEP_STUBS); @@ -195,7 +195,7 @@ public void installThemeOnWebEngine() throws IOException { webEngineStyleSheetLocation.complete(webEngine.getUserStyleSheetLocation()); }); - Assertions.assertDoesNotThrow(() -> { + assertDoesNotThrow(() -> { assertEquals(TEST_CSS_DATA, webEngineStyleSheetLocation.get()); }); } @@ -205,7 +205,7 @@ public void installThemeOnWebEngine() throws IOException { * for the thread to start up and the changed css to reload. */ @Test - public void liveReloadCssDataUrl() throws IOException, InterruptedException { + void liveReloadCssDataUrl() throws IOException, InterruptedException { Path testCss = tempFolder.resolve("reload.css"); Files.writeString(testCss, TEST_CSS_CONTENT, StandardOpenOption.CREATE); WorkspacePreferences workspacePreferences = mock(WorkspacePreferences.class, Answers.RETURNS_DEEP_STUBS); diff --git a/src/test/java/org/jabref/gui/theme/ThemeTest.java b/src/test/java/org/jabref/gui/theme/ThemeTest.java index b568d33430a..c9a6489bd72 100644 --- a/src/test/java/org/jabref/gui/theme/ThemeTest.java +++ b/src/test/java/org/jabref/gui/theme/ThemeTest.java @@ -7,9 +7,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -public class ThemeTest { +class ThemeTest { @Test - public void lightThemeUsedWhenPathIsBlank() { + void lightThemeUsedWhenPathIsBlank() { Theme theme = new Theme(""); assertEquals(Theme.Type.DEFAULT, theme.getType()); @@ -18,7 +18,7 @@ public void lightThemeUsedWhenPathIsBlank() { } @Test - public void lightThemeUsedWhenPathIsBaseCss() { + void lightThemeUsedWhenPathIsBaseCss() { Theme theme = new Theme("Base.css"); assertEquals(Theme.Type.DEFAULT, theme.getType()); @@ -27,7 +27,7 @@ public void lightThemeUsedWhenPathIsBaseCss() { } @Test - public void darkThemeUsedWhenPathIsDarkCss() { + void darkThemeUsedWhenPathIsDarkCss() { Theme theme = new Theme("Dark.css"); assertEquals(Theme.Type.EMBEDDED, theme.getType()); @@ -37,7 +37,7 @@ public void darkThemeUsedWhenPathIsDarkCss() { } @Test - public void customThemeIgnoredIfDirectory() { + void customThemeIgnoredIfDirectory() { Theme theme = new Theme("."); assertEquals(Theme.Type.DEFAULT, theme.getType()); @@ -46,7 +46,7 @@ public void customThemeIgnoredIfDirectory() { } @Test - public void customThemeIgnoredIfInvalidPath() { + void customThemeIgnoredIfInvalidPath() { Theme theme = new Theme("\0\0\0"); assertEquals(Theme.Type.DEFAULT, theme.getType()); @@ -55,7 +55,7 @@ public void customThemeIgnoredIfInvalidPath() { } @Test - public void customThemeIfFileNotFound() { + void customThemeIfFileNotFound() { Theme theme = new Theme("Idonotexist.css"); assertEquals(Theme.Type.CUSTOM, theme.getType()); diff --git a/src/test/java/org/jabref/gui/util/ColorUtilTest.java b/src/test/java/org/jabref/gui/util/ColorUtilTest.java index 5b7534c7a54..4b7b18c0e96 100644 --- a/src/test/java/org/jabref/gui/util/ColorUtilTest.java +++ b/src/test/java/org/jabref/gui/util/ColorUtilTest.java @@ -11,7 +11,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class ColorUtilTest { +class ColorUtilTest { private static final Color C1 = Color.color(0.2, 0.4, 1); private static final Color C2 = Color.rgb(255, 255, 255); @@ -22,14 +22,14 @@ public class ColorUtilTest { private ColorUtil colorUtil = new ColorUtil(); @Test - public void toRGBCodeTest() { + void toRGBCodeTest() { assertEquals("#3366FF", ColorUtil.toRGBCode(C1)); assertEquals("#FFFFFF", ColorUtil.toRGBCode(C2)); } @ParameterizedTest @MethodSource("provideToRGBACodeTest") - public void toRGBACodeTest(Color color, String expected) { + void toRGBACodeTest(Color color, String expected) { assertEquals(expected, ColorUtil.toRGBACode(color)); } @@ -44,7 +44,7 @@ private static Stream provideToRGBACodeTest() { } @Test - public void toHexTest() { + void toHexTest() { assertEquals("#000001", ColorUtil.toHex(C1)); assertEquals("#010101", ColorUtil.toHex(C2)); } diff --git a/src/test/java/org/jabref/gui/util/ControlHelperTest.java b/src/test/java/org/jabref/gui/util/ControlHelperTest.java index 1707604d04c..291893af7d1 100644 --- a/src/test/java/org/jabref/gui/util/ControlHelperTest.java +++ b/src/test/java/org/jabref/gui/util/ControlHelperTest.java @@ -8,7 +8,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -public class ControlHelperTest { +class ControlHelperTest { private final String TEXT = "abcdef"; private final int MAX_CHARACTERS = 5; diff --git a/src/test/java/org/jabref/gui/util/OpenConsoleActionTest.java b/src/test/java/org/jabref/gui/util/OpenConsoleActionTest.java index c015f69c1e2..77db3af7652 100644 --- a/src/test/java/org/jabref/gui/util/OpenConsoleActionTest.java +++ b/src/test/java/org/jabref/gui/util/OpenConsoleActionTest.java @@ -16,7 +16,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -public class OpenConsoleActionTest { +class OpenConsoleActionTest { private final StateManager stateManager = mock(StateManager.class); private final PreferencesService preferences = mock(PreferencesService.class); @@ -24,13 +24,13 @@ public class OpenConsoleActionTest { private final BibDatabaseContext other = mock(BibDatabaseContext.class); @BeforeEach - public void setup() { + void setup() { when(stateManager.activeDatabaseProperty()).thenReturn(OptionalObjectProperty.empty()); when(stateManager.getActiveDatabase()).thenReturn(Optional.of(current)); } @Test - public void newActionGetsCurrentDatabase() { + void newActionGetsCurrentDatabase() { OpenConsoleAction action = new OpenConsoleAction(stateManager, preferences, null); action.execute(); verify(stateManager, times(1)).getActiveDatabase(); @@ -38,7 +38,7 @@ public void newActionGetsCurrentDatabase() { } @Test - public void newActionGetsSuppliedDatabase() { + void newActionGetsSuppliedDatabase() { OpenConsoleAction action = new OpenConsoleAction(() -> other, stateManager, preferences, null); action.execute(); verify(stateManager, never()).getActiveDatabase(); @@ -46,7 +46,7 @@ public void newActionGetsSuppliedDatabase() { } @Test - public void actionDefaultsToCurrentDatabase() { + void actionDefaultsToCurrentDatabase() { OpenConsoleAction action = new OpenConsoleAction(() -> null, stateManager, preferences, null); action.execute(); verify(stateManager, times(1)).getActiveDatabase(); diff --git a/src/test/java/org/jabref/gui/util/TooltipTextUtilTest.java b/src/test/java/org/jabref/gui/util/TooltipTextUtilTest.java index 3b266e37cb9..da5b0763001 100644 --- a/src/test/java/org/jabref/gui/util/TooltipTextUtilTest.java +++ b/src/test/java/org/jabref/gui/util/TooltipTextUtilTest.java @@ -12,12 +12,12 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -public class TooltipTextUtilTest { +class TooltipTextUtilTest { private String testText = "this is a test text"; @Test - public void retrieveCorrectTextStyleNormal() { + void retrieveCorrectTextStyleNormal() { Text text = TooltipTextUtil.createText(testText, TooltipTextUtil.TextType.NORMAL); String textStyle = "Regular"; @@ -25,14 +25,14 @@ public void retrieveCorrectTextStyleNormal() { } @Test - public void stringRemainsTheSameAfterTransformationToNormal() { + void stringRemainsTheSameAfterTransformationToNormal() { Text text = TooltipTextUtil.createText(testText, TooltipTextUtil.TextType.NORMAL); assertEquals(testText, text.getText()); } @Test - public void retrieveCorrectTextStyleBold() { + void retrieveCorrectTextStyleBold() { Text text = TooltipTextUtil.createText(testText, TooltipTextUtil.TextType.BOLD); String textStyle = "tooltip-text-bold"; @@ -40,14 +40,14 @@ public void retrieveCorrectTextStyleBold() { } @Test - public void stringRemainsTheSameAfterTransformationToBold() { + void stringRemainsTheSameAfterTransformationToBold() { Text text = TooltipTextUtil.createText(testText, TooltipTextUtil.TextType.BOLD); assertEquals(testText, text.getText()); } @Test - public void retrieveCorrectTextStyleItalic() { + void retrieveCorrectTextStyleItalic() { Text text = TooltipTextUtil.createText(testText, TooltipTextUtil.TextType.ITALIC); String textStyle = "tooltip-text-italic"; @@ -55,21 +55,21 @@ public void retrieveCorrectTextStyleItalic() { } @Test - public void stringRemainsTheSameAfterTransformationToItalic() { + void stringRemainsTheSameAfterTransformationToItalic() { Text text = TooltipTextUtil.createText(testText, TooltipTextUtil.TextType.ITALIC); assertEquals(testText, text.getText()); } @Test - public void createTextMonospaced() { + void createTextMonospaced() { Text text = TooltipTextUtil.createText(testText, TooltipTextUtil.TextType.MONOSPACED); assertEquals("tooltip-text-monospaced", text.getStyleClass().toString()); assertEquals(testText, text.getText()); } @Test - public void retrieveCorrectStyleMonospaced() { + void retrieveCorrectStyleMonospaced() { Text text = TooltipTextUtil.createText(testText, TooltipTextUtil.TextType.MONOSPACED); String textStyle = "tooltip-text-monospaced"; @@ -77,14 +77,14 @@ public void retrieveCorrectStyleMonospaced() { } @Test - public void stringRemainsTheSameAfterTransformationToMonospaced() { + void stringRemainsTheSameAfterTransformationToMonospaced() { Text text = TooltipTextUtil.createText(testText, TooltipTextUtil.TextType.MONOSPACED); assertEquals(testText, text.getText()); } @Test - public void transformTextToHtmlStringBold() { + void transformTextToHtmlStringBold() { Text text = TooltipTextUtil.createText(testText, TooltipTextUtil.TextType.BOLD); String htmlString = TooltipTextUtil.textToHtmlString(text); String expectedString = "" + testText + ""; @@ -93,7 +93,7 @@ public void transformTextToHtmlStringBold() { } @Test - public void transformTextToHtmlStringItalic() { + void transformTextToHtmlStringItalic() { Text text = TooltipTextUtil.createText(testText, TooltipTextUtil.TextType.ITALIC); String htmlString = TooltipTextUtil.textToHtmlString(text); String expectedString = "" + testText + ""; @@ -102,7 +102,7 @@ public void transformTextToHtmlStringItalic() { } @Test - public void transformTextToHtmlStringMonospaced() { + void transformTextToHtmlStringMonospaced() { Text text = TooltipTextUtil.createText(testText, TooltipTextUtil.TextType.MONOSPACED); String htmlString = TooltipTextUtil.textToHtmlString(text); String expectedString = "" + testText + ""; @@ -111,7 +111,7 @@ public void transformTextToHtmlStringMonospaced() { } @Test - public void transformTextToHtmlStringMonospacedBold() { + void transformTextToHtmlStringMonospacedBold() { Text text = TooltipTextUtil.createText(testText, TooltipTextUtil.TextType.MONOSPACED); text.getStyleClass().add("tooltip-text-bold"); String htmlString = TooltipTextUtil.textToHtmlString(text); @@ -121,7 +121,7 @@ public void transformTextToHtmlStringMonospacedBold() { } @Test - public void transformTextToHtmlStringWithLinebreaks() { + void transformTextToHtmlStringWithLinebreaks() { String testText = "this\nis a\ntest text"; Text text = TooltipTextUtil.createText(testText, TooltipTextUtil.TextType.NORMAL); String htmlString = TooltipTextUtil.textToHtmlString(text); @@ -131,7 +131,7 @@ public void transformTextToHtmlStringWithLinebreaks() { } @Test - public void formatToTextsNoReplacements() { + void formatToTextsNoReplacements() { List expectedTextList = new ArrayList<>(); expectedTextList.add(TooltipTextUtil.createText("This search contains entries in which any field contains the regular expression ")); String test = "This search contains entries in which any field contains the regular expression "; @@ -141,7 +141,7 @@ public void formatToTextsNoReplacements() { } @Test - public void formatToTextsEnd() { + void formatToTextsEnd() { List expectedTextList = new ArrayList<>(); expectedTextList.add(TooltipTextUtil.createText("This search contains entries in which any field contains the regular expression ")); expectedTextList.add(TooltipTextUtil.createText("replacing text", TooltipTextUtil.TextType.BOLD)); @@ -152,7 +152,7 @@ public void formatToTextsEnd() { } @Test - public void formatToTextsBegin() { + void formatToTextsBegin() { List expectedTextList = new ArrayList<>(); expectedTextList.add(TooltipTextUtil.createText("replacing text", TooltipTextUtil.TextType.BOLD)); expectedTextList.add(TooltipTextUtil.createText(" This search contains entries in which any field contains the regular expression")); @@ -163,7 +163,7 @@ public void formatToTextsBegin() { } @Test - public void formatToTextsMiddle() { + void formatToTextsMiddle() { List expectedTextList = new ArrayList<>(); expectedTextList.add(TooltipTextUtil.createText("This search contains entries ")); expectedTextList.add(TooltipTextUtil.createText("replacing text", TooltipTextUtil.TextType.BOLD)); diff --git a/src/test/java/org/jabref/gui/util/comparator/NumericFieldComparatorTest.java b/src/test/java/org/jabref/gui/util/comparator/NumericFieldComparatorTest.java index 4f377051201..9fb3048f302 100644 --- a/src/test/java/org/jabref/gui/util/comparator/NumericFieldComparatorTest.java +++ b/src/test/java/org/jabref/gui/util/comparator/NumericFieldComparatorTest.java @@ -4,62 +4,62 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class NumericFieldComparatorTest { +class NumericFieldComparatorTest { private final NumericFieldComparator comparator = new NumericFieldComparator(); @Test - public void compareTwoNumericInputs() { + void compareTwoNumericInputs() { assertEquals(2, comparator.compare("4", "2")); } @Test - public void compareTwoNullInputs() { + void compareTwoNullInputs() { assertEquals(0, comparator.compare(null, null)); } @Test - public void compareTwoInputsWithFirstNull() { + void compareTwoInputsWithFirstNull() { assertEquals(-1, comparator.compare(null, "2")); } @Test - public void compareTwoInputsWithSecondNull() { + void compareTwoInputsWithSecondNull() { assertEquals(1, comparator.compare("4", null)); } @Test - public void compareTwoNotNumericInputs() { + void compareTwoNotNumericInputs() { assertEquals(-32, comparator.compare("HELLO", "hello")); } @Test - public void compareStringWithInteger() { + void compareStringWithInteger() { assertEquals(-1, comparator.compare("hi", "2")); } @Test - public void compareIntegerWithString() { + void compareIntegerWithString() { assertEquals(1, comparator.compare("4", "hi")); } @Test - public void compareNegativeInteger() { + void compareNegativeInteger() { assertEquals(1, comparator.compare("-4", "-5")); } @Test - public void compareWithMinusString() { + void compareWithMinusString() { assertEquals(-1, comparator.compare("-", "-5")); } @Test - public void compareWithPlusString() { + void compareWithPlusString() { assertEquals(-1, comparator.compare("+", "-5")); } @Test - public void compareWordWithMinus() { + void compareWordWithMinus() { assertEquals(-1, comparator.compare("-abc", "-5")); } diff --git a/src/test/java/org/jabref/gui/util/comparator/RankingFieldComparatorTest.java b/src/test/java/org/jabref/gui/util/comparator/RankingFieldComparatorTest.java index 2ac2d37f539..b6fcbc268fa 100644 --- a/src/test/java/org/jabref/gui/util/comparator/RankingFieldComparatorTest.java +++ b/src/test/java/org/jabref/gui/util/comparator/RankingFieldComparatorTest.java @@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class RankingFieldComparatorTest { +class RankingFieldComparatorTest { private RankingFieldComparator comparator; private final SpecialFieldValue value1 = SpecialFieldValue.RANK_1; @@ -21,39 +21,39 @@ public class RankingFieldComparatorTest { private final Optional rank3 = Optional.of(new SpecialFieldValueViewModel(value3)); @BeforeEach - public void setUp() { + void setUp() { comparator = new RankingFieldComparator(); } @Test - public void compareHigherRankFirst() { + void compareHigherRankFirst() { assertEquals(-2, comparator.compare(rank3, rank1)); assertEquals(-1, comparator.compare(rank2, rank1)); } @Test - public void compareLowerRankFirst() { + void compareLowerRankFirst() { assertEquals(1, comparator.compare(rank1, rank2)); assertEquals(2, comparator.compare(rank1, rank3)); } @Test - public void compareSameRank() { + void compareSameRank() { assertEquals(0, comparator.compare(rank1, rank1)); } @Test - public void compareTwoEmptyInputs() { + void compareTwoEmptyInputs() { assertEquals(0, comparator.compare(Optional.empty(), Optional.empty())); } @Test - public void compareTwoInputsWithFirstEmpty() { + void compareTwoInputsWithFirstEmpty() { assertEquals(1, comparator.compare(Optional.empty(), rank1)); } @Test - public void compareTwoInputsWithSecondEmpty() { + void compareTwoInputsWithSecondEmpty() { assertEquals(-1, comparator.compare(rank1, Optional.empty())); } } diff --git a/src/test/java/org/jabref/gui/util/comparator/SpecialFieldComparatorTest.java b/src/test/java/org/jabref/gui/util/comparator/SpecialFieldComparatorTest.java index b62731b7b38..1a7e23497ce 100644 --- a/src/test/java/org/jabref/gui/util/comparator/SpecialFieldComparatorTest.java +++ b/src/test/java/org/jabref/gui/util/comparator/SpecialFieldComparatorTest.java @@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class SpecialFieldComparatorTest { +class SpecialFieldComparatorTest { private SpecialFieldComparator comparator; private final SpecialFieldValue value1 = SpecialFieldValue.PRIORITY_HIGH; @@ -21,42 +21,42 @@ public class SpecialFieldComparatorTest { private final Optional read = Optional.of(new SpecialFieldValueViewModel(value3)); @BeforeEach - public void setUp() { + void setUp() { comparator = new SpecialFieldComparator(); } @Test - public void compareHigherPriorityFirst() { + void compareHigherPriorityFirst() { assertEquals(-2, comparator.compare(prio1, prio3)); } @Test - public void compareLowerPriorityFirst() { + void compareLowerPriorityFirst() { assertEquals(2, comparator.compare(prio3, prio1)); } @Test - public void compareSamePriority() { + void compareSamePriority() { assertEquals(0, comparator.compare(prio1, prio1)); } @Test - public void compareUnrelatedFields() { + void compareUnrelatedFields() { assertEquals(-11, comparator.compare(prio1, read)); } @Test - public void compareTwoEmptyInputs() { + void compareTwoEmptyInputs() { assertEquals(0, comparator.compare(Optional.empty(), Optional.empty())); } @Test - public void compareTwoInputsWithFirstEmpty() { + void compareTwoInputsWithFirstEmpty() { assertEquals(1, comparator.compare(Optional.empty(), prio1)); } @Test - public void compareTwoInputsWithSecondEmpty() { + void compareTwoInputsWithSecondEmpty() { assertEquals(-1, comparator.compare(prio1, Optional.empty())); } } diff --git a/src/test/java/org/jabref/logic/TypedBibEntryTest.java b/src/test/java/org/jabref/logic/TypedBibEntryTest.java index 18ec51769db..403ffe3ab49 100644 --- a/src/test/java/org/jabref/logic/TypedBibEntryTest.java +++ b/src/test/java/org/jabref/logic/TypedBibEntryTest.java @@ -15,7 +15,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class TypedBibEntryTest { +class TypedBibEntryTest { private BibEntryTypesManager entryTypesManager; @BeforeEach @@ -24,7 +24,7 @@ void setUp() { } @Test - public void hasAllRequiredFieldsFail() { + void hasAllRequiredFieldsFail() { BibEntry e = new BibEntry(StandardEntryType.Article); e.setField(StandardField.AUTHOR, "abc"); e.setField(StandardField.TITLE, "abc"); @@ -35,7 +35,7 @@ public void hasAllRequiredFieldsFail() { } @Test - public void hasAllRequiredFields() { + void hasAllRequiredFields() { BibEntry e = new BibEntry(StandardEntryType.Article); e.setField(StandardField.AUTHOR, "abc"); e.setField(StandardField.TITLE, "abc"); @@ -47,7 +47,7 @@ public void hasAllRequiredFields() { } @Test - public void hasAllRequiredFieldsForUnknownTypeReturnsTrue() { + void hasAllRequiredFieldsForUnknownTypeReturnsTrue() { BibEntry e = new BibEntry(new UnknownEntryType("articlllleeeee")); TypedBibEntry typedEntry = new TypedBibEntry(e, BibDatabaseMode.BIBTEX); @@ -55,7 +55,7 @@ public void hasAllRequiredFieldsForUnknownTypeReturnsTrue() { } @Test - public void getTypeForDisplayReturnsTypeName() { + void getTypeForDisplayReturnsTypeName() { BibEntry e = new BibEntry(StandardEntryType.InProceedings); TypedBibEntry typedEntry = new TypedBibEntry(e, BibDatabaseMode.BIBTEX); @@ -63,7 +63,7 @@ public void getTypeForDisplayReturnsTypeName() { } @Test - public void getTypeForDisplayForUnknownTypeCapitalizeFirstLetter() { + void getTypeForDisplayForUnknownTypeCapitalizeFirstLetter() { BibEntry e = new BibEntry(new UnknownEntryType("articlllleeeee")); TypedBibEntry typedEntry = new TypedBibEntry(e, BibDatabaseMode.BIBTEX); diff --git a/src/test/java/org/jabref/logic/bibtex/FileFieldWriterTest.java b/src/test/java/org/jabref/logic/bibtex/FileFieldWriterTest.java index 1d8754478d3..ff086d9b661 100644 --- a/src/test/java/org/jabref/logic/bibtex/FileFieldWriterTest.java +++ b/src/test/java/org/jabref/logic/bibtex/FileFieldWriterTest.java @@ -13,25 +13,25 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class FileFieldWriterTest { +class FileFieldWriterTest { @Test - public void quoteStandard() { + void quoteStandard() { assertEquals("a", FileFieldWriter.quote("a")); } @Test - public void quoteAllCharacters() { + void quoteAllCharacters() { assertEquals("a\\:\\;\\\\", FileFieldWriter.quote("a:;\\")); } @Test - public void quoteEmpty() { + void quoteEmpty() { assertEquals("", FileFieldWriter.quote("")); } @Test - public void quoteNull() { + void quoteNull() { assertNull(FileFieldWriter.quote(null)); } @@ -46,12 +46,12 @@ private static Stream getEncodingTestData() { @ParameterizedTest @MethodSource("getEncodingTestData") - public void encodeStringArray(String expected, String[][] values) { + void encodeStringArray(String expected, String[][] values) { assertEquals(expected, FileFieldWriter.encodeStringArray(values)); } @Test - public void fileFieldWriterGetStringRepresentation() { + void fileFieldWriterGetStringRepresentation() { LinkedFile file = new LinkedFile("test", Path.of("X:\\Users\\abc.pdf"), "PDF"); assertEquals("test:X\\:/Users/abc.pdf:PDF", FileFieldWriter.getStringRepresentation(file)); } diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/BibStringDiffTest.java b/src/test/java/org/jabref/logic/bibtex/comparator/BibStringDiffTest.java index d1b4d5986b8..f31bc64512f 100644 --- a/src/test/java/org/jabref/logic/bibtex/comparator/BibStringDiffTest.java +++ b/src/test/java/org/jabref/logic/bibtex/comparator/BibStringDiffTest.java @@ -14,7 +14,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class BibStringDiffTest { +class BibStringDiffTest { private final BibDatabase originalDataBase = mock(BibDatabase.class); private final BibDatabase newDataBase = mock(BibDatabase.class); diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/BibtexStringComparatorTest.java b/src/test/java/org/jabref/logic/bibtex/comparator/BibtexStringComparatorTest.java index e4bd1f9c5fe..9edb4229ff6 100644 --- a/src/test/java/org/jabref/logic/bibtex/comparator/BibtexStringComparatorTest.java +++ b/src/test/java/org/jabref/logic/bibtex/comparator/BibtexStringComparatorTest.java @@ -7,13 +7,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -public class BibtexStringComparatorTest { +class BibtexStringComparatorTest { private final BibtexStringComparator bsc1 = new BibtexStringComparator(false); private final BibtexStringComparator bsc2 = new BibtexStringComparator(true); @Test - public void test() { + void test() { BibtexString bs1 = new BibtexString("VLSI", "Very Large Scale Integration"); BibtexString bs2 = new BibtexString("DSP", "Digital Signal Processing"); BibtexString bs3 = new BibtexString("DSP", "Digital Signal Processing"); diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/CrossRefEntryComparatorTest.java b/src/test/java/org/jabref/logic/bibtex/comparator/CrossRefEntryComparatorTest.java index 5bf856aeeb7..70a040459f0 100644 --- a/src/test/java/org/jabref/logic/bibtex/comparator/CrossRefEntryComparatorTest.java +++ b/src/test/java/org/jabref/logic/bibtex/comparator/CrossRefEntryComparatorTest.java @@ -9,28 +9,28 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class CrossRefEntryComparatorTest { +class CrossRefEntryComparatorTest { private CrossRefEntryComparator comparator; @BeforeEach - public void setUp() { + void setUp() { comparator = new CrossRefEntryComparator(); } @AfterEach - public void tearDown() { + void tearDown() { comparator = null; } @Test - public void isEqualForEntriesWithoutCrossRef() { + void isEqualForEntriesWithoutCrossRef() { BibEntry e1 = new BibEntry(); BibEntry e2 = new BibEntry(); assertEquals(0, comparator.compare(e1, e2)); } @Test - public void isEqualForEntriesWithCrossRef() { + void isEqualForEntriesWithCrossRef() { BibEntry e1 = new BibEntry(); e1.setField(StandardField.CROSSREF, "1"); BibEntry e2 = new BibEntry(); @@ -39,7 +39,7 @@ public void isEqualForEntriesWithCrossRef() { } @Test - public void isGreaterForEntriesWithoutCrossRef() { + void isGreaterForEntriesWithoutCrossRef() { BibEntry e1 = new BibEntry(); BibEntry e2 = new BibEntry(); e2.setField(StandardField.CROSSREF, "1"); @@ -47,7 +47,7 @@ public void isGreaterForEntriesWithoutCrossRef() { } @Test - public void isSmallerForEntriesWithCrossRef() { + void isSmallerForEntriesWithCrossRef() { BibEntry e1 = new BibEntry(); e1.setField(StandardField.CROSSREF, "1"); BibEntry e2 = new BibEntry(); diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/FieldComparatorTest.java b/src/test/java/org/jabref/logic/bibtex/comparator/FieldComparatorTest.java index 447f038fa74..bbe85f3e60a 100644 --- a/src/test/java/org/jabref/logic/bibtex/comparator/FieldComparatorTest.java +++ b/src/test/java/org/jabref/logic/bibtex/comparator/FieldComparatorTest.java @@ -15,9 +15,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class FieldComparatorTest { +class FieldComparatorTest { @Test - public void compareMonthFieldIdentity() throws Exception { + void compareMonthFieldIdentity() throws Exception { FieldComparator comparator = new FieldComparator(StandardField.MONTH); BibEntry equal = new BibEntry() .withField(StandardField.MONTH, "1"); @@ -26,7 +26,7 @@ public void compareMonthFieldIdentity() throws Exception { } @Test - public void compareMonthFieldEquality() throws Exception { + void compareMonthFieldEquality() throws Exception { FieldComparator comparator = new FieldComparator(StandardField.MONTH); BibEntry equal = new BibEntry() .withField(StandardField.MONTH, "1"); @@ -37,7 +37,7 @@ public void compareMonthFieldEquality() throws Exception { } @Test - public void compareMonthFieldBiggerAscending() throws Exception { + void compareMonthFieldBiggerAscending() throws Exception { FieldComparator comparator = new FieldComparator(StandardField.MONTH); BibEntry smaller = new BibEntry() .withField(StandardField.MONTH, "jan"); @@ -48,7 +48,7 @@ public void compareMonthFieldBiggerAscending() throws Exception { } @Test - public void compareMonthFieldBiggerDescending() throws Exception { + void compareMonthFieldBiggerDescending() throws Exception { FieldComparator comparator = new FieldComparator(new OrFields(StandardField.MONTH), true); BibEntry smaller = new BibEntry() .withField(StandardField.MONTH, "feb"); @@ -59,7 +59,7 @@ public void compareMonthFieldBiggerDescending() throws Exception { } @Test - public void compareYearFieldIdentity() throws Exception { + void compareYearFieldIdentity() throws Exception { FieldComparator comparator = new FieldComparator(StandardField.YEAR); BibEntry equal = new BibEntry() .withField(StandardField.YEAR, "2016"); @@ -68,7 +68,7 @@ public void compareYearFieldIdentity() throws Exception { } @Test - public void compareYearFieldEquality() throws Exception { + void compareYearFieldEquality() throws Exception { FieldComparator comparator = new FieldComparator(StandardField.YEAR); BibEntry equal = new BibEntry() .withField(StandardField.YEAR, "2016"); @@ -79,7 +79,7 @@ public void compareYearFieldEquality() throws Exception { } @Test - public void compareYearFieldBiggerAscending() throws Exception { + void compareYearFieldBiggerAscending() throws Exception { FieldComparator comparator = new FieldComparator(StandardField.YEAR); BibEntry smaller = new BibEntry() .withField(StandardField.YEAR, "2000"); @@ -90,7 +90,7 @@ public void compareYearFieldBiggerAscending() throws Exception { } @Test - public void compareYearFieldBiggerDescending() throws Exception { + void compareYearFieldBiggerDescending() throws Exception { FieldComparator comparator = new FieldComparator(new OrFields(StandardField.YEAR), true); BibEntry smaller = new BibEntry() .withField(StandardField.YEAR, "2016"); @@ -101,7 +101,7 @@ public void compareYearFieldBiggerDescending() throws Exception { } @Test - public void compareTypeFieldIdentity() throws Exception { + void compareTypeFieldIdentity() throws Exception { FieldComparator comparator = new FieldComparator(InternalField.TYPE_HEADER); BibEntry equal = new BibEntry(StandardEntryType.Article); @@ -109,7 +109,7 @@ public void compareTypeFieldIdentity() throws Exception { } @Test - public void compareTypeFieldEquality() throws Exception { + void compareTypeFieldEquality() throws Exception { FieldComparator comparator = new FieldComparator(InternalField.TYPE_HEADER); BibEntry equal = new BibEntry(StandardEntryType.Article); equal.setId("1"); @@ -120,7 +120,7 @@ public void compareTypeFieldEquality() throws Exception { } @Test - public void compareTypeFieldBiggerAscending() throws Exception { + void compareTypeFieldBiggerAscending() throws Exception { FieldComparator comparator = new FieldComparator(InternalField.TYPE_HEADER); BibEntry smaller = new BibEntry(StandardEntryType.Article); BibEntry bigger = new BibEntry(StandardEntryType.Book); @@ -129,7 +129,7 @@ public void compareTypeFieldBiggerAscending() throws Exception { } @Test - public void compareTypeFieldBiggerDescending() throws Exception { + void compareTypeFieldBiggerDescending() throws Exception { FieldComparator comparator = new FieldComparator(new OrFields(InternalField.TYPE_HEADER), true); BibEntry bigger = new BibEntry(StandardEntryType.Article); BibEntry smaller = new BibEntry(StandardEntryType.Book); @@ -138,7 +138,7 @@ public void compareTypeFieldBiggerDescending() throws Exception { } @Test - public void compareStringFieldsIdentity() throws Exception { + void compareStringFieldsIdentity() throws Exception { FieldComparator comparator = new FieldComparator(StandardField.TITLE); BibEntry equal = new BibEntry() .withField(StandardField.TITLE, "title"); @@ -147,7 +147,7 @@ public void compareStringFieldsIdentity() throws Exception { } @Test - public void compareStringFieldsEquality() throws Exception { + void compareStringFieldsEquality() throws Exception { FieldComparator comparator = new FieldComparator(StandardField.TITLE); BibEntry equal = new BibEntry() .withField(StandardField.TITLE, "title"); @@ -158,7 +158,7 @@ public void compareStringFieldsEquality() throws Exception { } @Test - public void compareStringFieldsBiggerAscending() throws Exception { + void compareStringFieldsBiggerAscending() throws Exception { FieldComparator comparator = new FieldComparator(StandardField.TITLE); BibEntry bigger = new BibEntry() .withField(StandardField.TITLE, "b"); @@ -169,7 +169,7 @@ public void compareStringFieldsBiggerAscending() throws Exception { } @Test - public void compareStringFieldsBiggerDescending() throws Exception { + void compareStringFieldsBiggerDescending() throws Exception { FieldComparator comparator = new FieldComparator(new OrFields(StandardField.TITLE), true); BibEntry bigger = new BibEntry() .withField(StandardField.TITLE, "a"); @@ -180,7 +180,7 @@ public void compareStringFieldsBiggerDescending() throws Exception { } @Test - public void compareNumericFieldsBiggerDescending() throws Exception { + void compareNumericFieldsBiggerDescending() throws Exception { FieldComparator comparator = new FieldComparator(new OrFields(StandardField.PMID), true); BibEntry smaller = new BibEntry() .withField(StandardField.PMID, "234567"); @@ -191,7 +191,7 @@ public void compareNumericFieldsBiggerDescending() throws Exception { } @Test - public void compareParsableWithNonParsableNumericFieldDescending() throws Exception { + void compareParsableWithNonParsableNumericFieldDescending() throws Exception { FieldComparator comparator = new FieldComparator(new OrFields(StandardField.PMID), true); BibEntry parsable = new BibEntry() .withField(StandardField.PMID, "123456"); @@ -203,7 +203,7 @@ public void compareParsableWithNonParsableNumericFieldDescending() throws Except @ParameterizedTest @MethodSource - public void compareNumericalValues(int comparisonResult, String id1, String id2, String message) { + void compareNumericalValues(int comparisonResult, String id1, String id2, String message) { FieldComparator comparator = new FieldComparator(StandardField.PMID); BibEntry entry1 = new BibEntry() .withField(StandardField.PMID, id1); @@ -226,7 +226,7 @@ private static Stream compareNumericalValues() { @ParameterizedTest @MethodSource - public void nullTests(int comparisonResult, String firstValue, String secondValue) { + void nullTests(int comparisonResult, String firstValue, String secondValue) { FieldComparator comparator = new FieldComparator(StandardField.TITLE); BibEntry entry1 = new BibEntry(); @@ -252,7 +252,7 @@ private static Stream nullTests() { } @Test - public void compareAuthorField() throws Exception { + void compareAuthorField() throws Exception { FieldComparator comparator = new FieldComparator(StandardField.AUTHOR); BibEntry bigger = new BibEntry() .withField(StandardField.AUTHOR, "Freund, Lucas"); diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/GroupDiffTest.java b/src/test/java/org/jabref/logic/bibtex/comparator/GroupDiffTest.java index 9fded7c7802..1153b498ced 100644 --- a/src/test/java/org/jabref/logic/bibtex/comparator/GroupDiffTest.java +++ b/src/test/java/org/jabref/logic/bibtex/comparator/GroupDiffTest.java @@ -15,7 +15,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class GroupDiffTest { +class GroupDiffTest { private final MetaData originalMetaData = mock(MetaData.class); private final MetaData newMetaData = mock(MetaData.class); diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/MetaDataDiffTest.java b/src/test/java/org/jabref/logic/bibtex/comparator/MetaDataDiffTest.java index cd664323c96..447c227f705 100644 --- a/src/test/java/org/jabref/logic/bibtex/comparator/MetaDataDiffTest.java +++ b/src/test/java/org/jabref/logic/bibtex/comparator/MetaDataDiffTest.java @@ -16,9 +16,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; -public class MetaDataDiffTest { +class MetaDataDiffTest { @Test - public void compareWithSameContentSelectorsDoesNotReportAnyDiffs() { + void compareWithSameContentSelectorsDoesNotReportAnyDiffs() { MetaData one = new MetaData(); one.addContentSelector(new ContentSelector(StandardField.AUTHOR, "first", "second")); MetaData two = new MetaData(); @@ -28,7 +28,7 @@ public void compareWithSameContentSelectorsDoesNotReportAnyDiffs() { } @Test - public void defaultSettingEqualsEmptySetting() { + void defaultSettingEqualsEmptySetting() { MetaData one = new MetaData(); // Field list is from {@link org.jabref.model.metadata.ContentSelectors.DEFAULT_FIELD_NAMES} one.addContentSelector(new ContentSelector(StandardField.AUTHOR, List.of())); @@ -41,7 +41,7 @@ public void defaultSettingEqualsEmptySetting() { } @Test - public void allEntriesGroupIgnored() { + void allEntriesGroupIgnored() { MetaData one = new MetaData(); one.setGroups(GroupTreeNode.fromGroup(DefaultGroupsFactory.getAllEntriesGroup())); MetaData two = new MetaData(); @@ -50,7 +50,7 @@ public void allEntriesGroupIgnored() { } @Test - public void allEntriesGroupContainingGroupNotIgnored() { + void allEntriesGroupContainingGroupNotIgnored() { MetaData one = new MetaData(); GroupTreeNode root = GroupTreeNode.fromGroup(DefaultGroupsFactory.getAllEntriesGroup()); root.addSubgroup(new ExplicitGroup("ExplicitA", GroupHierarchyType.INCLUDING, ',')); diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/PreambleDiffTest.java b/src/test/java/org/jabref/logic/bibtex/comparator/PreambleDiffTest.java index b868a4e26bf..f8007dd96b3 100644 --- a/src/test/java/org/jabref/logic/bibtex/comparator/PreambleDiffTest.java +++ b/src/test/java/org/jabref/logic/bibtex/comparator/PreambleDiffTest.java @@ -12,7 +12,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class PreambleDiffTest { +class PreambleDiffTest { private final BibDatabaseContext originalDataBaseContext = mock(BibDatabaseContext.class); private final BibDatabaseContext newDataBaseContext = mock(BibDatabaseContext.class); diff --git a/src/test/java/org/jabref/logic/bst/BstFunctionsTest.java b/src/test/java/org/jabref/logic/bst/BstFunctionsTest.java index a829e33c0b8..b8a1cdb6ac2 100644 --- a/src/test/java/org/jabref/logic/bst/BstFunctionsTest.java +++ b/src/test/java/org/jabref/logic/bst/BstFunctionsTest.java @@ -37,7 +37,7 @@ */ class BstFunctionsTest { @Test - public void compareFunctions() throws RecognitionException { + void compareFunctions() throws RecognitionException { BstVM vm = new BstVM(""" FUNCTION { test.compare } { #5 #5 = % TRUE @@ -70,7 +70,7 @@ public void compareFunctions() throws RecognitionException { } @Test - public void arithmeticFunctions() throws RecognitionException { + void arithmeticFunctions() throws RecognitionException { BstVM vm = new BstVM(""" FUNCTION { test } { #1 #1 + % 2 @@ -87,7 +87,7 @@ public void arithmeticFunctions() throws RecognitionException { } @Test - public void arithmeticFunctionTypeMismatch() throws RecognitionException { + void arithmeticFunctionTypeMismatch() throws RecognitionException { BstVM vm = new BstVM(""" FUNCTION { test } { #1 "HELLO" + % Should throw exception @@ -99,7 +99,7 @@ public void arithmeticFunctionTypeMismatch() throws RecognitionException { } @Test - public void stringOperations() throws RecognitionException { + void stringOperations() throws RecognitionException { // Test for concat (*) and add.period BstVM vm = new BstVM(""" FUNCTION { test } { @@ -131,7 +131,7 @@ public void stringOperations() throws RecognitionException { } @Test - public void missing() throws RecognitionException { + void missing() throws RecognitionException { BstVM vm = new BstVM(""" ENTRY { title } { } { } FUNCTION { presort } { cite$ 'sort.key$ := } @@ -157,7 +157,7 @@ public void missing() throws RecognitionException { } @Test - public void numNames() throws RecognitionException { + void numNames() throws RecognitionException { BstVM vm = new BstVM(""" FUNCTION { test } { "Johnny Foo { and } Mary Bar" num.names$ @@ -174,7 +174,7 @@ public void numNames() throws RecognitionException { } @Test - public void substring() throws RecognitionException { + void substring() throws RecognitionException { BstVM vm = new BstVM(""" FUNCTION { test } { "123456789" #2 #1 substring$ % 2 @@ -227,7 +227,7 @@ void substringPlain(String expected, String full, Integer start, Integer length) } @Test - public void empty() throws RecognitionException { + void empty() throws RecognitionException { BstVM vm = new BstVM(""" ENTRY { title } { } { } READ @@ -254,7 +254,7 @@ public void empty() throws RecognitionException { } @Test - public void formatNameStatic() throws RecognitionException { + void formatNameStatic() throws RecognitionException { BstVM vm = new BstVM(""" FUNCTION { format }{ "Charles Louis Xavier Joseph de la Vall{\\'e}e Poussin" #1 "{vv~}{ll}{, jj}{, f}?" format.name$ } EXECUTE { format } @@ -268,7 +268,7 @@ public void formatNameStatic() throws RecognitionException { } @Test - public void formatNameInEntries() throws RecognitionException { + void formatNameInEntries() throws RecognitionException { BstVM vm = new BstVM(""" ENTRY { author } { } { } FUNCTION { presort } { cite$ 'sort.key$ := } @@ -292,7 +292,7 @@ public void formatNameInEntries() throws RecognitionException { } @Test - public void changeCase() throws RecognitionException { + void changeCase() throws RecognitionException { BstVM vm = new BstVM(""" STRINGS { title } READ @@ -322,7 +322,7 @@ public void changeCase() throws RecognitionException { } @Test - public void textLength() throws RecognitionException { + void textLength() throws RecognitionException { BstVM vm = new BstVM(""" FUNCTION { test } { "hello world" text.length$ % 11 @@ -351,7 +351,7 @@ public void textLength() throws RecognitionException { } @Test - public void intToStr() throws RecognitionException { + void intToStr() throws RecognitionException { BstVM vm = new BstVM(""" FUNCTION { test } { #3 int.to.str$ #9999 int.to.str$ } EXECUTE { test } @@ -365,7 +365,7 @@ public void intToStr() throws RecognitionException { } @Test - public void chrToInt() throws RecognitionException { + void chrToInt() throws RecognitionException { BstVM vm = new BstVM(""" FUNCTION { test } { "H" chr.to.int$ } EXECUTE { test } @@ -378,7 +378,7 @@ public void chrToInt() throws RecognitionException { } @Test - public void chrToIntIntToChr() throws RecognitionException { + void chrToIntIntToChr() throws RecognitionException { BstVM vm = new BstVM(""" FUNCTION { test } { "H" chr.to.int$ int.to.chr$ } EXECUTE {test} @@ -391,7 +391,7 @@ public void chrToIntIntToChr() throws RecognitionException { } @Test - public void type() throws RecognitionException { + void type() throws RecognitionException { BstVM vm = new BstVM(""" ENTRY { } { } { } FUNCTION { presort } { cite$ 'sort.key$ := } @@ -416,7 +416,7 @@ public void type() throws RecognitionException { } @Test - public void callType() throws RecognitionException { + void callType() throws RecognitionException { BstVM vm = new BstVM(""" ENTRY { title } { } { } FUNCTION { presort } { cite$ 'sort.key$ := } @@ -443,7 +443,7 @@ public void callType() throws RecognitionException { } @Test - public void swap() throws RecognitionException { + void swap() throws RecognitionException { BstVM vm = new BstVM(""" FUNCTION { a } { #3 "Hallo" swap$ } EXECUTE { a } @@ -518,7 +518,7 @@ void simpleWhile() { } @Test - public void nestedControlFunctions() throws RecognitionException { + void nestedControlFunctions() throws RecognitionException { BstVM vm = new BstVM(""" STRINGS { t } FUNCTION { not } { { #0 } { #1 } if$ } @@ -563,7 +563,7 @@ public void nestedControlFunctions() throws RecognitionException { } @Test - public void logic() throws RecognitionException { + void logic() throws RecognitionException { BstVM vm = new BstVM(""" FUNCTION { not } { { #0 } { #1 } if$ } FUNCTION { and } { 'skip$ { pop$ #0 } if$ } @@ -603,7 +603,7 @@ public void logic() throws RecognitionException { */ @Test - public void width() throws RecognitionException { + void width() throws RecognitionException { BstVM vm = new BstVM(""" ENTRY { address author title type } { } { label } STRINGS { longest.label } @@ -645,7 +645,7 @@ public void width() throws RecognitionException { } @Test - public void duplicateEmptyPopSwapIf() throws RecognitionException { + void duplicateEmptyPopSwapIf() throws RecognitionException { BstVM vm = new BstVM(""" FUNCTION { emphasize } { duplicate$ empty$ @@ -668,7 +668,7 @@ public void duplicateEmptyPopSwapIf() throws RecognitionException { } @Test - public void preambleWriteNewlineQuote() { + void preambleWriteNewlineQuote() { BstVM vm = new BstVM(""" FUNCTION { test } { preamble$ diff --git a/src/test/java/org/jabref/logic/bst/BstPreviewLayoutTest.java b/src/test/java/org/jabref/logic/bst/BstPreviewLayoutTest.java index f65b8f0f0a8..ccd2ff2bb79 100644 --- a/src/test/java/org/jabref/logic/bst/BstPreviewLayoutTest.java +++ b/src/test/java/org/jabref/logic/bst/BstPreviewLayoutTest.java @@ -18,7 +18,7 @@ class BstPreviewLayoutTest { private final BibDatabaseContext bibDatabaseContext = new BibDatabaseContext(); @Test - public void generatePreviewForSimpleEntryUsingAbbr() throws Exception { + void generatePreviewForSimpleEntryUsingAbbr() throws Exception { BstPreviewLayout bstPreviewLayout = new BstPreviewLayout(Path.of(BstPreviewLayoutTest.class.getResource("abbrv.bst").toURI())); BibEntry entry = new BibEntry().withField(StandardField.AUTHOR, "Oliver Kopp") .withField(StandardField.TITLE, "Thoughts on Development"); @@ -28,7 +28,7 @@ public void generatePreviewForSimpleEntryUsingAbbr() throws Exception { } @Test - public void monthMayIsCorrectlyRendered() throws Exception { + void monthMayIsCorrectlyRendered() throws Exception { BstPreviewLayout bstPreviewLayout = new BstPreviewLayout(Path.of(BstPreviewLayoutTest.class.getResource("abbrv.bst").toURI())); BibEntry entry = new BibEntry().withField(StandardField.AUTHOR, "Oliver Kopp") .withField(StandardField.TITLE, "Thoughts on Development") @@ -39,14 +39,14 @@ public void monthMayIsCorrectlyRendered() throws Exception { } @Test - public void generatePreviewForSliceTheoremPaperUsingAbbr() throws Exception { + void generatePreviewForSliceTheoremPaperUsingAbbr() throws Exception { BstPreviewLayout bstPreviewLayout = new BstPreviewLayout(Path.of(BstPreviewLayoutTest.class.getResource("abbrv.bst").toURI())); String preview = bstPreviewLayout.generatePreview(getSliceTheoremPaper(), bibDatabaseContext); assertEquals("T. Diez. Slice theorem for fréchet group actions and covariant symplectic field theory. May 2014.", preview); } @Test - public void generatePreviewForSliceTheoremPaperUsingIEEE() throws Exception { + void generatePreviewForSliceTheoremPaperUsingIEEE() throws Exception { BstPreviewLayout bstPreviewLayout = new BstPreviewLayout(Path.of(ClassLoader.getSystemResource("bst/IEEEtran.bst").toURI())); String preview = bstPreviewLayout.generatePreview(getSliceTheoremPaper(), bibDatabaseContext); assertEquals("T. Diez, \"Slice theorem for fréchet group actions and covariant symplectic field theory\" May 2014.", preview); diff --git a/src/test/java/org/jabref/logic/bst/BstVMTest.java b/src/test/java/org/jabref/logic/bst/BstVMTest.java index 95da0022ee1..e001be0a977 100644 --- a/src/test/java/org/jabref/logic/bst/BstVMTest.java +++ b/src/test/java/org/jabref/logic/bst/BstVMTest.java @@ -31,7 +31,7 @@ public static BibEntry defaultTestEntry() { } @Test - public void abbrv() throws RecognitionException, IOException { + void abbrv() throws RecognitionException, IOException { BstVM vm = new BstVM(Path.of("src/test/resources/org/jabref/logic/bst/abbrv.bst")); List testEntries = List.of(defaultTestEntry()); @@ -44,7 +44,7 @@ public void abbrv() throws RecognitionException, IOException { } @Test - public void ieeetran() throws RecognitionException, IOException { + void ieeetran() throws RecognitionException, IOException { BstVM vm = new BstVM(Path.of("src/main/resources/bst/IEEEtran.bst")); List testEntries = List.of(TestEntry.getTestEntry()); @@ -59,7 +59,7 @@ public void ieeetran() throws RecognitionException, IOException { } @Test - public void simple() throws RecognitionException { + void simple() throws RecognitionException { BstVM vm = new BstVM(""" ENTRY { address author title type } { } { label } INTEGERS { output.state before.all mid.sentence after.sentence after.block } @@ -84,7 +84,7 @@ public void simple() throws RecognitionException { } @Test - public void label() throws RecognitionException { + void label() throws RecognitionException { BstVM vm = new BstVM(""" ENTRY { title } {} { label } FUNCTION { test } { @@ -104,7 +104,7 @@ public void label() throws RecognitionException { } @Test - public void quote() throws RecognitionException { + void quote() throws RecognitionException { BstVM vm = new BstVM("FUNCTION { a }{ quote$ quote$ * } EXECUTE { a }"); vm.render(Collections.emptyList()); @@ -112,7 +112,7 @@ public void quote() throws RecognitionException { } @Test - public void buildIn() throws RecognitionException { + void buildIn() throws RecognitionException { BstVM vm = new BstVM("EXECUTE { global.max$ }"); vm.render(Collections.emptyList()); @@ -122,7 +122,7 @@ public void buildIn() throws RecognitionException { } @Test - public void variables() throws RecognitionException { + void variables() throws RecognitionException { BstVM vm = new BstVM(""" STRINGS { t } FUNCTION { not } { @@ -141,7 +141,7 @@ public void variables() throws RecognitionException { } @Test - public void hyphenatedName() throws RecognitionException, IOException { + void hyphenatedName() throws RecognitionException, IOException { BstVM vm = new BstVM(Path.of("src/test/resources/org/jabref/logic/bst/abbrv.bst")); List testEntries = List.of( new BibEntry(StandardEntryType.Article) diff --git a/src/test/java/org/jabref/logic/bst/BstVMVisitorTest.java b/src/test/java/org/jabref/logic/bst/BstVMVisitorTest.java index 7217d7d2497..c8c57f250db 100644 --- a/src/test/java/org/jabref/logic/bst/BstVMVisitorTest.java +++ b/src/test/java/org/jabref/logic/bst/BstVMVisitorTest.java @@ -21,7 +21,7 @@ class BstVMVisitorTest { @Test - public void visitStringsCommand() { + void visitStringsCommand() { BstVM vm = new BstVM("STRINGS { test.string1 test.string2 test.string3 }"); vm.render(Collections.emptyList()); @@ -36,7 +36,7 @@ public void visitStringsCommand() { } @Test - public void visitIntegersCommand() { + void visitIntegersCommand() { BstVM vm = new BstVM("INTEGERS { variable.a variable.b variable.c }"); vm.render(Collections.emptyList()); @@ -118,7 +118,7 @@ void visitReadCommand() { } @Test - public void visitExecuteCommand() throws RecognitionException { + void visitExecuteCommand() throws RecognitionException { BstVM vm = new BstVM(""" INTEGERS { variable.a } FUNCTION { init.state.consts } { #5 'variable.a := } @@ -131,7 +131,7 @@ public void visitExecuteCommand() throws RecognitionException { } @Test - public void visitIterateCommand() throws RecognitionException { + void visitIterateCommand() throws RecognitionException { BstVM vm = new BstVM(""" ENTRY { } { } { } FUNCTION { test } { cite$ } @@ -151,7 +151,7 @@ public void visitIterateCommand() throws RecognitionException { } @Test - public void visitReverseCommand() throws RecognitionException { + void visitReverseCommand() throws RecognitionException { BstVM vm = new BstVM(""" ENTRY { } { } { } FUNCTION { test } { cite$ } @@ -171,7 +171,7 @@ public void visitReverseCommand() throws RecognitionException { } @Test - public void visitSortCommand() throws RecognitionException { + void visitSortCommand() throws RecognitionException { BstVM vm = new BstVM(""" ENTRY { } { } { } FUNCTION { presort } { cite$ 'sort.key$ := } diff --git a/src/test/java/org/jabref/logic/bst/util/BstCaseChangersTest.java b/src/test/java/org/jabref/logic/bst/util/BstCaseChangersTest.java index 1265c86302a..2404c32a826 100644 --- a/src/test/java/org/jabref/logic/bst/util/BstCaseChangersTest.java +++ b/src/test/java/org/jabref/logic/bst/util/BstCaseChangersTest.java @@ -12,11 +12,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class BstCaseChangersTest { +class BstCaseChangersTest { @ParameterizedTest @MethodSource("provideStringsForTitleLowers") - public void changeCaseTitleLowers(String expected, String toBeFormatted) { + void changeCaseTitleLowers(String expected, String toBeFormatted) { assertEquals(expected, BstCaseChanger.changeCase(toBeFormatted, FormatMode.TITLE_LOWERS)); } @@ -58,7 +58,7 @@ private static Stream provideStringsForTitleLowers() { @ParameterizedTest @MethodSource("provideStringsForAllLowers") - public void changeCaseAllLowers(String expected, String toBeFormatted) { + void changeCaseAllLowers(String expected, String toBeFormatted) { assertEquals(expected, BstCaseChanger.changeCase(toBeFormatted, FormatMode.ALL_LOWERS)); } @@ -89,7 +89,7 @@ private static Stream provideStringsForAllLowers() { @ParameterizedTest @MethodSource("provideStringsForAllUppers") - public void changeCaseAllUppers(String expected, String toBeFormatted) { + void changeCaseAllUppers(String expected, String toBeFormatted) { assertEquals(expected, BstCaseChanger.changeCase(toBeFormatted, FormatMode.ALL_UPPERS)); } @@ -120,7 +120,7 @@ private static Stream provideStringsForAllUppers() { @ParameterizedTest @MethodSource("provideTitleCaseAllLowers") - public void titleCaseAllLowers(String expected, String toBeFormatted) { + void titleCaseAllLowers(String expected, String toBeFormatted) { assertEquals(expected, BstCaseChanger.changeCase(toBeFormatted, FormatMode.ALL_LOWERS)); } @@ -138,7 +138,7 @@ private static Stream provideTitleCaseAllLowers() { @Disabled @Test - public void titleCaseAllUppers() { + void titleCaseAllUppers() { /* the real test would look like as follows. Also from the comment of issue 176, order reversed as the "should be" comes first */ // assertCaseChangerTitleUppers("This is a Simple Example {TITLE}", "This is a simple example {TITLE}"); // assertCaseChangerTitleUppers("This {IS} Another Simple Example Tit{LE}", "This {IS} another simple example tit{LE}"); diff --git a/src/test/java/org/jabref/logic/bst/util/BstNameFormatterTest.java b/src/test/java/org/jabref/logic/bst/util/BstNameFormatterTest.java index 16caae557a2..2d47240dcf3 100644 --- a/src/test/java/org/jabref/logic/bst/util/BstNameFormatterTest.java +++ b/src/test/java/org/jabref/logic/bst/util/BstNameFormatterTest.java @@ -6,10 +6,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class BstNameFormatterTest { +class BstNameFormatterTest { @Test - public void umlautsFullNames() { + void umlautsFullNames() { AuthorList list = AuthorList.parse("Charles Louis Xavier Joseph de la Vall{\\'e}e Poussin"); assertEquals("de~laVall{\\'e}e~PoussinCharles Louis Xavier~Joseph", @@ -17,7 +17,7 @@ public void umlautsFullNames() { } @Test - public void umlautsAbbreviations() { + void umlautsAbbreviations() { AuthorList list = AuthorList.parse("Charles Louis Xavier Joseph de la Vall{\\'e}e Poussin"); assertEquals("de~la Vall{\\'e}e~Poussin, C.~L. X.~J.", @@ -25,7 +25,7 @@ public void umlautsAbbreviations() { } @Test - public void umlautsAbbreviationsWithQuestionMark() { + void umlautsAbbreviationsWithQuestionMark() { AuthorList list = AuthorList.parse("Charles Louis Xavier Joseph de la Vall{\\'e}e Poussin"); assertEquals("de~la Vall{\\'e}e~Poussin, C.~L. X.~J?", @@ -33,7 +33,7 @@ public void umlautsAbbreviationsWithQuestionMark() { } @Test - public void formatName() { + void formatName() { AuthorList list = AuthorList.parse("Charles Louis Xavier Joseph de la Vall{\\'e}e Poussin"); assertEquals("dlVP", BstNameFormatter.formatName(list.getAuthor(0), "{v{}}{l{}}")); @@ -70,28 +70,28 @@ private void assertNameFormatA(String string, String string2) { } @Test - public void matchingBraceConsumedForCompleteWords() { + void matchingBraceConsumedForCompleteWords() { StringBuilder sb = new StringBuilder(); assertEquals(6, BstNameFormatter.consumeToMatchingBrace(sb, "{HELLO} {WORLD}".toCharArray(), 0)); assertEquals("{HELLO}", sb.toString()); } @Test - public void matchingBraceConsumedForBracesInWords() { + void matchingBraceConsumedForBracesInWords() { StringBuilder sb = new StringBuilder(); assertEquals(18, BstNameFormatter.consumeToMatchingBrace(sb, "{HE{L{}L}O} {WORLD}".toCharArray(), 12)); assertEquals("{WORLD}", sb.toString()); } @Test - public void consumeToMatchingBrace() { + void consumeToMatchingBrace() { StringBuilder sb = new StringBuilder(); assertEquals(10, BstNameFormatter.consumeToMatchingBrace(sb, "{HE{L{}L}O} {WORLD}".toCharArray(), 0)); assertEquals("{HE{L{}L}O}", sb.toString()); } @Test - public void getFirstCharOfString() { + void getFirstCharOfString() { assertEquals("C", BstNameFormatter.getFirstCharOfString("Charles")); assertEquals("V", BstNameFormatter.getFirstCharOfString("Vall{\\'e}e")); assertEquals("{\\'e}", BstNameFormatter.getFirstCharOfString("{\\'e}")); @@ -100,7 +100,7 @@ public void getFirstCharOfString() { } @Test - public void numberOfChars() { + void numberOfChars() { assertEquals(6, BstNameFormatter.numberOfChars("Vall{\\'e}e", -1)); assertEquals(2, BstNameFormatter.numberOfChars("Vall{\\'e}e", 2)); assertEquals(1, BstNameFormatter.numberOfChars("Vall{\\'e}e", 1)); diff --git a/src/test/java/org/jabref/logic/bst/util/BstPurifierTest.java b/src/test/java/org/jabref/logic/bst/util/BstPurifierTest.java index 9bd094d7706..e0eb7ac928b 100644 --- a/src/test/java/org/jabref/logic/bst/util/BstPurifierTest.java +++ b/src/test/java/org/jabref/logic/bst/util/BstPurifierTest.java @@ -8,11 +8,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class BstPurifierTest { +class BstPurifierTest { @ParameterizedTest @MethodSource("provideTestStrings") - public void purify(String expected, String toBePurified) { + void purify(String expected, String toBePurified) { assertEquals(expected, BstPurifier.purify(toBePurified)); } diff --git a/src/test/java/org/jabref/logic/bst/util/BstTextPrefixerTest.java b/src/test/java/org/jabref/logic/bst/util/BstTextPrefixerTest.java index bdab979539a..0122378fedd 100644 --- a/src/test/java/org/jabref/logic/bst/util/BstTextPrefixerTest.java +++ b/src/test/java/org/jabref/logic/bst/util/BstTextPrefixerTest.java @@ -4,10 +4,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class BstTextPrefixerTest { +class BstTextPrefixerTest { @Test - public void prefix() { + void prefix() { assertPrefix("i", "i"); assertPrefix("0I~ ", "0I~ "); assertPrefix("Hi Hi", "Hi Hi "); diff --git a/src/test/java/org/jabref/logic/bst/util/BstWidthCalculatorTest.java b/src/test/java/org/jabref/logic/bst/util/BstWidthCalculatorTest.java index 1c5dcfe324e..e2c348ae24e 100644 --- a/src/test/java/org/jabref/logic/bst/util/BstWidthCalculatorTest.java +++ b/src/test/java/org/jabref/logic/bst/util/BstWidthCalculatorTest.java @@ -35,11 +35,11 @@ * \bibcite{canh05}{CMM{$^{+}$}05} * */ -public class BstWidthCalculatorTest { +class BstWidthCalculatorTest { @ParameterizedTest @MethodSource("provideTestWidth") - public void width(int i, String str) { + void width(int i, String str) { assertEquals(i, BstWidthCalculator.width(str)); } @@ -59,7 +59,7 @@ private static Stream provideTestWidth() { @ParameterizedTest @MethodSource("provideTestGetCharWidth") - public void getCharWidth(int i, Character c) { + void getCharWidth(int i, Character c) { assertEquals(i, BstWidthCalculator.getCharWidth(c)); } diff --git a/src/test/java/org/jabref/logic/cleanup/ConvertToBiblatexCleanupTest.java b/src/test/java/org/jabref/logic/cleanup/ConvertToBiblatexCleanupTest.java index 2208a000130..396c53225e9 100644 --- a/src/test/java/org/jabref/logic/cleanup/ConvertToBiblatexCleanupTest.java +++ b/src/test/java/org/jabref/logic/cleanup/ConvertToBiblatexCleanupTest.java @@ -10,17 +10,17 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class ConvertToBiblatexCleanupTest { +class ConvertToBiblatexCleanupTest { private ConvertToBiblatexCleanup worker; @BeforeEach - public void setUp() { + void setUp() { worker = new ConvertToBiblatexCleanup(); } @Test - public void cleanupMovesYearMonthToDate() { + void cleanupMovesYearMonthToDate() { BibEntry entry = new BibEntry(); entry.setField(StandardField.YEAR, "2011"); entry.setField(StandardField.MONTH, "#jan#"); @@ -33,7 +33,7 @@ public void cleanupMovesYearMonthToDate() { } @Test - public void cleanupWithDateAlreadyPresentAndDifferentFromYearDoesNothing() { + void cleanupWithDateAlreadyPresentAndDifferentFromYearDoesNothing() { BibEntry entry = new BibEntry(); entry.setField(StandardField.YEAR, "2011"); entry.setField(StandardField.MONTH, "#jan#"); @@ -47,7 +47,7 @@ public void cleanupWithDateAlreadyPresentAndDifferentFromYearDoesNothing() { } @Test - public void cleanupWithDateAlreadyPresentAndDifferentFromMonthDoesNothing() { + void cleanupWithDateAlreadyPresentAndDifferentFromMonthDoesNothing() { BibEntry entry = new BibEntry(); entry.setField(StandardField.YEAR, "2011"); entry.setField(StandardField.MONTH, "#jan#"); @@ -61,7 +61,7 @@ public void cleanupWithDateAlreadyPresentAndDifferentFromMonthDoesNothing() { } @Test - public void cleanupWithEmptyDateDoesNothing() { + void cleanupWithEmptyDateDoesNothing() { BibEntry entry = new BibEntry(); entry.setField(StandardField.YEAR, ""); entry.setField(StandardField.MONTH, ""); @@ -75,7 +75,7 @@ public void cleanupWithEmptyDateDoesNothing() { } @Test - public void cleanupWithDateAlreadyPresentAndEqualsToYearAndMonth() { + void cleanupWithDateAlreadyPresentAndEqualsToYearAndMonth() { BibEntry entry = new BibEntry(); entry.setField(StandardField.YEAR, "2011"); entry.setField(StandardField.MONTH, "#jan#"); @@ -89,7 +89,7 @@ public void cleanupWithDateAlreadyPresentAndEqualsToYearAndMonth() { } @Test - public void cleanupMovesJournalToJournaltitle() { + void cleanupMovesJournalToJournaltitle() { BibEntry entry = new BibEntry().withField(StandardField.JOURNAL, "Best of JabRef"); worker.cleanup(entry); diff --git a/src/test/java/org/jabref/logic/cleanup/ConvertToBibtexCleanupTest.java b/src/test/java/org/jabref/logic/cleanup/ConvertToBibtexCleanupTest.java index 38259aaef2f..06a4a1df5d5 100644 --- a/src/test/java/org/jabref/logic/cleanup/ConvertToBibtexCleanupTest.java +++ b/src/test/java/org/jabref/logic/cleanup/ConvertToBibtexCleanupTest.java @@ -10,17 +10,17 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class ConvertToBibtexCleanupTest { +class ConvertToBibtexCleanupTest { private ConvertToBibtexCleanup worker; @BeforeEach - public void setUp() { + void setUp() { worker = new ConvertToBibtexCleanup(); } @Test - public void cleanupMovesDateToYearAndMonth() { + void cleanupMovesDateToYearAndMonth() { BibEntry entry = new BibEntry().withField(StandardField.DATE, "2011-01"); worker.cleanup(entry); @@ -31,7 +31,7 @@ public void cleanupMovesDateToYearAndMonth() { } @Test - public void cleanupWithYearAlreadyPresentDoesNothing() { + void cleanupWithYearAlreadyPresentDoesNothing() { BibEntry entry = new BibEntry(); entry.setField(StandardField.YEAR, "2011"); entry.setField(StandardField.DATE, "2012"); @@ -43,7 +43,7 @@ public void cleanupWithYearAlreadyPresentDoesNothing() { } @Test - public void cleanupMovesJournaltitleToJournal() { + void cleanupMovesJournaltitleToJournal() { BibEntry entry = new BibEntry().withField(StandardField.JOURNALTITLE, "Best of JabRef"); worker.cleanup(entry); @@ -53,7 +53,7 @@ public void cleanupMovesJournaltitleToJournal() { } @Test - public void cleanUpDoesntMoveFileField() { + void cleanUpDoesntMoveFileField() { String fileField = ":Ambriola2006 - On the Systematic Analysis of Natural Language Requirements with CIRCE.pdf:PDF"; BibEntry entry = new BibEntry().withField(StandardField.FILE, fileField); diff --git a/src/test/java/org/jabref/logic/cleanup/DoiCleanupTest.java b/src/test/java/org/jabref/logic/cleanup/DoiCleanupTest.java index aa64e11b093..062183766e8 100644 --- a/src/test/java/org/jabref/logic/cleanup/DoiCleanupTest.java +++ b/src/test/java/org/jabref/logic/cleanup/DoiCleanupTest.java @@ -12,11 +12,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class DoiCleanupTest { +class DoiCleanupTest { @ParameterizedTest @MethodSource("provideDoiForAllLowers") - public void changeDoi(BibEntry expected, BibEntry doiInfoField) { + void changeDoi(BibEntry expected, BibEntry doiInfoField) { DoiCleanup cleanUp = new DoiCleanup(); cleanUp.cleanup(doiInfoField); diff --git a/src/test/java/org/jabref/logic/cleanup/DoiDecodeCleanupTest.java b/src/test/java/org/jabref/logic/cleanup/DoiDecodeCleanupTest.java index 15a52614eb7..17b81a8ea29 100644 --- a/src/test/java/org/jabref/logic/cleanup/DoiDecodeCleanupTest.java +++ b/src/test/java/org/jabref/logic/cleanup/DoiDecodeCleanupTest.java @@ -12,11 +12,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class DoiDecodeCleanupTest { +class DoiDecodeCleanupTest { @ParameterizedTest @MethodSource("provideDoiForAllLowers") - public void changeDoi(BibEntry expected, BibEntry doiInfoField) { + void changeDoi(BibEntry expected, BibEntry doiInfoField) { DoiCleanup cleanUp = new DoiCleanup(); cleanUp.cleanup(doiInfoField); diff --git a/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupTest.java b/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupTest.java index f8bbad52acd..795a8055456 100644 --- a/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupTest.java +++ b/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupTest.java @@ -16,13 +16,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class FieldFormatterCleanupTest { +class FieldFormatterCleanupTest { private BibEntry entry; private Map fieldMap; @BeforeEach - public void setUp() { + void setUp() { fieldMap = new HashMap<>(); entry = new BibEntry(); @@ -38,7 +38,7 @@ public void setUp() { } @Test - public void internalAllField() throws Exception { + void internalAllField() throws Exception { FieldFormatterCleanup cleanup = new FieldFormatterCleanup(InternalField.INTERNAL_ALL_FIELD, new UpperCaseFormatter()); cleanup.cleanup(entry); @@ -52,7 +52,7 @@ public void internalAllField() throws Exception { } @Test - public void internalAllTextFieldsField() throws Exception { + void internalAllTextFieldsField() throws Exception { FieldFormatterCleanup cleanup = new FieldFormatterCleanup(InternalField.INTERNAL_ALL_TEXT_FIELDS_FIELD, new UpperCaseFormatter()); cleanup.cleanup(entry); @@ -66,7 +66,7 @@ public void internalAllTextFieldsField() throws Exception { } @Test - public void cleanupAllFieldsIgnoresKeyField() throws Exception { + void cleanupAllFieldsIgnoresKeyField() throws Exception { FieldFormatterCleanup cleanup = new FieldFormatterCleanup(InternalField.INTERNAL_ALL_FIELD, new UnicodeToLatexFormatter()); entry.setField(InternalField.KEY_FIELD, "François-Marie Arouet"); // Contains ç, not in Basic Latin cleanup.cleanup(entry); @@ -75,7 +75,7 @@ public void cleanupAllFieldsIgnoresKeyField() throws Exception { } @Test - public void cleanupAllTextFieldsIgnoresKeyField() throws Exception { + void cleanupAllTextFieldsIgnoresKeyField() throws Exception { FieldFormatterCleanup cleanup = new FieldFormatterCleanup(InternalField.INTERNAL_ALL_TEXT_FIELDS_FIELD, new UnicodeToLatexFormatter()); entry.setField(InternalField.KEY_FIELD, "François-Marie Arouet"); // Contains ç, not in Basic Latin cleanup.cleanup(entry); @@ -84,7 +84,7 @@ public void cleanupAllTextFieldsIgnoresKeyField() throws Exception { } @Test - public void cleanupKeyFieldCleansUpKeyField() throws Exception { + void cleanupKeyFieldCleansUpKeyField() throws Exception { FieldFormatterCleanup cleanup = new FieldFormatterCleanup(InternalField.KEY_FIELD, new UnicodeToLatexFormatter()); entry.setField(InternalField.KEY_FIELD, "François-Marie Arouet"); // Contains ç, not in Basic Latin cleanup.cleanup(entry); diff --git a/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupsTest.java b/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupsTest.java index 90676249146..e2582f2194b 100644 --- a/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupsTest.java +++ b/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupsTest.java @@ -36,7 +36,7 @@ public class FieldFormatterCleanupsTest { private BibEntry entry; @BeforeEach - public void setUp() { + void setUp() { entry = new BibEntry(StandardEntryType.InProceedings) .withCitationKey("6055279") .withField(StandardField.TITLE, "Educational session 1") @@ -50,7 +50,7 @@ public void setUp() { } @Test - public void checkSimpleUseCase() { + void checkSimpleUseCase() { FieldFormatterCleanups actions = new FieldFormatterCleanups(true, FieldFormatterCleanups.parse("title[identity]")); FieldFormatterCleanup identityInTitle = new FieldFormatterCleanup(StandardField.TITLE, new IdentityFormatter()); @@ -62,7 +62,7 @@ public void checkSimpleUseCase() { } @Test - public void invalidSaveActionSting() { + void invalidSaveActionSting() { FieldFormatterCleanups actions = new FieldFormatterCleanups(true, FieldFormatterCleanups.parse("title")); assertEquals(Collections.emptyList(), actions.getConfiguredActions()); @@ -73,7 +73,7 @@ public void invalidSaveActionSting() { } @Test - public void checkLowerCaseSaveAction() { + void checkLowerCaseSaveAction() { FieldFormatterCleanups actions = new FieldFormatterCleanups(true, FieldFormatterCleanups.parse("title[lower_case]")); FieldFormatterCleanup lowerCaseTitle = new FieldFormatterCleanup(StandardField.TITLE, new LowerCaseFormatter()); @@ -85,7 +85,7 @@ public void checkLowerCaseSaveAction() { } @Test - public void checkTwoSaveActionsForOneField() { + void checkTwoSaveActionsForOneField() { FieldFormatterCleanups actions = new FieldFormatterCleanups(true, FieldFormatterCleanups.parse("title[lower_case,identity]")); FieldFormatterCleanup lowerCaseTitle = new FieldFormatterCleanup(StandardField.TITLE, new LowerCaseFormatter()); @@ -98,7 +98,7 @@ public void checkTwoSaveActionsForOneField() { } @Test - public void checkThreeSaveActionsForOneField() { + void checkThreeSaveActionsForOneField() { FieldFormatterCleanups actions = new FieldFormatterCleanups(true, FieldFormatterCleanups.parse("title[lower_case,identity,normalize_date]")); FieldFormatterCleanup lowerCaseTitle = new FieldFormatterCleanup(StandardField.TITLE, new LowerCaseFormatter()); @@ -112,7 +112,7 @@ public void checkThreeSaveActionsForOneField() { } @Test - public void checkMultipleSaveActions() { + void checkMultipleSaveActions() { FieldFormatterCleanups actions = new FieldFormatterCleanups(true, FieldFormatterCleanups.parse("pages[normalize_page_numbers]title[lower_case]")); List formatterCleanups = actions.getConfiguredActions(); @@ -127,7 +127,7 @@ public void checkMultipleSaveActions() { } @Test - public void checkMultipleSaveActionsWithMultipleFormatters() { + void checkMultipleSaveActionsWithMultipleFormatters() { FieldFormatterCleanups actions = new FieldFormatterCleanups(true, FieldFormatterCleanups.parse("pages[normalize_page_numbers,normalize_date]title[lower_case]")); List formatterCleanups = actions.getConfiguredActions(); @@ -144,7 +144,7 @@ public void checkMultipleSaveActionsWithMultipleFormatters() { } @Test - public void clearFormatterRemovesField() { + void clearFormatterRemovesField() { FieldFormatterCleanups actions = new FieldFormatterCleanups(true, FieldFormatterCleanups.parse("month[clear]")); actions.applySaveActions(entry); diff --git a/src/test/java/org/jabref/logic/cleanup/ISSNCleanupTest.java b/src/test/java/org/jabref/logic/cleanup/ISSNCleanupTest.java index f9745fdfcb9..9493d20df5c 100644 --- a/src/test/java/org/jabref/logic/cleanup/ISSNCleanupTest.java +++ b/src/test/java/org/jabref/logic/cleanup/ISSNCleanupTest.java @@ -15,12 +15,12 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; -public class ISSNCleanupTest { +class ISSNCleanupTest { private CleanupWorker worker; @BeforeEach - public void setUp() { + void setUp() { worker = new CleanupWorker( mock(BibDatabaseContext.class), mock(FilePreferences.class), @@ -28,7 +28,7 @@ public void setUp() { } @Test - public void cleanupISSNReturnsCorrectISSN() { + void cleanupISSNReturnsCorrectISSN() { CleanupPreferences preset = new CleanupPreferences(CleanupPreferences.CleanupStep.CLEAN_UP_ISSN); BibEntry entry = new BibEntry(); entry.setField(StandardField.ISSN, "0123-4567"); @@ -38,7 +38,7 @@ public void cleanupISSNReturnsCorrectISSN() { } @Test - public void cleanupISSNAddsMissingDash() { + void cleanupISSNAddsMissingDash() { CleanupPreferences preset = new CleanupPreferences(CleanupPreferences.CleanupStep.CLEAN_UP_ISSN); BibEntry entry = new BibEntry(); entry.setField(StandardField.ISSN, "01234567"); @@ -48,7 +48,7 @@ public void cleanupISSNAddsMissingDash() { } @Test - public void cleanupISSNJunkStaysJunk() { + void cleanupISSNJunkStaysJunk() { CleanupPreferences preset = new CleanupPreferences(CleanupPreferences.CleanupStep.CLEAN_UP_ISSN); BibEntry entry = new BibEntry(); entry.setField(StandardField.ISSN, "Banana"); diff --git a/src/test/java/org/jabref/logic/cleanup/RemoveLinksToNotExistentFilesTest.java b/src/test/java/org/jabref/logic/cleanup/RemoveLinksToNotExistentFilesTest.java index cd02a2534cd..0529750bb4c 100644 --- a/src/test/java/org/jabref/logic/cleanup/RemoveLinksToNotExistentFilesTest.java +++ b/src/test/java/org/jabref/logic/cleanup/RemoveLinksToNotExistentFilesTest.java @@ -24,7 +24,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class RemoveLinksToNotExistentFilesTest { +class RemoveLinksToNotExistentFilesTest { private Path fileBefore; private BibEntry entry; private RemoveLinksToNotExistentFiles removeLinks; diff --git a/src/test/java/org/jabref/logic/cleanup/TimeStampToCreationDateTest.java b/src/test/java/org/jabref/logic/cleanup/TimeStampToCreationDateTest.java index 67027811cf1..e6ddf0aff33 100644 --- a/src/test/java/org/jabref/logic/cleanup/TimeStampToCreationDateTest.java +++ b/src/test/java/org/jabref/logic/cleanup/TimeStampToCreationDateTest.java @@ -53,7 +53,7 @@ public static Stream standardFieldToCreationDate() { */ @ParameterizedTest @MethodSource("standardFieldToCreationDate") - public void withStandardFieldToCreationDate(BibEntry expected, BibEntry input) { + void withStandardFieldToCreationDate(BibEntry expected, BibEntry input) { makeMockReturnStandardField(); TimeStampToCreationDate migrator = new TimeStampToCreationDate(timestampPreferences); migrator.cleanup(input); @@ -82,7 +82,7 @@ public static Stream customFieldToCreationDate() { */ @ParameterizedTest @MethodSource("customFieldToCreationDate") - public void withCustomFieldToCreationDate(BibEntry expected, BibEntry input) { + void withCustomFieldToCreationDate(BibEntry expected, BibEntry input) { makeMockReturnCustomField(); TimeStampToCreationDate migrator = new TimeStampToCreationDate(timestampPreferences); migrator.cleanup(input); @@ -169,7 +169,7 @@ public static Stream entriesMigratedToCreationDateFromDifferentFormat */ @ParameterizedTest @MethodSource("entriesMigratedToCreationDateFromDifferentFormats") - public void withDifferentFormats(BibEntry expected, BibEntry input) { + void withDifferentFormats(BibEntry expected, BibEntry input) { makeMockReturnStandardField(); TimeStampToCreationDate migrator = new TimeStampToCreationDate(timestampPreferences); ParserResult parserResult = new ParserResult(List.of(input)); diff --git a/src/test/java/org/jabref/logic/cleanup/TimeStampToModificationDateTest.java b/src/test/java/org/jabref/logic/cleanup/TimeStampToModificationDateTest.java index 79f3fbc8438..092e8f3a565 100644 --- a/src/test/java/org/jabref/logic/cleanup/TimeStampToModificationDateTest.java +++ b/src/test/java/org/jabref/logic/cleanup/TimeStampToModificationDateTest.java @@ -51,7 +51,7 @@ public static Stream standardFieldToModificationDate() { */ @ParameterizedTest @MethodSource("standardFieldToModificationDate") - public void withStandardFieldToModificationDate(BibEntry expected, BibEntry input) { + void withStandardFieldToModificationDate(BibEntry expected, BibEntry input) { makeMockReturnStandardField(); TimeStampToModificationDate migrator = new TimeStampToModificationDate(timestampPreferences); migrator.cleanup(input); @@ -80,7 +80,7 @@ public static Stream customFieldToModificationDate() { */ @ParameterizedTest @MethodSource("customFieldToModificationDate") - public void withCustomFieldToModificationDate(BibEntry expected, BibEntry input) { + void withCustomFieldToModificationDate(BibEntry expected, BibEntry input) { makeMockReturnCustomField(); TimeStampToModificationDate migrator = new TimeStampToModificationDate(timestampPreferences); migrator.cleanup(input); diff --git a/src/test/java/org/jabref/logic/cleanup/URLCleanupTest.java b/src/test/java/org/jabref/logic/cleanup/URLCleanupTest.java index 6242021cfdb..6c5ae1b247b 100644 --- a/src/test/java/org/jabref/logic/cleanup/URLCleanupTest.java +++ b/src/test/java/org/jabref/logic/cleanup/URLCleanupTest.java @@ -11,11 +11,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class URLCleanupTest { +class URLCleanupTest { @ParameterizedTest @MethodSource("provideURL") - public void changeURL(BibEntry expected, BibEntry urlInputField) { + void changeURL(BibEntry expected, BibEntry urlInputField) { URLCleanup cleanUp = new URLCleanup(); cleanUp.cleanup(urlInputField); diff --git a/src/test/java/org/jabref/logic/crawler/CrawlerTest.java b/src/test/java/org/jabref/logic/crawler/CrawlerTest.java index 3d726dad69c..38550b0701e 100644 --- a/src/test/java/org/jabref/logic/crawler/CrawlerTest.java +++ b/src/test/java/org/jabref/logic/crawler/CrawlerTest.java @@ -53,7 +53,7 @@ class CrawlerTest { * Set up mocks and copies the study definition file into the test repository */ @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { setUpRepository(); CitationKeyPatternPreferences citationKeyPatternPreferences = new CitationKeyPatternPreferences( @@ -101,7 +101,7 @@ private void setUpTestStudyDefinitionFile() throws Exception { } @Test - public void whetherAllFilesAreCreated() throws Exception { + void whetherAllFilesAreCreated() throws Exception { Crawler testCrawler = new Crawler(getPathToStudyDefinitionFile(), gitHandler, preferencesService, diff --git a/src/test/java/org/jabref/logic/crawler/StudyCatalogToFetcherConverterTest.java b/src/test/java/org/jabref/logic/crawler/StudyCatalogToFetcherConverterTest.java index eb039b6815f..11da7e00dd4 100644 --- a/src/test/java/org/jabref/logic/crawler/StudyCatalogToFetcherConverterTest.java +++ b/src/test/java/org/jabref/logic/crawler/StudyCatalogToFetcherConverterTest.java @@ -18,12 +18,12 @@ import org.jabref.model.util.DummyFileUpdateMonitor; import org.jabref.preferences.PreferencesService; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; import org.mockito.Answers; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -48,7 +48,7 @@ void setUpMocks() { } @Test - public void getActiveFetcherInstances() throws Exception { + void getActiveFetcherInstances() throws Exception { Path studyDefinition = tempRepositoryDirectory.resolve(StudyRepository.STUDY_DEFINITION_FILE_NAME); copyTestStudyDefinitionFileIntoDirectory(studyDefinition); @@ -64,7 +64,7 @@ public void getActiveFetcherInstances() throws Exception { mock(ImporterPreferences.class, Answers.RETURNS_DEEP_STUBS)); List result = converter.getActiveFetchers(); - Assertions.assertEquals( + assertEquals( List.of("Springer", "ArXiv", "Medline/PubMed"), result.stream().map(SearchBasedFetcher::getName).collect(Collectors.toList()) ); diff --git a/src/test/java/org/jabref/logic/crawler/StudyRepositoryTest.java b/src/test/java/org/jabref/logic/crawler/StudyRepositoryTest.java index b1b7184be0c..e4e7faa1060 100644 --- a/src/test/java/org/jabref/logic/crawler/StudyRepositoryTest.java +++ b/src/test/java/org/jabref/logic/crawler/StudyRepositoryTest.java @@ -63,7 +63,7 @@ class StudyRepositoryTest { * Set up mocks */ @BeforeEach - public void setUpMocks() throws Exception { + void setUpMocks() throws Exception { libraryPreferences = mock(LibraryPreferences.class, Answers.RETURNS_DEEP_STUBS); saveConfiguration = mock(SaveConfiguration.class, Answers.RETURNS_DEEP_STUBS); importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); diff --git a/src/test/java/org/jabref/logic/crawler/StudyYamlParserTest.java b/src/test/java/org/jabref/logic/crawler/StudyYamlParserTest.java index db2fb4f45e0..1b82eae5741 100644 --- a/src/test/java/org/jabref/logic/crawler/StudyYamlParserTest.java +++ b/src/test/java/org/jabref/logic/crawler/StudyYamlParserTest.java @@ -38,20 +38,20 @@ void setupStudy() throws Exception { } @Test - public void parseStudyFileSuccessfully() throws Exception { + void parseStudyFileSuccessfully() throws Exception { Study study = new StudyYamlParser().parseStudyYamlFile(testDirectory.resolve(StudyRepository.STUDY_DEFINITION_FILE_NAME)); assertEquals(expectedStudy, study); } @Test - public void writeStudyFileSuccessfully() throws Exception { + void writeStudyFileSuccessfully() throws Exception { new StudyYamlParser().writeStudyYamlFile(expectedStudy, testDirectory.resolve(StudyRepository.STUDY_DEFINITION_FILE_NAME)); Study study = new StudyYamlParser().parseStudyYamlFile(testDirectory.resolve(StudyRepository.STUDY_DEFINITION_FILE_NAME)); assertEquals(expectedStudy, study); } @Test - public void readsJabRef57StudySuccessfully() throws Exception { + void readsJabRef57StudySuccessfully() throws Exception { // The field "last-search-date" was removed // If the field is "just" removed from the datamodel, one gets following exception: // com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "last-search-date" (class org.jabref.model.study.Study), not marked as ignorable (5 known properties: "authors", "research-questions", "queries", "title", "databases"]) diff --git a/src/test/java/org/jabref/logic/database/DuplicateCheckTest.java b/src/test/java/org/jabref/logic/database/DuplicateCheckTest.java index dfc1e5ed9d3..4cc2c79e6cf 100644 --- a/src/test/java/org/jabref/logic/database/DuplicateCheckTest.java +++ b/src/test/java/org/jabref/logic/database/DuplicateCheckTest.java @@ -60,7 +60,7 @@ private static BibEntry getUnrelatedArticle() { } @BeforeEach - public void setUp() { + void setUp() { simpleArticle = getSimpleArticle(); unrelatedArticle = getUnrelatedArticle(); simpleInBook = getSimpleInBook(); @@ -68,7 +68,7 @@ public void setUp() { } @Test - public void duplicateDetectionWithSameAuthor() { + void duplicateDetectionWithSameAuthor() { BibEntry one = new BibEntry(StandardEntryType.Article).withField(StandardField.AUTHOR, "Billy Bob"); BibEntry two = new BibEntry(StandardEntryType.Article).withField(StandardField.AUTHOR, "Billy Bob"); @@ -76,7 +76,7 @@ public void duplicateDetectionWithSameAuthor() { } @Test - public void duplicateDetectionWithSameAuthorAndUmlauts() { + void duplicateDetectionWithSameAuthorAndUmlauts() { BibEntry one = new BibEntry(StandardEntryType.Article).withField(StandardField.AUTHOR, "Billy Bobä"); BibEntry two = new BibEntry(StandardEntryType.Article).withField(StandardField.AUTHOR, "Bill{\\\"{a}} Bob{\\\"{a}}"); @@ -84,7 +84,7 @@ public void duplicateDetectionWithSameAuthorAndUmlauts() { } @Test - public void duplicateDetectionWithDifferentAuthors() { + void duplicateDetectionWithDifferentAuthors() { BibEntry one = new BibEntry(StandardEntryType.Article).withField(StandardField.AUTHOR, "Billy Bob"); BibEntry two = new BibEntry(StandardEntryType.Article).withField(StandardField.AUTHOR, "James Joyce"); @@ -92,7 +92,7 @@ public void duplicateDetectionWithDifferentAuthors() { } @Test - public void duplicateDetectionWithDifferentTypes() { + void duplicateDetectionWithDifferentTypes() { BibEntry one = new BibEntry(StandardEntryType.Article).withField(StandardField.AUTHOR, "Billy Bob"); BibEntry two = new BibEntry(StandardEntryType.Book).withField(StandardField.AUTHOR, "Billy Bob"); @@ -100,7 +100,7 @@ public void duplicateDetectionWithDifferentTypes() { } @Test - public void duplicateDetectionWithSameYearTitleJournal() { + void duplicateDetectionWithSameYearTitleJournal() { BibEntry one = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Billy Bob") .withField(StandardField.YEAR, "2005") @@ -118,7 +118,7 @@ public void duplicateDetectionWithSameYearTitleJournal() { } @Test - public void duplicateDetectionWithDifferentJournal() { + void duplicateDetectionWithDifferentJournal() { BibEntry one = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Billy Bob") .withField(StandardField.YEAR, "2005") @@ -136,7 +136,7 @@ public void duplicateDetectionWithDifferentJournal() { } @Test - public void duplicateDetectionWithDifferentVolume() { + void duplicateDetectionWithDifferentVolume() { BibEntry one = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Billy Bob") .withField(StandardField.YEAR, "2005") @@ -157,7 +157,7 @@ public void duplicateDetectionWithDifferentVolume() { } @Test - public void duplicateDetectionWithDifferentTitleSameVolume() { + void duplicateDetectionWithDifferentTitleSameVolume() { BibEntry one = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Billy Bob") .withField(StandardField.YEAR, "2005") @@ -178,7 +178,7 @@ public void duplicateDetectionWithDifferentTitleSameVolume() { } @Test - public void duplicateDetectionWithSamePages() { + void duplicateDetectionWithSamePages() { BibEntry one = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Billy Bob") .withField(StandardField.YEAR, "2005") @@ -201,7 +201,7 @@ public void duplicateDetectionWithSamePages() { } @Test - public void duplicateDetectionWithSamePagesOneEntryNoVolume() { + void duplicateDetectionWithSamePagesOneEntryNoVolume() { BibEntry one = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Billy Bob") .withField(StandardField.YEAR, "2005") @@ -223,7 +223,7 @@ public void duplicateDetectionWithSamePagesOneEntryNoVolume() { } @Test - public void duplicateDetectionDifferentVolumeNoJournal() { + void duplicateDetectionDifferentVolumeNoJournal() { BibEntry one = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Billy Bob") .withField(StandardField.YEAR, "2005") @@ -244,7 +244,7 @@ public void duplicateDetectionDifferentVolumeNoJournal() { } @Test - public void duplicateDetectionDifferentTitleNoJournal() { + void duplicateDetectionDifferentTitleNoJournal() { BibEntry one = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Billy Bob") .withField(StandardField.YEAR, "2005") @@ -265,7 +265,7 @@ public void duplicateDetectionDifferentTitleNoJournal() { } @Test - public void duplicateDetectionDifferentVolumeAllOthersEqual() { + void duplicateDetectionDifferentVolumeAllOthersEqual() { BibEntry one = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Billy Bob") .withField(StandardField.YEAR, "2005") @@ -288,7 +288,7 @@ public void duplicateDetectionDifferentVolumeAllOthersEqual() { } @Test - public void duplicateDetectionDifferentVolumeDifferentJournalAllOthersEqual() { + void duplicateDetectionDifferentVolumeDifferentJournalAllOthersEqual() { BibEntry one = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Billy Bob") .withField(StandardField.YEAR, "2005") @@ -311,7 +311,7 @@ public void duplicateDetectionDifferentVolumeDifferentJournalAllOthersEqual() { } @Test - public void wordCorrelation() { + void wordCorrelation() { String d1 = "Characterization of Calanus finmarchicus habitat in the North Sea"; String d2 = "Characterization of Calunus finmarchicus habitat in the North Sea"; String d3 = "Characterization of Calanus glacialissss habitat in the South Sea"; @@ -322,12 +322,12 @@ public void wordCorrelation() { } @Test - public void twoUnrelatedEntriesAreNoDuplicates() { + void twoUnrelatedEntriesAreNoDuplicates() { assertFalse(duplicateChecker.isDuplicate(simpleArticle, unrelatedArticle, BibDatabaseMode.BIBTEX)); } @Test - public void twoUnrelatedEntriesWithDifferentDoisAreNoDuplicates() { + void twoUnrelatedEntriesWithDifferentDoisAreNoDuplicates() { simpleArticle.setField(StandardField.DOI, "10.1016/j.is.2004.02.002"); unrelatedArticle.setField(StandardField.DOI, "10.1016/j.is.2004.02.00X"); @@ -335,7 +335,7 @@ public void twoUnrelatedEntriesWithDifferentDoisAreNoDuplicates() { } @Test - public void twoUnrelatedEntriesWithEqualDoisAreDuplicates() { + void twoUnrelatedEntriesWithEqualDoisAreDuplicates() { simpleArticle.setField(StandardField.DOI, "10.1016/j.is.2004.02.002"); unrelatedArticle.setField(StandardField.DOI, "10.1016/j.is.2004.02.002"); @@ -343,7 +343,7 @@ public void twoUnrelatedEntriesWithEqualDoisAreDuplicates() { } @Test - public void twoUnrelatedEntriesWithEqualPmidAreDuplicates() { + void twoUnrelatedEntriesWithEqualPmidAreDuplicates() { simpleArticle.setField(StandardField.PMID, "12345678"); unrelatedArticle.setField(StandardField.PMID, "12345678"); @@ -351,7 +351,7 @@ public void twoUnrelatedEntriesWithEqualPmidAreDuplicates() { } @Test - public void twoUnrelatedEntriesWithEqualEprintAreDuplicates() { + void twoUnrelatedEntriesWithEqualEprintAreDuplicates() { simpleArticle.setField(StandardField.EPRINT, "12345678"); unrelatedArticle.setField(StandardField.EPRINT, "12345678"); @@ -359,7 +359,7 @@ public void twoUnrelatedEntriesWithEqualEprintAreDuplicates() { } @Test - public void twoEntriesWithSameDoiButDifferentTypesAreDuplicates() { + void twoEntriesWithSameDoiButDifferentTypesAreDuplicates() { simpleArticle.setField(StandardField.DOI, "10.1016/j.is.2004.02.002"); BibEntry duplicateWithDifferentType = (BibEntry) simpleArticle.clone(); duplicateWithDifferentType.setType(StandardEntryType.InCollection); @@ -368,7 +368,7 @@ public void twoEntriesWithSameDoiButDifferentTypesAreDuplicates() { } @Test - public void twoEntriesWithDoiContainingUnderscoresAreNotEqual() { + void twoEntriesWithDoiContainingUnderscoresAreNotEqual() { simpleArticle.setField(StandardField.DOI, "10.1016/j.is.2004.02.002"); // An underscore in a DOI can indicate a totally different DOI unrelatedArticle.setField(StandardField.DOI, "10.1016/j.is.2004.02.0_02"); @@ -379,7 +379,7 @@ public void twoEntriesWithDoiContainingUnderscoresAreNotEqual() { } @Test - public void twoEntriesWithSameISBNButDifferentTypesAreNotDuplicates() { + void twoEntriesWithSameISBNButDifferentTypesAreNotDuplicates() { simpleArticle.setField(StandardField.ISBN, "0-123456-47-9"); unrelatedArticle.setField(StandardField.ISBN, "0-123456-47-9"); BibEntry duplicateWithDifferentType = unrelatedArticle; @@ -415,14 +415,14 @@ private void twoEntriesWithDifferentSpecificFieldsAreNotDuplicates(final BibEntr } @Test - public void inbookWithoutChapterCouldBeDuplicateOfInbookWithChapter() { + void inbookWithoutChapterCouldBeDuplicateOfInbookWithChapter() { final BibEntry inbook2 = ((BibEntry) simpleInBook.clone()).withField(StandardField.CHAPTER, ""); assertTrue(duplicateChecker.isDuplicate(simpleInBook, inbook2, BibDatabaseMode.BIBTEX)); } @Test - public void twoBooksWithDifferentEditionsAreNotDuplicates() { + void twoBooksWithDifferentEditionsAreNotDuplicates() { BibEntry editionOne = new BibEntry(StandardEntryType.Book) .withField(StandardField.TITLE, "Effective Java") .withField(StandardField.AUTHOR, "Bloch, Joshua") @@ -441,7 +441,7 @@ public void twoBooksWithDifferentEditionsAreNotDuplicates() { } @Test - public void sameBooksWithMissingEditionAreDuplicates() { + void sameBooksWithMissingEditionAreDuplicates() { BibEntry editionOne = new BibEntry(StandardEntryType.Book) .withField(StandardField.TITLE, "Effective Java") .withField(StandardField.AUTHOR, "Bloch, Joshua") @@ -458,7 +458,7 @@ public void sameBooksWithMissingEditionAreDuplicates() { } @Test - public void sameBooksWithPartiallyMissingEditionAreDuplicates() { + void sameBooksWithPartiallyMissingEditionAreDuplicates() { BibEntry editionOne = new BibEntry(StandardEntryType.Book) .withField(StandardField.TITLE, "Effective Java") .withField(StandardField.AUTHOR, "Bloch, Joshua") @@ -476,7 +476,7 @@ public void sameBooksWithPartiallyMissingEditionAreDuplicates() { } @Test - public void sameBooksWithDifferentEditionsAreNotDuplicates() { + void sameBooksWithDifferentEditionsAreNotDuplicates() { BibEntry editionTwo = new BibEntry(StandardEntryType.Book) .withCitationKey("Sutton17reinfLrnIntroBook") .withField(StandardField.TITLE, "Reinforcement learning:An introduction") diff --git a/src/test/java/org/jabref/logic/exporter/AtomicFileOutputStreamTest.java b/src/test/java/org/jabref/logic/exporter/AtomicFileOutputStreamTest.java index 80086d77db9..af6058d17e9 100644 --- a/src/test/java/org/jabref/logic/exporter/AtomicFileOutputStreamTest.java +++ b/src/test/java/org/jabref/logic/exporter/AtomicFileOutputStreamTest.java @@ -24,7 +24,7 @@ class AtomicFileOutputStreamTest { private static final String FIVE_THOUSAND_CHARS = Strings.repeat("A", 5_000); @Test - public void normalSaveWorks(@TempDir Path tempDir) throws Exception { + void normalSaveWorks(@TempDir Path tempDir) throws Exception { Path out = tempDir.resolve("normal-save.txt"); Files.writeString(out, FIFTY_CHARS); @@ -38,7 +38,7 @@ public void normalSaveWorks(@TempDir Path tempDir) throws Exception { } @Test - public void originalContentExistsAtWriteError(@TempDir Path tempDir) throws Exception { + void originalContentExistsAtWriteError(@TempDir Path tempDir) throws Exception { Path pathToTestFile = tempDir.resolve("error-during-save.txt"); Files.writeString(pathToTestFile, FIFTY_CHARS); diff --git a/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java b/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java index b4746826ccb..3acd98b7c3e 100644 --- a/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java +++ b/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java @@ -65,7 +65,7 @@ /** * Tests for reading can be found at {@link org.jabref.logic.importer.fileformat.BibtexImporterTest} */ -public class BibtexDatabaseWriterTest { +class BibtexDatabaseWriterTest { private BibtexDatabaseWriter databaseWriter; private BibDatabase database; diff --git a/src/test/java/org/jabref/logic/exporter/CffExporterTest.java b/src/test/java/org/jabref/logic/exporter/CffExporterTest.java index 49bd19abca0..5553b7527a6 100644 --- a/src/test/java/org/jabref/logic/exporter/CffExporterTest.java +++ b/src/test/java/org/jabref/logic/exporter/CffExporterTest.java @@ -28,7 +28,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class CffExporterTest { +class CffExporterTest { private static Exporter cffExporter; private static BibDatabaseContext databaseContext; @@ -40,7 +40,7 @@ static void setUp() { } @Test - public final void exportForNoEntriesWritesNothing(@TempDir Path tempDir) throws Exception { + final void exportForNoEntriesWritesNothing(@TempDir Path tempDir) throws Exception { Path file = tempDir.resolve("ThisIsARandomlyNamedFile"); Files.createFile(file); cffExporter.export(databaseContext, tempDir, Collections.emptyList()); @@ -48,7 +48,7 @@ public final void exportForNoEntriesWritesNothing(@TempDir Path tempDir) throws } @Test - public final void exportsCorrectContent(@TempDir Path tempDir) throws Exception { + final void exportsCorrectContent(@TempDir Path tempDir) throws Exception { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -77,7 +77,7 @@ public final void exportsCorrectContent(@TempDir Path tempDir) throws Exception } @Test - public final void usesCorrectType(@TempDir Path tempDir) throws Exception { + final void usesCorrectType(@TempDir Path tempDir) throws Exception { BibEntry entry = new BibEntry(StandardEntryType.InProceedings) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -106,7 +106,7 @@ public final void usesCorrectType(@TempDir Path tempDir) throws Exception { } @Test - public final void usesCorrectDefaultValues(@TempDir Path tempDir) throws Exception { + final void usesCorrectDefaultValues(@TempDir Path tempDir) throws Exception { BibEntry entry = new BibEntry(StandardEntryType.Thesis).withCitationKey("test"); Path file = tempDir.resolve("RandomFileName"); @@ -129,7 +129,7 @@ public final void usesCorrectDefaultValues(@TempDir Path tempDir) throws Excepti } @Test - public final void exportsSoftwareCorrectly(@TempDir Path tempDir) throws Exception { + final void exportsSoftwareCorrectly(@TempDir Path tempDir) throws Exception { BibEntry entry = new BibEntry(StandardEntryType.Software) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -154,7 +154,7 @@ public final void exportsSoftwareCorrectly(@TempDir Path tempDir) throws Excepti } @Test - public final void exportsSoftwareDateCorrectly(@TempDir Path tempDir) throws Exception { + final void exportsSoftwareDateCorrectly(@TempDir Path tempDir) throws Exception { BibEntry entry = new BibEntry(StandardEntryType.Software) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -179,7 +179,7 @@ public final void exportsSoftwareDateCorrectly(@TempDir Path tempDir) throws Exc } @Test - public final void exportsArticleDateCorrectly(@TempDir Path tempDir) throws Exception { + final void exportsArticleDateCorrectly(@TempDir Path tempDir) throws Exception { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -209,7 +209,7 @@ public final void exportsArticleDateCorrectly(@TempDir Path tempDir) throws Exce } @Test - public final void passesModifiedCharset(@TempDir Path tempDir) throws Exception { + final void passesModifiedCharset(@TempDir Path tempDir) throws Exception { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "谷崎 潤一郎") @@ -238,7 +238,7 @@ public final void passesModifiedCharset(@TempDir Path tempDir) throws Exception } @Test - public final void roundTripTest(@TempDir Path tempDir) throws Exception { + final void roundTripTest(@TempDir Path tempDir) throws Exception { CitationKeyPatternPreferences citationKeyPatternPreferences = mock( CitationKeyPatternPreferences.class, Answers.RETURNS_SMART_NULLS diff --git a/src/test/java/org/jabref/logic/exporter/CsvExportFormatTest.java b/src/test/java/org/jabref/logic/exporter/CsvExportFormatTest.java index 8366cc64fff..73f06d2e5da 100644 --- a/src/test/java/org/jabref/logic/exporter/CsvExportFormatTest.java +++ b/src/test/java/org/jabref/logic/exporter/CsvExportFormatTest.java @@ -27,7 +27,7 @@ public class CsvExportFormatTest { private Exporter exportFormat; @BeforeEach - public void setUp() { + void setUp() { exportFormat = new TemplateExporter( "OpenOffice/LibreOffice CSV", "oocsv", @@ -41,12 +41,12 @@ public void setUp() { } @AfterEach - public void tearDown() { + void tearDown() { exportFormat = null; } @Test - public void performExportForSingleAuthor(@TempDir Path testFolder) throws Exception { + void performExportForSingleAuthor(@TempDir Path testFolder) throws Exception { Path path = testFolder.resolve("ThisIsARandomlyNamedFile"); BibEntry entry = new BibEntry().withField(StandardField.AUTHOR, "Someone, Van Something"); @@ -62,7 +62,7 @@ public void performExportForSingleAuthor(@TempDir Path testFolder) throws Except } @Test - public void performExportForMultipleAuthors(@TempDir Path testFolder) throws Exception { + void performExportForMultipleAuthors(@TempDir Path testFolder) throws Exception { Path path = testFolder.resolve("ThisIsARandomlyNamedFile"); BibEntry entry = new BibEntry().withField(StandardField.AUTHOR, "von Neumann, John and Smith, John and Black Brown, Peter"); @@ -78,7 +78,7 @@ public void performExportForMultipleAuthors(@TempDir Path testFolder) throws Exc } @Test - public void performExportForSingleEditor(@TempDir Path testFolder) throws Exception { + void performExportForSingleEditor(@TempDir Path testFolder) throws Exception { Path path = testFolder.resolve("ThisIsARandomlyNamedFile"); File tmpFile = path.toFile(); BibEntry entry = new BibEntry().withField(StandardField.EDITOR, "Someone, Van Something"); @@ -94,7 +94,7 @@ public void performExportForSingleEditor(@TempDir Path testFolder) throws Except } @Test - public void performExportForMultipleEditors(@TempDir Path testFolder) throws Exception { + void performExportForMultipleEditors(@TempDir Path testFolder) throws Exception { Path path = testFolder.resolve("ThisIsARandomlyNamedFile"); File tmpFile = path.toFile(); BibEntry entry = new BibEntry() diff --git a/src/test/java/org/jabref/logic/exporter/DocbookExporterTest.java b/src/test/java/org/jabref/logic/exporter/DocbookExporterTest.java index 64564cfab6c..0b905925e6e 100644 --- a/src/test/java/org/jabref/logic/exporter/DocbookExporterTest.java +++ b/src/test/java/org/jabref/logic/exporter/DocbookExporterTest.java @@ -30,7 +30,7 @@ public class DocbookExporterTest { private Exporter exportFormat; @BeforeEach - public void setUp() { + void setUp() { exportFormat = new TemplateExporter( "DocBook 4", "docbook4", @@ -42,7 +42,7 @@ public void setUp() { } @Test - public void corruptedTitleBraces(@TempDir Path testFolder) throws Exception { + void corruptedTitleBraces(@TempDir Path testFolder) throws Exception { Path tmpFile = testFolder.resolve("testBraces"); BibEntry entry = new BibEntry(); @@ -58,7 +58,7 @@ public void corruptedTitleBraces(@TempDir Path testFolder) throws Exception { } @Test - public void corruptedTitleUnicode(@TempDir Path testFolder) throws Exception { + void corruptedTitleUnicode(@TempDir Path testFolder) throws Exception { Path tmpFile = testFolder.resolve("testBraces"); BibEntry entry = new BibEntry(); diff --git a/src/test/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporterTest.java b/src/test/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporterTest.java index c186cf6100d..325d59214f9 100644 --- a/src/test/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporterTest.java +++ b/src/test/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporterTest.java @@ -190,7 +190,7 @@ private static LinkedFile createDefaultLinkedFile(String fileName, Path tempDir) @ParameterizedTest @MethodSource("providePathToNewPDFs") - public void roundtripExportImport(Path path) throws Exception { + void roundtripExportImport(Path path) throws Exception { BibEntry expected = new BibEntry(StandardEntryType.Misc) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") diff --git a/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterFilesTest.java b/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterFilesTest.java index 38838b388eb..8ac21700682 100644 --- a/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterFilesTest.java +++ b/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterFilesTest.java @@ -29,7 +29,7 @@ import static org.mockito.Mockito.when; import static org.xmlunit.matchers.CompareMatcher.isSimilarTo; -public class EndnoteXmlExporterFilesTest { +class EndnoteXmlExporterFilesTest { private Exporter exporter; private BibDatabaseContext databaseContext; @@ -39,7 +39,7 @@ public class EndnoteXmlExporterFilesTest { private EndnoteXmlImporter endnoteXmlImporter; @BeforeEach - public void setUp(@TempDir Path testFolder) throws Exception { + void setUp(@TempDir Path testFolder) throws Exception { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); when(importFormatPreferences.bibEntryPreferences()).thenReturn(mock(BibEntryPreferences.class)); when(importFormatPreferences.bibEntryPreferences().getKeywordSeparator()).thenReturn(','); @@ -65,7 +65,7 @@ static Stream fileNames() throws IOException, URISyntaxException { @ParameterizedTest @MethodSource("fileNames") - public final void performExport(String filename) throws Exception { + final void performExport(String filename) throws Exception { bibFileToExport = Path.of(EndnoteXmlExporterFilesTest.class.getResource(filename).toURI()); List entries = bibtexImporter.importDatabase(bibFileToExport).getDatabase().getEntries(); exporter.export(databaseContext, exportFile, entries); @@ -86,7 +86,7 @@ public final void performExport(String filename) throws Exception { @ParameterizedTest @MethodSource("fileNames") - public final void exportAsEndnoteAndThenImportAsEndnote(String filename) throws Exception { + final void exportAsEndnoteAndThenImportAsEndnote(String filename) throws Exception { bibFileToExport = Path.of(EndnoteXmlExporterFilesTest.class.getResource(filename).toURI()); List entries = bibtexImporter.importDatabase(bibFileToExport).getDatabase().getEntries(); diff --git a/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterTest.java b/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterTest.java index 383a32e02e1..a98eccd58db 100644 --- a/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterTest.java +++ b/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterTest.java @@ -21,14 +21,14 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class EndnoteXmlExporterTest { +class EndnoteXmlExporterTest { private Exporter exporter; private BibDatabaseContext databaseContext; private BibEntry bookEntry; @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); when(importFormatPreferences.bibEntryPreferences()).thenReturn(mock(BibEntryPreferences.class)); when(importFormatPreferences.bibEntryPreferences().getKeywordSeparator()).thenReturn(','); @@ -48,7 +48,7 @@ public void setUp() throws Exception { } @Test - public void exportForEmptyEntryList(@TempDir Path tempDir) throws Exception { + void exportForEmptyEntryList(@TempDir Path tempDir) throws Exception { Path file = tempDir.resolve("EmptyFile.xml"); exporter.export(databaseContext, file, Collections.emptyList()); @@ -56,7 +56,7 @@ public void exportForEmptyEntryList(@TempDir Path tempDir) throws Exception { } @Test - public void exportForNullDBThrowsException(@TempDir Path tempDir) { + void exportForNullDBThrowsException(@TempDir Path tempDir) { Path file = tempDir.resolve("NullDB"); assertThrows(NullPointerException.class, () -> @@ -64,13 +64,13 @@ public void exportForNullDBThrowsException(@TempDir Path tempDir) { } @Test - public void exportForNullExportPathThrowsException(@TempDir Path tempDir) { + void exportForNullExportPathThrowsException(@TempDir Path tempDir) { assertThrows(NullPointerException.class, () -> exporter.export(databaseContext, null, Collections.singletonList(bookEntry))); } @Test - public void exportForNullEntryListThrowsException(@TempDir Path tempDir) { + void exportForNullEntryListThrowsException(@TempDir Path tempDir) { Path file = tempDir.resolve("EntryNull"); assertThrows(NullPointerException.class, () -> diff --git a/src/test/java/org/jabref/logic/exporter/ExporterTest.java b/src/test/java/org/jabref/logic/exporter/ExporterTest.java index a4dda2f2127..b37dc0e377a 100644 --- a/src/test/java/org/jabref/logic/exporter/ExporterTest.java +++ b/src/test/java/org/jabref/logic/exporter/ExporterTest.java @@ -33,7 +33,7 @@ public class ExporterTest { public List entries; @BeforeEach - public void setUp() { + void setUp() { databaseContext = new BibDatabaseContext(); entries = Collections.emptyList(); } @@ -56,7 +56,7 @@ private static Stream exportFormats() { @ParameterizedTest @MethodSource("exportFormats") - public void exportingEmptyDatabaseYieldsEmptyFile(Exporter exportFormat, String name, @TempDir Path testFolder) throws Exception { + void exportingEmptyDatabaseYieldsEmptyFile(Exporter exportFormat, String name, @TempDir Path testFolder) throws Exception { Path tmpFile = testFolder.resolve("ARandomlyNamedFile"); Files.createFile(tmpFile); exportFormat.export(databaseContext, tmpFile, entries); @@ -65,7 +65,7 @@ public void exportingEmptyDatabaseYieldsEmptyFile(Exporter exportFormat, String @ParameterizedTest @MethodSource("exportFormats") - public void exportingNullDatabaseThrowsNPE(Exporter exportFormat, String name, @TempDir Path testFolder) { + void exportingNullDatabaseThrowsNPE(Exporter exportFormat, String name, @TempDir Path testFolder) { assertThrows(NullPointerException.class, () -> { Path tmpFile = testFolder.resolve("ARandomlyNamedFile"); Files.createFile(tmpFile); diff --git a/src/test/java/org/jabref/logic/exporter/HayagrivaYamlExporterTest.java b/src/test/java/org/jabref/logic/exporter/HayagrivaYamlExporterTest.java index 0b6356906e9..7244d96a326 100644 --- a/src/test/java/org/jabref/logic/exporter/HayagrivaYamlExporterTest.java +++ b/src/test/java/org/jabref/logic/exporter/HayagrivaYamlExporterTest.java @@ -21,7 +21,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; -public class HayagrivaYamlExporterTest { +class HayagrivaYamlExporterTest { private static Exporter hayagrivaYamlExporter; private static BibDatabaseContext databaseContext; @@ -42,7 +42,7 @@ static void setUp() { } @Test - public final void exportForNoEntriesWritesNothing(@TempDir Path tempFile) throws Exception { + final void exportForNoEntriesWritesNothing(@TempDir Path tempFile) throws Exception { Path file = tempFile.resolve("ThisIsARandomlyNamedFile"); Files.createFile(file); hayagrivaYamlExporter.export(databaseContext, tempFile, Collections.emptyList()); @@ -50,7 +50,7 @@ public final void exportForNoEntriesWritesNothing(@TempDir Path tempFile) throws } @Test - public final void exportsCorrectContent(@TempDir Path tempFile) throws Exception { + final void exportsCorrectContent(@TempDir Path tempFile) throws Exception { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -77,7 +77,7 @@ public final void exportsCorrectContent(@TempDir Path tempFile) throws Exception } @Test - public final void exportsCorrectMultipleAuthors(@TempDir Path tempFile) throws Exception { + final void exportsCorrectMultipleAuthors(@TempDir Path tempFile) throws Exception { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author and Other One") @@ -105,7 +105,7 @@ public final void exportsCorrectMultipleAuthors(@TempDir Path tempFile) throws E } @Test - public final void formatsContentCorrect(@TempDir Path tempFile) throws Exception { + final void formatsContentCorrect(@TempDir Path tempFile) throws Exception { BibEntry entry = new BibEntry(StandardEntryType.Misc) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -185,7 +185,7 @@ void passesModifiedCharsetNull(@TempDir Path tempFile) throws Exception { } @Test - public final void exportsCorrectParentField(@TempDir Path tempFile) throws Exception { + final void exportsCorrectParentField(@TempDir Path tempFile) throws Exception { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") diff --git a/src/test/java/org/jabref/logic/exporter/HtmlExportFormatTest.java b/src/test/java/org/jabref/logic/exporter/HtmlExportFormatTest.java index 60e3a0e07d2..72f0c5ad84c 100644 --- a/src/test/java/org/jabref/logic/exporter/HtmlExportFormatTest.java +++ b/src/test/java/org/jabref/logic/exporter/HtmlExportFormatTest.java @@ -29,7 +29,7 @@ public class HtmlExportFormatTest { private Exporter exportFormat; @BeforeEach - public void setUp() { + void setUp() { exportFormat = new TemplateExporter("HTML", "html", "html", @@ -48,12 +48,12 @@ public void setUp() { } @AfterEach - public void tearDown() { + void tearDown() { exportFormat = null; } @Test - public void emitWellFormedHtml(@TempDir Path testFolder) throws Exception { + void emitWellFormedHtml(@TempDir Path testFolder) throws Exception { Path path = testFolder.resolve("ThisIsARandomlyNamedFile"); exportFormat.export(databaseContext, path, entries); List lines = Files.readAllLines(path); diff --git a/src/test/java/org/jabref/logic/exporter/MetaDataSerializerTest.java b/src/test/java/org/jabref/logic/exporter/MetaDataSerializerTest.java index bccdca6e27b..4ce5342d071 100644 --- a/src/test/java/org/jabref/logic/exporter/MetaDataSerializerTest.java +++ b/src/test/java/org/jabref/logic/exporter/MetaDataSerializerTest.java @@ -42,7 +42,7 @@ public class MetaDataSerializerTest { private BibEntryType newCustomType; @BeforeEach - public void setUp() { + void setUp() { metaData = new MetaData(); pattern = GlobalCitationKeyPatterns.fromPattern("[auth][year]"); newCustomType = new BibEntryType( @@ -52,12 +52,12 @@ public void setUp() { } @Test - public void serializeNewMetadataReturnsEmptyMap() { + void serializeNewMetadataReturnsEmptyMap() { assertEquals(Collections.emptyMap(), MetaDataSerializer.getSerializedStringMap(metaData, pattern)); } @Test - public void serializeSingleSaveAction() { + void serializeSingleSaveAction() { FieldFormatterCleanups saveActions = new FieldFormatterCleanups(true, Collections.singletonList(new FieldFormatterCleanup(StandardField.TITLE, new LowerCaseFormatter()))); metaData.setSaveActions(saveActions); @@ -69,7 +69,7 @@ public void serializeSingleSaveAction() { } @Test - public void serializeSingleContentSelectors() { + void serializeSingleContentSelectors() { List values = List.of( "approved", "captured", diff --git a/src/test/java/org/jabref/logic/exporter/ModsExportFormatFilesTest.java b/src/test/java/org/jabref/logic/exporter/ModsExportFormatFilesTest.java index e82e8a97859..6c147d40112 100644 --- a/src/test/java/org/jabref/logic/exporter/ModsExportFormatFilesTest.java +++ b/src/test/java/org/jabref/logic/exporter/ModsExportFormatFilesTest.java @@ -52,7 +52,7 @@ public static Stream fileNames() throws Exception { } @BeforeEach - public void setUp(@TempDir Path testFolder) throws Exception { + void setUp(@TempDir Path testFolder) throws Exception { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); when(importFormatPreferences.bibEntryPreferences()).thenReturn(mock(BibEntryPreferences.class)); when(importFormatPreferences.bibEntryPreferences().getKeywordSeparator()).thenReturn(','); @@ -70,7 +70,7 @@ public void setUp(@TempDir Path testFolder) throws Exception { @ParameterizedTest @MethodSource("fileNames") - public final void performExport(String filename) throws Exception { + final void performExport(String filename) throws Exception { importFile = Path.of(ModsExportFormatFilesTest.class.getResource(filename).toURI()); String xmlFileName = filename.replace(".bib", ".xml"); List entries = bibtexImporter.importDatabase(importFile).getDatabase().getEntries(); @@ -85,7 +85,7 @@ public final void performExport(String filename) throws Exception { @ParameterizedTest @MethodSource("fileNames") - public final void exportAsModsAndThenImportAsMods(String filename) throws Exception { + final void exportAsModsAndThenImportAsMods(String filename) throws Exception { importFile = Path.of(ModsExportFormatFilesTest.class.getResource(filename).toURI()); List entries = bibtexImporter.importDatabase(importFile).getDatabase().getEntries(); @@ -95,7 +95,7 @@ public final void exportAsModsAndThenImportAsMods(String filename) throws Except @ParameterizedTest @MethodSource("fileNames") - public final void importAsModsAndExportAsMods(String filename) throws Exception { + final void importAsModsAndExportAsMods(String filename) throws Exception { importFile = Path.of(ModsExportFormatFilesTest.class.getResource(filename).toURI()); String xmlFileName = filename.replace(".bib", ".xml"); Path xmlFile = Path.of(ModsExportFormatFilesTest.class.getResource(xmlFileName).toURI()); diff --git a/src/test/java/org/jabref/logic/exporter/ModsExportFormatTest.java b/src/test/java/org/jabref/logic/exporter/ModsExportFormatTest.java index cf98c1764af..c08f76582c4 100644 --- a/src/test/java/org/jabref/logic/exporter/ModsExportFormatTest.java +++ b/src/test/java/org/jabref/logic/exporter/ModsExportFormatTest.java @@ -17,13 +17,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; -public class ModsExportFormatTest { +class ModsExportFormatTest { private ModsExporter modsExportFormat; private BibDatabaseContext databaseContext; @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { databaseContext = new BibDatabaseContext(); modsExportFormat = new ModsExporter(); new BibtexImporter(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS), new DummyFileUpdateMonitor()); @@ -31,7 +31,7 @@ public void setUp() throws Exception { } @Test - public final void exportForNoEntriesWritesNothing(@TempDir Path tempFile) throws Exception { + final void exportForNoEntriesWritesNothing(@TempDir Path tempFile) throws Exception { Path file = tempFile.resolve("ThisIsARandomlyNamedFile"); Files.createFile(file); modsExportFormat.export(databaseContext, tempFile, Collections.emptyList()); diff --git a/src/test/java/org/jabref/logic/exporter/MsBibExportFormatTest.java b/src/test/java/org/jabref/logic/exporter/MsBibExportFormatTest.java index 6096ed61647..956779c8a28 100644 --- a/src/test/java/org/jabref/logic/exporter/MsBibExportFormatTest.java +++ b/src/test/java/org/jabref/logic/exporter/MsBibExportFormatTest.java @@ -21,13 +21,13 @@ public class MsBibExportFormatTest { public MSBibExporter msBibExportFormat; @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { databaseContext = new BibDatabaseContext(); msBibExportFormat = new MSBibExporter(); } @Test - public final void performExportWithNoEntry(@TempDir Path tempFile) throws IOException, SaveException { + final void performExportWithNoEntry(@TempDir Path tempFile) throws IOException, SaveException { Path path = tempFile.resolve("ThisIsARandomlyNamedFile"); Files.createFile(path); List entries = Collections.emptyList(); diff --git a/src/test/java/org/jabref/logic/exporter/XmpExporterTest.java b/src/test/java/org/jabref/logic/exporter/XmpExporterTest.java index 05266a60aac..64eae6945a7 100644 --- a/src/test/java/org/jabref/logic/exporter/XmpExporterTest.java +++ b/src/test/java/org/jabref/logic/exporter/XmpExporterTest.java @@ -21,19 +21,19 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class XmpExporterTest { +class XmpExporterTest { private Exporter exporter; private final BibDatabaseContext databaseContext = new BibDatabaseContext(); private final XmpPreferences xmpPreferences = mock(XmpPreferences.class); @BeforeEach - public void setUp() { + void setUp() { exporter = new XmpExporter(xmpPreferences); } @Test - public void exportSingleEntry(@TempDir Path testFolder) throws Exception { + void exportSingleEntry(@TempDir Path testFolder) throws Exception { Path file = testFolder.resolve("ThisIsARandomlyNamedFile"); Files.createFile(file); @@ -63,7 +63,7 @@ public void exportSingleEntry(@TempDir Path testFolder) throws Exception { } @Test - public void writeMultipleEntriesInASingleFile(@TempDir Path testFolder) throws Exception { + void writeMultipleEntriesInASingleFile(@TempDir Path testFolder) throws Exception { Path file = testFolder.resolve("ThisIsARandomlyNamedFile"); Files.createFile(file); @@ -117,7 +117,7 @@ public void writeMultipleEntriesInASingleFile(@TempDir Path testFolder) throws E } @Test - public void writeMultipleEntriesInDifferentFiles(@TempDir Path testFolder) throws Exception { + void writeMultipleEntriesInDifferentFiles(@TempDir Path testFolder) throws Exception { // set path to the one where the exporter produces several files Path file = testFolder.resolve(XmpExporter.XMP_SPLIT_DIRECTORY_INDICATOR); Files.createFile(file); @@ -187,7 +187,7 @@ public void writeMultipleEntriesInDifferentFiles(@TempDir Path testFolder) throw } @Test - public void exportSingleEntryWithPrivacyFilter(@TempDir Path testFolder) throws Exception { + void exportSingleEntryWithPrivacyFilter(@TempDir Path testFolder) throws Exception { when(xmpPreferences.getXmpPrivacyFilter()).thenReturn(FXCollections.observableSet(Collections.singleton(StandardField.AUTHOR))); when(xmpPreferences.shouldUseXmpPrivacyFilter()).thenReturn(true); diff --git a/src/test/java/org/jabref/logic/exporter/XmpPdfExporterTest.java b/src/test/java/org/jabref/logic/exporter/XmpPdfExporterTest.java index 5eac389bfaf..c1279e2b3e1 100644 --- a/src/test/java/org/jabref/logic/exporter/XmpPdfExporterTest.java +++ b/src/test/java/org/jabref/logic/exporter/XmpPdfExporterTest.java @@ -165,7 +165,7 @@ void unsuccessfulExportToFileByPath(Path path) throws Exception { @ParameterizedTest @MethodSource("providePathToNewPDFs") - public void roundtripExportImport(Path path) throws Exception { + void roundtripExportImport(Path path) throws Exception { try (PDDocument document = new PDDocument()) { PDPage page = new PDPage(); document.addPage(page); diff --git a/src/test/java/org/jabref/logic/exporter/YamlExporterTest.java b/src/test/java/org/jabref/logic/exporter/YamlExporterTest.java index db42e79dbbc..88de5983f99 100644 --- a/src/test/java/org/jabref/logic/exporter/YamlExporterTest.java +++ b/src/test/java/org/jabref/logic/exporter/YamlExporterTest.java @@ -21,7 +21,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; -public class YamlExporterTest { +class YamlExporterTest { private static Exporter yamlExporter; private static BibDatabaseContext databaseContext; @@ -42,7 +42,7 @@ static void setUp() { } @Test - public final void exportForNoEntriesWritesNothing(@TempDir Path tempFile) throws Exception { + final void exportForNoEntriesWritesNothing(@TempDir Path tempFile) throws Exception { Path file = tempFile.resolve("ThisIsARandomlyNamedFile"); Files.createFile(file); yamlExporter.export(databaseContext, tempFile, Collections.emptyList()); @@ -50,7 +50,7 @@ public final void exportForNoEntriesWritesNothing(@TempDir Path tempFile) throws } @Test - public final void exportsCorrectContent(@TempDir Path tempFile) throws Exception { + final void exportsCorrectContent(@TempDir Path tempFile) throws Exception { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -78,7 +78,7 @@ public final void exportsCorrectContent(@TempDir Path tempFile) throws Exception } @Test - public final void formatsContentCorrect(@TempDir Path tempFile) throws Exception { + final void formatsContentCorrect(@TempDir Path tempFile) throws Exception { BibEntry entry = new BibEntry(StandardEntryType.Misc) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") diff --git a/src/test/java/org/jabref/logic/formatter/FormatterTest.java b/src/test/java/org/jabref/logic/formatter/FormatterTest.java index d93606c7a1f..d0d516941f1 100644 --- a/src/test/java/org/jabref/logic/formatter/FormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/FormatterTest.java @@ -38,7 +38,7 @@ static void setUp() { * method is not adapted. This results in duplicate keys, which this test tests for. */ @Test - public void allFormatterKeysAreUnique() { + void allFormatterKeysAreUnique() { // idea for uniqueness checking by https://stackoverflow.com/a/44032568/873282 assertEquals(Collections.emptyList(), getFormatters().collect(Collectors.groupingBy( diff --git a/src/test/java/org/jabref/logic/formatter/IdentityFormatterTest.java b/src/test/java/org/jabref/logic/formatter/IdentityFormatterTest.java index 8fb9eadf959..3a702a2ca7b 100644 --- a/src/test/java/org/jabref/logic/formatter/IdentityFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/IdentityFormatterTest.java @@ -8,17 +8,17 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class IdentityFormatterTest { +class IdentityFormatterTest { private IdentityFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new IdentityFormatter(); } @Test - public void formatExample() { + void formatExample() { assertEquals("JabRef", formatter.format(formatter.getExampleInput())); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/AddBracesFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/AddBracesFormatterTest.java index e2003e25034..9511fbeeb02 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/AddBracesFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/AddBracesFormatterTest.java @@ -13,68 +13,68 @@ class AddBracesFormatterTest { private AddBracesFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new AddBracesFormatter(); } @Test - public void formatAddsSingleEnclosingBraces() { + void formatAddsSingleEnclosingBraces() { assertEquals("{test}", formatter.format("test")); } @Test - public void formatKeepsUnmatchedBracesAtBeginning() { + void formatKeepsUnmatchedBracesAtBeginning() { assertEquals("{test", formatter.format("{test")); } @Test - public void formatKeepsUnmatchedBracesAtEnd() { + void formatKeepsUnmatchedBracesAtEnd() { assertEquals("test}", formatter.format("test}")); } @Test - public void formatKeepsShortString() { + void formatKeepsShortString() { assertEquals("t", formatter.format("t")); } @Test - public void formatKeepsEmptyString() { + void formatKeepsEmptyString() { assertEquals("", formatter.format("")); } @Test - public void formatKeepsDoubleEnclosingBraces() { + void formatKeepsDoubleEnclosingBraces() { assertEquals("{{test}}", formatter.format("{{test}}")); } @Test - public void formatKeepsTripleEnclosingBraces() { + void formatKeepsTripleEnclosingBraces() { assertEquals("{{{test}}}", formatter.format("{{{test}}}")); } @Test - public void formatKeepsNonMatchingBraces() { + void formatKeepsNonMatchingBraces() { assertEquals("{A} and {B}", formatter.format("{A} and {B}")); } @Test - public void formatKeepsOnlyMatchingBraces() { + void formatKeepsOnlyMatchingBraces() { assertEquals("{{A} and {B}}", formatter.format("{{A} and {B}}")); } @Test - public void formatDoesNotRemoveBracesInBrokenString() { + void formatDoesNotRemoveBracesInBrokenString() { // We opt here for a conservative approach although one could argue that "A} and {B}" is also a valid return assertEquals("{A} and {B}}", formatter.format("{A} and {B}}")); } @Test - public void formatExample() { + void formatExample() { assertEquals("{In CDMA}", formatter.format(formatter.getExampleInput())); } @Test - public void formatStringWithMinimalRequiredLength() { + void formatStringWithMinimalRequiredLength() { assertEquals("{AB}", formatter.format("AB")); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/ClearFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/ClearFormatterTest.java index e1c759ac635..a83f67d5a19 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/ClearFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/ClearFormatterTest.java @@ -8,12 +8,12 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class ClearFormatterTest { +class ClearFormatterTest { private ClearFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new ClearFormatter(); } @@ -21,7 +21,7 @@ public void setUp() { * Check whether the clear formatter really returns the empty string for the empty string */ @Test - public void formatReturnsEmptyForEmptyString() throws Exception { + void formatReturnsEmptyForEmptyString() throws Exception { assertEquals("", formatter.format("")); } @@ -29,12 +29,12 @@ public void formatReturnsEmptyForEmptyString() throws Exception { * Check whether the clear formatter really returns the empty string for some string */ @Test - public void formatReturnsEmptyForSomeString() throws Exception { + void formatReturnsEmptyForSomeString() throws Exception { assertEquals("", formatter.format("test")); } @Test - public void formatExample() { + void formatExample() { assertEquals("", formatter.format(formatter.getExampleInput())); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToLatexFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToLatexFormatterTest.java index e6191714d92..2780f106acc 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToLatexFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToLatexFormatterTest.java @@ -8,42 +8,42 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class HtmlToLatexFormatterTest { +class HtmlToLatexFormatterTest { private HtmlToLatexFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new HtmlToLatexFormatter(); } @Test - public void formatWithoutHtmlCharactersReturnsSameString() { + void formatWithoutHtmlCharactersReturnsSameString() { assertEquals("abc", formatter.format("abc")); } @Test - public void formatIeeeHtml() { + void formatIeeeHtml() { assertEquals("Towards situation-aware adaptive workflows: SitOPT --- A general purpose situation-aware workflow management system", formatter.format("Towards situation-aware adaptive workflows: SitOPT &#x2014; A general purpose situation-aware workflow management system")); } @Test - public void formatMultipleHtmlCharacters() { + void formatMultipleHtmlCharacters() { assertEquals("{{\\aa}}{\\\"{a}}{\\\"{o}}", formatter.format("åäö")); } @Test - public void formatCombinedAccent() { + void formatCombinedAccent() { assertEquals("{\\'{\\i}}", formatter.format("í")); } @Test - public void basic() { + void basic() { assertEquals("aaa", formatter.format("aaa")); } @Test - public void html() { + void html() { assertEquals("{\\\"{a}}", formatter.format("ä")); assertEquals("{\\\"{a}}", formatter.format("ä")); assertEquals("{\\\"{a}}", formatter.format("ä")); @@ -51,12 +51,12 @@ public void html() { } @Test - public void htmlRemoveTags() { + void htmlRemoveTags() { assertEquals("aaa", formatter.format("aaa")); } @Test - public void htmlCombiningAccents() { + void htmlCombiningAccents() { assertEquals("{\\\"{a}}", formatter.format("ä")); assertEquals("{\\\"{a}}", formatter.format("ä")); assertEquals("{\\\"{a}}b", formatter.format("äb")); @@ -64,13 +64,13 @@ public void htmlCombiningAccents() { } @Test - public void keepsSingleLessThan() { + void keepsSingleLessThan() { String text = "(p < 0.01)"; assertEquals(text, formatter.format(text)); } @Test - public void formatExample() { + void formatExample() { assertEquals("JabRef", formatter.format(formatter.getExampleInput())); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java index c66cdb6ff8d..05f49c7639c 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java @@ -9,7 +9,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class HtmlToUnicodeFormatterTest { +class HtmlToUnicodeFormatterTest { private HtmlToUnicodeFormatter formatter; @@ -28,7 +28,7 @@ private static Stream data() { } @BeforeEach - public void setUp() { + void setUp() { formatter = new HtmlToUnicodeFormatter(); } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeDateFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeDateFormatterTest.java index 92ddc83ebf3..858dac6691f 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeDateFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeDateFormatterTest.java @@ -8,132 +8,132 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class NormalizeDateFormatterTest { +class NormalizeDateFormatterTest { private NormalizeDateFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new NormalizeDateFormatter(); } @Test - public void formatDateYYYYMM0D() { + void formatDateYYYYMM0D() { assertEquals("2015-11-08", formatter.format("2015-11-08")); } @Test - public void formatDateYYYYM0D() { + void formatDateYYYYM0D() { assertEquals("2015-01-08", formatter.format("2015-1-08")); } @Test - public void formatDateYYYYMD() { + void formatDateYYYYMD() { assertEquals("2015-01-08", formatter.format("2015-1-8")); } @Test - public void formatDateYYYYMM() { + void formatDateYYYYMM() { assertEquals("2015-11", formatter.format("2015-11")); } @Test - public void formatDateYYYYM() { + void formatDateYYYYM() { assertEquals("2015-01", formatter.format("2015-1")); } @Test - public void formatDateMMYY() { + void formatDateMMYY() { assertEquals("2015-11", formatter.format("11/15")); } @Test - public void formatDateMYY() { + void formatDateMYY() { assertEquals("2015-01", formatter.format("1/15")); } @Test - public void formatDate0MYY() { + void formatDate0MYY() { assertEquals("2015-01", formatter.format("01/15")); } @Test - public void formatDateMMYYYY() { + void formatDateMMYYYY() { assertEquals("2015-11", formatter.format("11/2015")); } @Test - public void formatDateMYYYY() { + void formatDateMYYYY() { assertEquals("2015-01", formatter.format("1/2015")); } @Test - public void formatDate0MYYYY() { + void formatDate0MYYYY() { assertEquals("2015-01", formatter.format("01/2015")); } @Test - public void formatDateMMMDDCommaYYYY() { + void formatDateMMMDDCommaYYYY() { assertEquals("2015-11-08", formatter.format("November 08, 2015")); } @Test - public void formatDateMMMDCommaYYYY() { + void formatDateMMMDCommaYYYY() { assertEquals("2015-11-08", formatter.format("November 8, 2015")); } @Test - public void formatDateMMMCommaYYYY() { + void formatDateMMMCommaYYYY() { assertEquals("2015-11", formatter.format("November, 2015")); } @Test - public void formatDate0DdotMMdotYYYY() { + void formatDate0DdotMMdotYYYY() { assertEquals("2015-11-08", formatter.format("08.11.2015")); } @Test - public void formatDateDdotMMdotYYYY() { + void formatDateDdotMMdotYYYY() { assertEquals("2015-11-08", formatter.format("8.11.2015")); } @Test - public void formatDateDDdotMMdotYYYY() { + void formatDateDDdotMMdotYYYY() { assertEquals("2015-11-15", formatter.format("15.11.2015")); } @Test - public void formatDate0Ddot0MdotYYYY() { + void formatDate0Ddot0MdotYYYY() { assertEquals("2015-01-08", formatter.format("08.01.2015")); } @Test - public void formatDateDdot0MdotYYYY() { + void formatDateDdot0MdotYYYY() { assertEquals("2015-01-08", formatter.format("8.01.2015")); } @Test - public void formatDateDDdot0MdotYYYY() { + void formatDateDDdot0MdotYYYY() { assertEquals("2015-01-15", formatter.format("15.01.2015")); } @Test - public void formatDate0DdotMdotYYYY() { + void formatDate0DdotMdotYYYY() { assertEquals("2015-01-08", formatter.format("08.1.2015")); } @Test - public void formatDateDdotMdotYYYY() { + void formatDateDdotMdotYYYY() { assertEquals("2015-01-08", formatter.format("8.1.2015")); } @Test - public void formatDateDDdotMdotYYYY() { + void formatDateDDdotMdotYYYY() { assertEquals("2015-01-15", formatter.format("15.1.2015")); } @Test - public void formatExample() { + void formatExample() { assertEquals("2003-11-29", formatter.format(formatter.getExampleInput())); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeEnDashesFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeEnDashesFormatterTest.java index ace49c02398..810e6acfc5a 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeEnDashesFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeEnDashesFormatterTest.java @@ -8,47 +8,47 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class NormalizeEnDashesFormatterTest { +class NormalizeEnDashesFormatterTest { private NormalizeEnDashesFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new NormalizeEnDashesFormatter(); } @Test - public void formatExample() { + void formatExample() { assertEquals("Winery -- A Modeling Tool for TOSCA-based Cloud Applications", formatter.format(formatter.getExampleInput())); } @Test - public void formatExampleOfChangelog() { + void formatExampleOfChangelog() { assertEquals("Example -- illustrative", formatter.format("Example - illustrative")); } @Test - public void dashesWithinWordsAreKept() { + void dashesWithinWordsAreKept() { assertEquals("Example-illustrative", formatter.format("Example-illustrative")); } @Test - public void dashesPreceededByASpaceAreKept() { + void dashesPreceededByASpaceAreKept() { assertEquals("Example -illustrative", formatter.format("Example -illustrative")); } @Test - public void dashesFollowedByASpaceAreKept() { + void dashesFollowedByASpaceAreKept() { assertEquals("Example- illustrative", formatter.format("Example- illustrative")); } @Test - public void dashAtTheBeginningIsKept() { + void dashAtTheBeginningIsKept() { assertEquals("- illustrative", formatter.format("- illustrative")); } @Test - public void dashAtTheEndIsKept() { + void dashAtTheEndIsKept() { assertEquals("Example-", formatter.format("Example-")); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeMonthFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeMonthFormatterTest.java index 32d196bcc2a..4c110af58ac 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeMonthFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeMonthFormatterTest.java @@ -8,22 +8,22 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class NormalizeMonthFormatterTest { +class NormalizeMonthFormatterTest { private NormalizeMonthFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new NormalizeMonthFormatter(); } @Test - public void formatExample() { + void formatExample() { assertEquals("#dec#", formatter.format(formatter.getExampleInput())); } @Test - public void plainAprilShouldBeApril() { + void plainAprilShouldBeApril() { assertEquals("#apr#", formatter.format("#apr#")); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeNamesFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeNamesFormatterTest.java index 2c8f81058a2..3301f8a4b0a 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeNamesFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeNamesFormatterTest.java @@ -8,17 +8,17 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class NormalizeNamesFormatterTest { +class NormalizeNamesFormatterTest { private NormalizeNamesFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new NormalizeNamesFormatter(); } @Test - public void normalizeAuthorList() { + void normalizeAuthorList() { assertEquals("{Society of Automotive Engineers}", formatter.format("{Society of Automotive Engineers}")); assertEquals("{Company Name, LLC}", formatter.format("{Company Name, LLC}")); @@ -43,141 +43,141 @@ public void normalizeAuthorList() { } @Test - public void twoAuthorsSeperatedByColon() { + void twoAuthorsSeperatedByColon() { assertEquals("Bilbo, Staci and Alver, Morten", formatter.format("Staci Bilbo; Morten Alver")); } @Test - public void threeAuthorsSeperatedByColon() { + void threeAuthorsSeperatedByColon() { assertEquals("Bilbo, Staci and Alver, Morten and Name, Test", formatter.format("Staci Bilbo; Morten Alver; Test Name")); } // Test for https://github.com/JabRef/jabref/issues/318 @Test - public void threeAuthorsSeperatedByAnd() { + void threeAuthorsSeperatedByAnd() { assertEquals("Kolb, Stefan and Lenhard, J{\\\"o}rg and Wirtz, Guido", formatter.format("Stefan Kolb and J{\\\"o}rg Lenhard and Guido Wirtz")); } // Test for https://github.com/JabRef/jabref/issues/318 @Test - public void threeAuthorsSeperatedByAndWithDash() { + void threeAuthorsSeperatedByAndWithDash() { assertEquals("Jian, Heng-Yu and Xu, Z. and Chang, M.-C. F.", formatter.format("Heng-Yu Jian and Xu, Z. and Chang, M.-C.F.")); } // Test for https://github.com/JabRef/jabref/issues/318 @Test - public void threeAuthorsSeperatedByAndWithLatex() { + void threeAuthorsSeperatedByAndWithLatex() { assertEquals("Gustafsson, Oscar and DeBrunner, Linda S. and DeBrunner, Victor and Johansson, H{\\aa}kan", formatter.format("Oscar Gustafsson and Linda S. DeBrunner and Victor DeBrunner and H{\\aa}kan Johansson")); } @Test - public void lastThenInitial() { + void lastThenInitial() { assertEquals("Smith, S.", formatter.format("Smith S")); } @Test - public void lastThenInitials() { + void lastThenInitials() { assertEquals("Smith, S. H.", formatter.format("Smith SH")); } @Test - public void initialThenLast() { + void initialThenLast() { assertEquals("Smith, S.", formatter.format("S Smith")); } @Test - public void initialDotThenLast() { + void initialDotThenLast() { assertEquals("Smith, S.", formatter.format("S. Smith")); } @Test - public void initialsThenLast() { + void initialsThenLast() { assertEquals("Smith, S. H.", formatter.format("SH Smith")); } @Test - public void lastThenJuniorThenFirst() { + void lastThenJuniorThenFirst() { assertEquals("Name, della, first", formatter.format("Name, della, first")); } @Test - public void concatenationOfAuthorsWithCommas() { + void concatenationOfAuthorsWithCommas() { assertEquals("Ali Babar, M. and Dingsøyr, T. and Lago, P. and van der Vliet, H.", formatter.format("Ali Babar, M., Dingsøyr, T., Lago, P., van der Vliet, H.")); assertEquals("Ali Babar, M.", formatter.format("Ali Babar, M.")); } @Test - public void oddCountOfCommas() { + void oddCountOfCommas() { assertEquals("Ali Babar, M., Dingsøyr T. Lago P.", formatter.format("Ali Babar, M., Dingsøyr, T., Lago P.")); } @Test - public void formatExample() { + void formatExample() { assertEquals("Einstein, Albert and Turing, Alan", formatter.format(formatter.getExampleInput())); } @Test - public void nameAffixe() { + void nameAffixe() { assertEquals("Surname, jr, First and Surname2, First2", formatter.format("Surname, jr, First, Surname2, First2")); } @Test - public void avoidSpecialCharacter() { + void avoidSpecialCharacter() { assertEquals("Surname, {, First; Surname2, First2", formatter.format("Surname, {, First; Surname2, First2")); } @Test - public void andInName() { + void andInName() { assertEquals("Surname and , First, Surname2 First2", formatter.format("Surname, and , First, Surname2, First2")); } @Test - public void multipleNameAffixes() { + void multipleNameAffixes() { assertEquals("Mair, Jr, Daniel and Brühl, Sr, Daniel", formatter.format("Mair, Jr, Daniel, Brühl, Sr, Daniel")); } @Test - public void commaSeperatedNames() { + void commaSeperatedNames() { assertEquals("Bosoi, Cristina and Oliveira, Mariana and Sanchez, Rafael Ochoa and Tremblay, Mélanie and TenHave, Gabrie and Deutz, Nicoolas and Rose, Christopher F. and Bemeur, Chantal", formatter.format("Cristina Bosoi, Mariana Oliveira, Rafael Ochoa Sanchez, Mélanie Tremblay, Gabrie TenHave, Nicoolas Deutz, Christopher F. Rose, Chantal Bemeur")); } @Test - public void multipleSpaces() { + void multipleSpaces() { assertEquals("Bosoi, Cristina and Oliveira, Mariana and Sanchez, Rafael Ochoa and Tremblay, Mélanie and TenHave, Gabrie and Deutz, Nicoolas and Rose, Christopher F. and Bemeur, Chantal", formatter.format("Cristina Bosoi, Mariana Oliveira, Rafael Ochoa Sanchez , Mélanie Tremblay , Gabrie TenHave, Nicoolas Deutz, Christopher F. Rose, Chantal Bemeur")); } @Test - public void avoidPreposition() { + void avoidPreposition() { assertEquals("von Zimmer, Hans and van Oberbergern, Michael and zu Berger, Kevin", formatter.format("Hans von Zimmer, Michael van Oberbergern, Kevin zu Berger")); } @Test - public void preposition() { + void preposition() { assertEquals("von Zimmer, Hans and van Oberbergern, Michael and zu Berger, Kevin", formatter.format("Hans von Zimmer, Michael van Oberbergern, Kevin zu Berger")); } @Test - public void oneCommaUntouched() { + void oneCommaUntouched() { assertEquals("Canon der Barbar, Alexander der Große", formatter.format("Canon der Barbar, Alexander der Große")); } @Test - public void avoidNameAffixes() { + void avoidNameAffixes() { assertEquals("der Barbar, Canon and der Große, Alexander and der Alexander, Peter", formatter.format("Canon der Barbar, Alexander der Große, Peter der Alexander")); } @Test - public void upperCaseSensitiveList() { + void upperCaseSensitiveList() { assertEquals("der Barbar, Canon and der Große, Alexander", formatter.format("Canon der Barbar AND Alexander der Große")); assertEquals("der Barbar, Canon and der Große, Alexander", formatter.format("Canon der Barbar aNd Alexander der Große")); assertEquals("der Barbar, Canon and der Große, Alexander", formatter.format("Canon der Barbar AnD Alexander der Große")); } @Test - public void semiCorrectNamesWithSemicolon() { + void semiCorrectNamesWithSemicolon() { assertEquals("Last, First and Last2, First2 and Last3, First3", formatter.format("Last, First; Last2, First2; Last3, First3")); assertEquals("Last, Jr, First and Last2, First2", formatter.format("Last, Jr, First; Last2, First2")); assertEquals("Last, First and Last2, First2 and Last3, First3 and Last4, First4", formatter.format("Last, First; Last2, First2; Last3, First3; First4 Last4")); diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizePagesFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizePagesFormatterTest.java index e789d2002ec..e37409e4594 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizePagesFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizePagesFormatterTest.java @@ -12,12 +12,12 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class NormalizePagesFormatterTest { +class NormalizePagesFormatterTest { private NormalizePagesFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new NormalizePagesFormatter(); } @@ -108,7 +108,7 @@ private static Stream tests() { @ParameterizedTest @MethodSource("tests") - public void test(String expected, String input) { + void test(String expected, String input) { assertEquals(expected, formatter.format(input)); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/OrdinalsToSuperscriptFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/OrdinalsToSuperscriptFormatterTest.java index 6fffcf6ee30..a573cf4545c 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/OrdinalsToSuperscriptFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/OrdinalsToSuperscriptFormatterTest.java @@ -8,17 +8,17 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class OrdinalsToSuperscriptFormatterTest { +class OrdinalsToSuperscriptFormatterTest { private OrdinalsToSuperscriptFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new OrdinalsToSuperscriptFormatter(); } @Test - public void replacesSuperscript() { + void replacesSuperscript() { expectCorrect("1st", "1\\textsuperscript{st}"); expectCorrect("2nd", "2\\textsuperscript{nd}"); expectCorrect("3rd", "3\\textsuperscript{rd}"); @@ -27,14 +27,14 @@ public void replacesSuperscript() { } @Test - public void replaceSuperscriptsIgnoresCase() { + void replaceSuperscriptsIgnoresCase() { expectCorrect("1st", "1\\textsuperscript{st}"); expectCorrect("1ST", "1\\textsuperscript{ST}"); expectCorrect("1sT", "1\\textsuperscript{sT}"); } @Test - public void replaceSuperscriptsInMultilineStrings() { + void replaceSuperscriptsInMultilineStrings() { expectCorrect( "replace on 1st line\nand on 2nd line.", "replace on 1\\textsuperscript{st} line\nand on 2\\textsuperscript{nd} line." @@ -42,7 +42,7 @@ public void replaceSuperscriptsInMultilineStrings() { } @Test - public void replaceAllSuperscripts() { + void replaceAllSuperscripts() { expectCorrect( "1st 2nd 3rd 4th", "1\\textsuperscript{st} 2\\textsuperscript{nd} 3\\textsuperscript{rd} 4\\textsuperscript{th}" @@ -50,12 +50,12 @@ public void replaceAllSuperscripts() { } @Test - public void ignoreSuperscriptsInsideWords() { + void ignoreSuperscriptsInsideWords() { expectCorrect("1st 1stword words1st inside1stwords", "1\\textsuperscript{st} 1stword words1st inside1stwords"); } @Test - public void formatExample() { + void formatExample() { assertEquals("11\\textsuperscript{th}", formatter.format(formatter.getExampleInput())); } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveDigitsFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveDigitsFormatterTest.java index 4eed8b2c31d..5421cc8d162 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveDigitsFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveDigitsFormatterTest.java @@ -5,27 +5,27 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class RemoveDigitsFormatterTest { +class RemoveDigitsFormatterTest { private RemoveDigitsFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new RemoveDigitsFormatter(); } @Test - public void doNothingIfSingleSpace() { + void doNothingIfSingleSpace() { assertEquals("one digit", formatter.format("one 1 digit")); } @Test - public void doNothingIfNoSpace() { + void doNothingIfNoSpace() { assertEquals("two digits", formatter.format("two 01 digits")); } @Test - public void removeAllButOneSpacesIfTwo() { + void removeAllButOneSpacesIfTwo() { assertEquals("no digits", formatter.format("no digits")); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveEnclosingBracesFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveEnclosingBracesFormatterTest.java index 45f6e87373d..513c8b116ba 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveEnclosingBracesFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveEnclosingBracesFormatterTest.java @@ -9,7 +9,7 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class RemoveEnclosingBracesFormatterTest { +class RemoveEnclosingBracesFormatterTest { private final RemoveEnclosingBracesFormatter formatter = new RemoveEnclosingBracesFormatter(); @@ -28,12 +28,12 @@ public class RemoveEnclosingBracesFormatterTest { "Vall{\\'e}e Poussin, {Vall{\\'e}e Poussin}", // formatDoesNotRemoveBracesInBrokenString "Vall{\\'e}e Poussin, Vall{\\'e}e Poussin" }) - public void format(String expected, String input) { + void format(String expected, String input) { assertEquals(expected, formatter.format(input)); } @Test - public void formatExample() { + void formatExample() { assertEquals("In CDMA", formatter.format(formatter.getExampleInput())); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveHyphenatedNewlinesFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveHyphenatedNewlinesFormatterTest.java index 29022f686c7..4eda529c941 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveHyphenatedNewlinesFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveHyphenatedNewlinesFormatterTest.java @@ -5,29 +5,29 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class RemoveHyphenatedNewlinesFormatterTest { +class RemoveHyphenatedNewlinesFormatterTest { private RemoveHyphenatedNewlinesFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new RemoveHyphenatedNewlinesFormatter(); } @Test - public void removeHyphensBeforeNewlines() { + void removeHyphensBeforeNewlines() { assertEquals("water", formatter.format("wa-\nter")); assertEquals("water", formatter.format("wa-\r\nter")); assertEquals("water", formatter.format("wa-\rter")); } @Test - public void withoutHyphensUnmodified() { + void withoutHyphensUnmodified() { assertEquals("water", formatter.format("water")); } @Test - public void removeHyphensBeforePlatformSpecificNewlines() { + void removeHyphensBeforePlatformSpecificNewlines() { String newLine = "%n".formatted(); assertEquals("water", formatter.format("wa-" + newLine + "ter")); } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveNewlinesFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveNewlinesFormatterTest.java index bdfb0612521..777af811194 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveNewlinesFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveNewlinesFormatterTest.java @@ -6,37 +6,37 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class RemoveNewlinesFormatterTest { +class RemoveNewlinesFormatterTest { private RemoveNewlinesFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new RemoveNewlinesFormatter(); } @Test - public void removeCarriageReturnLineFeed() { + void removeCarriageReturnLineFeed() { assertEquals("rn linebreak", formatter.format("rn\r\nlinebreak")); } @Test - public void removeCarriageReturn() { + void removeCarriageReturn() { assertEquals("r linebreak", formatter.format("r\rlinebreak")); } @Test - public void removeLineFeed() { + void removeLineFeed() { assertEquals("n linebreak", formatter.format("n\nlinebreak")); } @Test - public void withoutNewLineUnmodified() { + void withoutNewLineUnmodified() { assertEquals("no linebreak", formatter.format("no linebreak")); } @Test - public void removePlatformSpecificNewLine() { + void removePlatformSpecificNewLine() { String newLine = "%n".formatted(); assertEquals("linebreak on current platform", formatter.format("linebreak on" + newLine + "current platform")); } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveRedundantSpacesFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveRedundantSpacesFormatterTest.java index b4b4d1e2461..17cf9721f1d 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveRedundantSpacesFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveRedundantSpacesFormatterTest.java @@ -5,32 +5,32 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class RemoveRedundantSpacesFormatterTest { +class RemoveRedundantSpacesFormatterTest { private RemoveRedundantSpacesFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new RemoveRedundantSpacesFormatter(); } @Test - public void doNothingIfSingleSpace() { + void doNothingIfSingleSpace() { assertEquals("single space", formatter.format("single space")); } @Test - public void doNothingIfNoSpace() { + void doNothingIfNoSpace() { assertEquals("nospace", formatter.format("nospace")); } @Test - public void removeAllButOneSpacesIfTwo() { + void removeAllButOneSpacesIfTwo() { assertEquals("two spaces", formatter.format("two spaces")); } @Test - public void removeAllButOneSpacesIfThree() { + void removeAllButOneSpacesIfThree() { assertEquals("three spaces", formatter.format("three spaces")); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveWordEnclosingAndOuterEnclosingBracesFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveWordEnclosingAndOuterEnclosingBracesFormatterTest.java index 036268c7929..8437c89faa8 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveWordEnclosingAndOuterEnclosingBracesFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveWordEnclosingAndOuterEnclosingBracesFormatterTest.java @@ -6,7 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class RemoveWordEnclosingAndOuterEnclosingBracesFormatterTest { +class RemoveWordEnclosingAndOuterEnclosingBracesFormatterTest { private final RemoveWordEnclosingAndOuterEnclosingBracesFormatter formatter = new RemoveWordEnclosingAndOuterEnclosingBracesFormatter(); @ParameterizedTest @@ -20,12 +20,12 @@ public class RemoveWordEnclosingAndOuterEnclosingBracesFormatterTest { "Vall{\\'e}e Poussin, {Vall{\\'e}e Poussin}", "Vall{\\'e}e Poussin, Vall{\\'e}e Poussin" }) - public void format(String expected, String input) { + void format(String expected, String input) { assertEquals(expected, formatter.format(input)); } @Test - public void formatExample() { + void formatExample() { assertEquals("In CDMA", formatter.format(formatter.getExampleInput())); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/ReplaceTabsBySpaceFormaterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/ReplaceTabsBySpaceFormaterTest.java index cf902fdd3ee..b6e233c846a 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/ReplaceTabsBySpaceFormaterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/ReplaceTabsBySpaceFormaterTest.java @@ -6,27 +6,27 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class ReplaceTabsBySpaceFormaterTest { +class ReplaceTabsBySpaceFormaterTest { private ReplaceTabsBySpaceFormater formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new ReplaceTabsBySpaceFormater(); } @Test - public void removeSingleTab() { + void removeSingleTab() { assertEquals("single tab", formatter.format("single\ttab")); } @Test - public void removeMultipleTabs() { + void removeMultipleTabs() { assertEquals("multiple tabs", formatter.format("multiple\t\ttabs")); } @Test - public void doNothingIfNoTab() { + void doNothingIfNoTab() { assertEquals("notab", formatter.format("notab")); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/ReplaceWithEscapedDoubleQuotesTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/ReplaceWithEscapedDoubleQuotesTest.java index ed1f6bcf5bd..7ba7ec2bb09 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/ReplaceWithEscapedDoubleQuotesTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/ReplaceWithEscapedDoubleQuotesTest.java @@ -7,32 +7,32 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class ReplaceWithEscapedDoubleQuotesTest { +class ReplaceWithEscapedDoubleQuotesTest { private ReplaceWithEscapedDoubleQuotes formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new ReplaceWithEscapedDoubleQuotes(); } @Test - public void replacingSingleDoubleQuote() { + void replacingSingleDoubleQuote() { assertEquals("single \"\"double quote", formatter.format("single \"double quote")); } @Test - public void replacingMultipleDoubleQuote() { + void replacingMultipleDoubleQuote() { assertEquals("multiple \"\"double\"\" quote", formatter.format("multiple \"double\" quote")); } - + @Test - public void replacingSingleDoubleQuoteHavingCommas() { + void replacingSingleDoubleQuoteHavingCommas() { assertEquals("this \"\"is\"\", a test", formatter.format("this \"is\", a test")); } @Test - public void doNothing() { + void doNothing() { assertEquals("this is a test", formatter.format("this is a test")); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/ShortenDOIFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/ShortenDOIFormatterTest.java index 15ea8081908..950774f8fc0 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/ShortenDOIFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/ShortenDOIFormatterTest.java @@ -13,22 +13,22 @@ class ShortenDOIFormatterTest { private ShortenDOIFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new ShortenDOIFormatter(); } @Test - public void formatDoi() { + void formatDoi() { assertEquals("10/adc", formatter.format("10.1006/jmbi.1998.2354")); } @Test - public void invalidDoiIsKept() { + void invalidDoiIsKept() { assertEquals("invalid-doi", formatter.format("invalid-doi")); } @Test - public void shortDoi() { + void shortDoi() { assertEquals("10/adc", formatter.format("10/adc")); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/TrimWhitespaceFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/TrimWhitespaceFormatterTest.java index 3154a1a91fb..48798526272 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/TrimWhitespaceFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/TrimWhitespaceFormatterTest.java @@ -6,52 +6,52 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class TrimWhitespaceFormatterTest { +class TrimWhitespaceFormatterTest { private TrimWhitespaceFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new TrimWhitespaceFormatter(); } @Test - public void removeHorizontalTabulations() { + void removeHorizontalTabulations() { assertEquals("whitespace", formatter.format("\twhitespace")); assertEquals("whitespace", formatter.format("whitespace\t")); assertEquals("whitespace", formatter.format("\twhitespace\t\t")); } @Test - public void removeLineFeeds() { + void removeLineFeeds() { assertEquals("whitespace", formatter.format("\nwhitespace")); assertEquals("whitespace", formatter.format("whitespace\n")); assertEquals("whitespace", formatter.format("\nwhitespace\n\n")); } @Test - public void removeFormFeeds() { + void removeFormFeeds() { assertEquals("whitespace", formatter.format("\fwhitespace")); assertEquals("whitespace", formatter.format("whitespace\f")); assertEquals("whitespace", formatter.format("\fwhitespace\f\f")); } @Test - public void removeCarriageReturnFeeds() { + void removeCarriageReturnFeeds() { assertEquals("whitespace", formatter.format("\rwhitespace")); assertEquals("whitespace", formatter.format("whitespace\r")); assertEquals("whitespace", formatter.format("\rwhitespace\r\r")); } @Test - public void removeSeparatorSpaces() { + void removeSeparatorSpaces() { assertEquals("whitespace", formatter.format(" whitespace")); assertEquals("whitespace", formatter.format("whitespace ")); assertEquals("whitespace", formatter.format(" whitespace ")); } @Test - public void removeMixedWhitespaceChars() { + void removeMixedWhitespaceChars() { assertEquals("whitespace", formatter.format(" \r\t\fwhitespace")); assertEquals("whitespace", formatter.format("whitespace \n \r")); assertEquals("whitespace", formatter.format(" \f\t whitespace \r \n")); diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/UnicodeConverterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/UnicodeConverterTest.java index 08443edb568..12d8177ce79 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/UnicodeConverterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/UnicodeConverterTest.java @@ -8,34 +8,34 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class UnicodeConverterTest { +class UnicodeConverterTest { private UnicodeToLatexFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new UnicodeToLatexFormatter(); } @Test - public void basic() { + void basic() { assertEquals("aaa", formatter.format("aaa")); } @Test - public void unicodeCombiningAccents() { + void unicodeCombiningAccents() { assertEquals("{\\\"{a}}", formatter.format("a\u0308")); assertEquals("{\\\"{a}}b", formatter.format("a\u0308b")); } @Test - public void unicode() { + void unicode() { assertEquals("{\\\"{a}}", formatter.format("ä")); assertEquals("{{$\\Epsilon$}}", formatter.format("\u0395")); } @Test - public void unicodeSingle() { + void unicodeSingle() { assertEquals("a", formatter.format("a")); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/UnitsToLatexFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/UnitsToLatexFormatterTest.java index 292a79b7869..7ee0ce1899c 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/UnitsToLatexFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/UnitsToLatexFormatterTest.java @@ -8,23 +8,23 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class UnitsToLatexFormatterTest { +class UnitsToLatexFormatterTest { private UnitsToLatexFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new UnitsToLatexFormatter(); } @Test - public void test() { + void test() { assertEquals("1~{A}", formatter.format("1 A")); assertEquals("1\\mbox{-}{mA}", formatter.format("1-mA")); } @Test - public void formatExample() { + void formatExample() { assertEquals("1~{Hz}", formatter.format(formatter.getExampleInput())); } } diff --git a/src/test/java/org/jabref/logic/formatter/casechanger/CapitalizeFormatterTest.java b/src/test/java/org/jabref/logic/formatter/casechanger/CapitalizeFormatterTest.java index f7773ace883..187a858d49f 100644 --- a/src/test/java/org/jabref/logic/formatter/casechanger/CapitalizeFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/casechanger/CapitalizeFormatterTest.java @@ -10,17 +10,17 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class CapitalizeFormatterTest { +class CapitalizeFormatterTest { private CapitalizeFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new CapitalizeFormatter(); } @Test - public void formatExample() { + void formatExample() { assertEquals("I Have {a} Dream", formatter.format(formatter.getExampleInput())); } @@ -51,7 +51,7 @@ public void formatExample() { "-upper, -Upper", // single word with - "-{u}pper, -{u}pper", // single word with {} and - }) - public void inputs(String input, String expectedResult) { + void inputs(String input, String expectedResult) { String formattedStr = formatter.format(input); assertEquals(expectedResult, formattedStr); } diff --git a/src/test/java/org/jabref/logic/formatter/casechanger/LowerCaseFormatterTest.java b/src/test/java/org/jabref/logic/formatter/casechanger/LowerCaseFormatterTest.java index 55eb22e6451..531ab2c9b30 100644 --- a/src/test/java/org/jabref/logic/formatter/casechanger/LowerCaseFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/casechanger/LowerCaseFormatterTest.java @@ -13,18 +13,18 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class LowerCaseFormatterTest { +class LowerCaseFormatterTest { private LowerCaseFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new LowerCaseFormatter(); } @ParameterizedTest @MethodSource("provideStringsForFormat") - public void test(String expected, String input) { + void test(String expected, String input) { assertEquals(expected, formatter.format(input)); } @@ -38,7 +38,7 @@ private static Stream provideStringsForFormat() { } @Test - public void formatExample() { + void formatExample() { assertEquals("kde {Amarok}", formatter.format(formatter.getExampleInput())); } } diff --git a/src/test/java/org/jabref/logic/formatter/casechanger/ProtectTermsFormatterTest.java b/src/test/java/org/jabref/logic/formatter/casechanger/ProtectTermsFormatterTest.java index 766ba96dded..086edaaf542 100644 --- a/src/test/java/org/jabref/logic/formatter/casechanger/ProtectTermsFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/casechanger/ProtectTermsFormatterTest.java @@ -13,44 +13,44 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class ProtectTermsFormatterTest { +class ProtectTermsFormatterTest { private ProtectTermsFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new ProtectTermsFormatter( new ProtectedTermsLoader(new ProtectedTermsPreferences(ProtectedTermsLoader.getInternalLists(), Collections.emptyList(), Collections.emptyList(), Collections.emptyList()))); } @Test - public void singleWord() { + void singleWord() { assertEquals("{VLSI}", formatter.format("VLSI")); } @Test - public void doNotProtectAlreadyProtected() { + void doNotProtectAlreadyProtected() { assertEquals("{VLSI}", formatter.format("{VLSI}")); } @Test - public void caseSensitivity() { + void caseSensitivity() { assertEquals("VLsI", formatter.format("VLsI")); } @Test - public void formatExample() { + void formatExample() { assertEquals("In {CDMA}", formatter.format(formatter.getExampleInput())); } @Test - public void correctOrderingOfTerms() { + void correctOrderingOfTerms() { assertEquals("{3GPP} {3G}", formatter.format("3GPP 3G")); } @Test - public void test() { + void test() { assertEquals("{VLSI} {VLSI}", formatter.format("VLSI {VLSI}")); assertEquals("{BPEL}", formatter.format("{BPEL}")); assertEquals("{Testing {BPEL} Engine Performance: A Survey}", diff --git a/src/test/java/org/jabref/logic/formatter/casechanger/SentenceCaseFormatterTest.java b/src/test/java/org/jabref/logic/formatter/casechanger/SentenceCaseFormatterTest.java index 38bea3eca23..e3bf31a964c 100644 --- a/src/test/java/org/jabref/logic/formatter/casechanger/SentenceCaseFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/casechanger/SentenceCaseFormatterTest.java @@ -12,12 +12,12 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class SentenceCaseFormatterTest { +class SentenceCaseFormatterTest { private SentenceCaseFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new SentenceCaseFormatter(); } @@ -44,7 +44,7 @@ private static Stream testData() { @ParameterizedTest @MethodSource("testData") - public void test(String expected, String input) { + void test(String expected, String input) { assertEquals(expected, formatter.format(input)); } } diff --git a/src/test/java/org/jabref/logic/formatter/casechanger/TitleCaseFormatterTest.java b/src/test/java/org/jabref/logic/formatter/casechanger/TitleCaseFormatterTest.java index 2538af947a2..0c7906a75f7 100644 --- a/src/test/java/org/jabref/logic/formatter/casechanger/TitleCaseFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/casechanger/TitleCaseFormatterTest.java @@ -12,12 +12,12 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class TitleCaseFormatterTest { +class TitleCaseFormatterTest { private TitleCaseFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new TitleCaseFormatter(); } @@ -65,7 +65,7 @@ private static Stream testData() { @ParameterizedTest @MethodSource("testData") - public void test(String expected, String input) { + void test(String expected, String input) { assertEquals(expected, formatter.format(input)); } } diff --git a/src/test/java/org/jabref/logic/formatter/casechanger/UnprotectTermsFormatterTest.java b/src/test/java/org/jabref/logic/formatter/casechanger/UnprotectTermsFormatterTest.java index 5c7e0979789..8d0b07ba838 100644 --- a/src/test/java/org/jabref/logic/formatter/casechanger/UnprotectTermsFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/casechanger/UnprotectTermsFormatterTest.java @@ -13,12 +13,12 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class UnprotectTermsFormatterTest { +class UnprotectTermsFormatterTest { private UnprotectTermsFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new UnprotectTermsFormatter(); } @@ -40,7 +40,7 @@ private static Stream terms() throws IOException { @ParameterizedTest @MethodSource("terms") - public void test(String expected, String toFormat) { + void test(String expected, String toFormat) { assertEquals(expected, formatter.format(toFormat)); } } diff --git a/src/test/java/org/jabref/logic/formatter/casechanger/UpperCaseFormatterTest.java b/src/test/java/org/jabref/logic/formatter/casechanger/UpperCaseFormatterTest.java index c1397603348..0a4cde56fb9 100644 --- a/src/test/java/org/jabref/logic/formatter/casechanger/UpperCaseFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/casechanger/UpperCaseFormatterTest.java @@ -12,13 +12,13 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class UpperCaseFormatterTest { +class UpperCaseFormatterTest { private UpperCaseFormatter formatter = new UpperCaseFormatter(); @ParameterizedTest @MethodSource("upperCaseTests") - public void upperCaseTest(String expectedFormat, String inputFormat) { + void upperCaseTest(String expectedFormat, String inputFormat) { assertEquals(expectedFormat, formatter.format(inputFormat)); } @@ -35,7 +35,7 @@ private static Stream upperCaseTests() { } @Test - public void formatExample() { + void formatExample() { assertEquals("KDE {Amarok}", formatter.format(formatter.getExampleInput())); } } diff --git a/src/test/java/org/jabref/logic/formatter/minifier/MinifyNameListFormatterTest.java b/src/test/java/org/jabref/logic/formatter/minifier/MinifyNameListFormatterTest.java index eccff6f9f15..d3d8f9a24cc 100644 --- a/src/test/java/org/jabref/logic/formatter/minifier/MinifyNameListFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/minifier/MinifyNameListFormatterTest.java @@ -12,12 +12,12 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class MinifyNameListFormatterTest { +class MinifyNameListFormatterTest { private MinifyNameListFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new MinifyNameListFormatter(); } diff --git a/src/test/java/org/jabref/logic/formatter/minifier/TruncateFormatterTest.java b/src/test/java/org/jabref/logic/formatter/minifier/TruncateFormatterTest.java index e6a5f50b1f3..deb94603f28 100644 --- a/src/test/java/org/jabref/logic/formatter/minifier/TruncateFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/minifier/TruncateFormatterTest.java @@ -8,7 +8,7 @@ /** * Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest} */ -public class TruncateFormatterTest { +class TruncateFormatterTest { private final String TITLE = "A Title"; @Test diff --git a/src/test/java/org/jabref/logic/git/GitHandlerTest.java b/src/test/java/org/jabref/logic/git/GitHandlerTest.java index d5dd4c694c3..fb3ff026bf1 100644 --- a/src/test/java/org/jabref/logic/git/GitHandlerTest.java +++ b/src/test/java/org/jabref/logic/git/GitHandlerTest.java @@ -22,7 +22,7 @@ class GitHandlerTest { private GitHandler gitHandler; @BeforeEach - public void setUpGitHandler() { + void setUpGitHandler() { gitHandler = new GitHandler(repositoryPath); } diff --git a/src/test/java/org/jabref/logic/git/SlrGitHandlerTest.java b/src/test/java/org/jabref/logic/git/SlrGitHandlerTest.java index af4b13a1f1b..c73ec6823fd 100644 --- a/src/test/java/org/jabref/logic/git/SlrGitHandlerTest.java +++ b/src/test/java/org/jabref/logic/git/SlrGitHandlerTest.java @@ -23,7 +23,7 @@ class SlrGitHandlerTest { private SlrGitHandler gitHandler; @BeforeEach - public void setUpGitHandler() { + void setUpGitHandler() { gitHandler = new SlrGitHandler(repositoryPath); } diff --git a/src/test/java/org/jabref/logic/importer/AuthorListParserTest.java b/src/test/java/org/jabref/logic/importer/AuthorListParserTest.java index c83ff72598a..7fe5f4020be 100644 --- a/src/test/java/org/jabref/logic/importer/AuthorListParserTest.java +++ b/src/test/java/org/jabref/logic/importer/AuthorListParserTest.java @@ -49,12 +49,12 @@ void parseSingleAuthorCorrectly(String authorsString, Author authorsParsed) { } @Test - public void dashedNamesWithoutSpaceNormalized() { + void dashedNamesWithoutSpaceNormalized() { assertEquals(Optional.of("Z. Yao and D. S. Weld and W-P. Chen and H. Sun"), AuthorListParser.normalizeSimply("Z. Yao, D. S. Weld, W-P. Chen, and H. Sun")); } @Test - public void dashedNamesWithSpaceNormalized() { + void dashedNamesWithSpaceNormalized() { assertEquals(Optional.of("Z. Yao and D. S. Weld and W.-P. Chen and H. Sun"), AuthorListParser.normalizeSimply("Z. Yao, D. S. Weld, W.-P. Chen, and H. Sun")); } diff --git a/src/test/java/org/jabref/logic/importer/BibDatabaseFilesTest.java b/src/test/java/org/jabref/logic/importer/BibDatabaseFilesTest.java index e7301dcc905..fe4a73946ba 100644 --- a/src/test/java/org/jabref/logic/importer/BibDatabaseFilesTest.java +++ b/src/test/java/org/jabref/logic/importer/BibDatabaseFilesTest.java @@ -15,17 +15,17 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; -public class BibDatabaseFilesTest { +class BibDatabaseFilesTest { private ImportFormatPreferences importFormatPreferences; @BeforeEach - public void setUp() { + void setUp() { importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); } @Test - public void resolveStrings() throws IOException { + void resolveStrings() throws IOException { try (FileInputStream stream = new FileInputStream("src/test/resources/org/jabref/util/twente.bib"); InputStreamReader fr = new InputStreamReader(stream, StandardCharsets.UTF_8)) { ParserResult result = new BibtexParser(importFormatPreferences).parse(fr); diff --git a/src/test/java/org/jabref/logic/importer/FulltextFetchersTest.java b/src/test/java/org/jabref/logic/importer/FulltextFetchersTest.java index a8aa3b7628d..c7e7a9bb7b9 100644 --- a/src/test/java/org/jabref/logic/importer/FulltextFetchersTest.java +++ b/src/test/java/org/jabref/logic/importer/FulltextFetchersTest.java @@ -18,12 +18,12 @@ import static org.mockito.Mockito.when; @FetcherTest -public class FulltextFetchersTest { +class FulltextFetchersTest { private BibEntry entry = new BibEntry(); @Test - public void acceptPdfUrls() throws MalformedURLException { + void acceptPdfUrls() throws MalformedURLException { URL pdfUrl = new URL("http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.pdf"); FulltextFetcher finder = e -> Optional.of(pdfUrl); FulltextFetchers fetcher = new FulltextFetchers(Set.of(finder)); @@ -31,7 +31,7 @@ public void acceptPdfUrls() throws MalformedURLException { } @Test - public void rejectNonPdfUrls() throws MalformedURLException { + void rejectNonPdfUrls() throws MalformedURLException { URL pdfUrl = new URL("https://github.com/JabRef/jabref/blob/master/README.md"); FulltextFetcher finder = e -> Optional.of(pdfUrl); FulltextFetchers fetcher = new FulltextFetchers(Set.of(finder)); @@ -40,7 +40,7 @@ public void rejectNonPdfUrls() throws MalformedURLException { } @Test - public void noTrustLevel() throws MalformedURLException { + void noTrustLevel() throws MalformedURLException { URL pdfUrl = new URL("http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.pdf"); FulltextFetcher finder = e -> Optional.of(pdfUrl); FulltextFetchers fetcher = new FulltextFetchers(Set.of(finder)); @@ -49,7 +49,7 @@ public void noTrustLevel() throws MalformedURLException { } @Test - public void higherTrustLevelWins() throws IOException, FetcherException { + void higherTrustLevelWins() throws IOException, FetcherException { FulltextFetcher finderHigh = mock(FulltextFetcher.class); when(finderHigh.getTrustLevel()).thenReturn(TrustLevel.SOURCE); final URL highUrl = new URL("http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.pdf"); diff --git a/src/test/java/org/jabref/logic/importer/ImporterTest.java b/src/test/java/org/jabref/logic/importer/ImporterTest.java index 912ae206c17..aaff89c967a 100644 --- a/src/test/java/org/jabref/logic/importer/ImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/ImporterTest.java @@ -39,56 +39,56 @@ public class ImporterTest { @ParameterizedTest @MethodSource("instancesToTest") - public void isRecognizedFormatWithNullForBufferedReaderThrowsException(Importer format) { + void isRecognizedFormatWithNullForBufferedReaderThrowsException(Importer format) { assertThrows(NullPointerException.class, () -> format.isRecognizedFormat((BufferedReader) null)); } @ParameterizedTest @MethodSource("instancesToTest") - public void isRecognizedFormatWithNullForStringThrowsException(Importer format) { + void isRecognizedFormatWithNullForStringThrowsException(Importer format) { assertThrows(NullPointerException.class, () -> format.isRecognizedFormat((String) null)); } @ParameterizedTest @MethodSource("instancesToTest") - public void importDatabaseWithNullForBufferedReaderThrowsException(Importer format) { + void importDatabaseWithNullForBufferedReaderThrowsException(Importer format) { assertThrows(NullPointerException.class, () -> format.importDatabase((BufferedReader) null)); } @ParameterizedTest @MethodSource("instancesToTest") - public void importDatabaseWithNullForStringThrowsException(Importer format) { + void importDatabaseWithNullForStringThrowsException(Importer format) { assertThrows(NullPointerException.class, () -> format.importDatabase((String) null)); } @ParameterizedTest @MethodSource("instancesToTest") - public void getFormatterNameDoesNotReturnNull(Importer format) { + void getFormatterNameDoesNotReturnNull(Importer format) { assertNotNull(format.getName()); } @ParameterizedTest @MethodSource("instancesToTest") - public void getFileTypeDoesNotReturnNull(Importer format) { + void getFileTypeDoesNotReturnNull(Importer format) { assertNotNull(format.getFileType()); } @ParameterizedTest @MethodSource("instancesToTest") - public void getIdDoesNotReturnNull(Importer format) { + void getIdDoesNotReturnNull(Importer format) { assertNotNull(format.getId()); } @ParameterizedTest @MethodSource("instancesToTest") - public void getIdDoesNotContainWhitespace(Importer format) { + void getIdDoesNotContainWhitespace(Importer format) { Pattern whitespacePattern = Pattern.compile("\\s"); assertFalse(whitespacePattern.matcher(format.getId()).find()); } @ParameterizedTest @MethodSource("instancesToTest") - public void getIdStripsSpecialCharactersAndConvertsToLowercase(Importer format) { + void getIdStripsSpecialCharactersAndConvertsToLowercase(Importer format) { Importer importer = mock(Importer.class, Mockito.CALLS_REAL_METHODS); when(importer.getName()).thenReturn("*Test-Importer"); assertEquals("testimporter", importer.getId()); @@ -96,7 +96,7 @@ public void getIdStripsSpecialCharactersAndConvertsToLowercase(Importer format) @ParameterizedTest @MethodSource("instancesToTest") - public void getDescriptionDoesNotReturnNull(Importer format) { + void getDescriptionDoesNotReturnNull(Importer format) { assertNotNull(format.getDescription()); } diff --git a/src/test/java/org/jabref/logic/importer/ParserResultTest.java b/src/test/java/org/jabref/logic/importer/ParserResultTest.java index aa95c9c5bd8..0e14f538ac8 100644 --- a/src/test/java/org/jabref/logic/importer/ParserResultTest.java +++ b/src/test/java/org/jabref/logic/importer/ParserResultTest.java @@ -34,7 +34,7 @@ void isNotEmptyForBibDatabaseWithOneEntry() { } @Test - public void warningsAddedMatchErrorMessage() { + void warningsAddedMatchErrorMessage() { ParserResult parserResult = new ParserResult(); parserResult.addWarning("Warning 1 "); parserResult.addWarning("Warning 2 "); @@ -42,13 +42,13 @@ public void warningsAddedMatchErrorMessage() { } @Test - public void hasEmptyMessageForNoWarnings() { + void hasEmptyMessageForNoWarnings() { ParserResult parserResult = new ParserResult(); assertEquals("", parserResult.getErrorMessage()); } @Test - public void doesNotHaveDuplicateWarnings() { + void doesNotHaveDuplicateWarnings() { ParserResult parserResult = new ParserResult(); parserResult.addWarning("Duplicate Warning"); parserResult.addWarning("Duplicate Warning"); @@ -56,7 +56,7 @@ public void doesNotHaveDuplicateWarnings() { } @Test - public void warningAddedForWhitespaceInCitationKeyImport(@TempDir Path tmpDir) throws IOException { + void warningAddedForWhitespaceInCitationKeyImport(@TempDir Path tmpDir) throws IOException { // whitespace after citation key "myArticle " String bibtexEntry = """ @article{ myArticle , @@ -75,7 +75,7 @@ public void warningAddedForWhitespaceInCitationKeyImport(@TempDir Path tmpDir) t } @Test - public void warningAddedForMissingCommaInCitationKeyImport(@TempDir Path tmpDir) throws IOException { + void warningAddedForMissingCommaInCitationKeyImport(@TempDir Path tmpDir) throws IOException { // Comma replaced by whitespace instead in citation key "myArticle " String bibtexEntry = """ @article{myArticle\s @@ -94,7 +94,7 @@ public void warningAddedForMissingCommaInCitationKeyImport(@TempDir Path tmpDir) } @Test - public void warningAddedForCorruptedCitationKeyInImport(@TempDir Path tmpDir) throws IOException { + void warningAddedForCorruptedCitationKeyInImport(@TempDir Path tmpDir) throws IOException { String bibtexEntry = """ @article{myArticle author = "Author Name", @@ -113,7 +113,7 @@ public void warningAddedForCorruptedCitationKeyInImport(@TempDir Path tmpDir) th } @Test - public void skipsImportEntryForImproperSyntax(@TempDir Path tmpDir) throws IOException { + void skipsImportEntryForImproperSyntax(@TempDir Path tmpDir) throws IOException { // Comma after '=' character on line 2 throws error String bibtexEntry = """ @article{myArticle, diff --git a/src/test/java/org/jabref/logic/importer/QueryParserTest.java b/src/test/java/org/jabref/logic/importer/QueryParserTest.java index acb8c41a40c..9ad2f8fe371 100644 --- a/src/test/java/org/jabref/logic/importer/QueryParserTest.java +++ b/src/test/java/org/jabref/logic/importer/QueryParserTest.java @@ -6,67 +6,67 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class QueryParserTest { +class QueryParserTest { QueryParser parser = new QueryParser(); @Test - public void convertAuthorField() { + void convertAuthorField() { ComplexSearchQuery searchQuery = parser.parseQueryStringIntoComplexQuery("author:\"Igor Steinmacher\"").get(); ComplexSearchQuery expectedQuery = ComplexSearchQuery.builder().author("\"Igor Steinmacher\"").build(); assertEquals(expectedQuery, searchQuery); } @Test - public void convertDefaultField() { + void convertDefaultField() { ComplexSearchQuery searchQuery = parser.parseQueryStringIntoComplexQuery("\"default value\"").get(); ComplexSearchQuery expectedQuery = ComplexSearchQuery.builder().defaultFieldPhrase("\"default value\"").build(); assertEquals(expectedQuery, searchQuery); } @Test - public void convertExplicitDefaultField() { + void convertExplicitDefaultField() { ComplexSearchQuery searchQuery = parser.parseQueryStringIntoComplexQuery("default:\"default value\"").get(); ComplexSearchQuery expectedQuery = ComplexSearchQuery.builder().defaultFieldPhrase("\"default value\"").build(); assertEquals(expectedQuery, searchQuery); } @Test - public void convertJournalField() { + void convertJournalField() { ComplexSearchQuery searchQuery = parser.parseQueryStringIntoComplexQuery("journal:Nature").get(); ComplexSearchQuery expectedQuery = ComplexSearchQuery.builder().journal("\"Nature\"").build(); assertEquals(expectedQuery, searchQuery); } @Test - public void convertAlphabeticallyFirstJournalField() { + void convertAlphabeticallyFirstJournalField() { ComplexSearchQuery searchQuery = parser.parseQueryStringIntoComplexQuery("journal:Nature journal:\"Complex Networks\"").get(); ComplexSearchQuery expectedQuery = ComplexSearchQuery.builder().journal("\"Complex Networks\"").build(); assertEquals(expectedQuery, searchQuery); } @Test - public void convertYearField() { + void convertYearField() { ComplexSearchQuery searchQuery = parser.parseQueryStringIntoComplexQuery("year:2015").get(); ComplexSearchQuery expectedQuery = ComplexSearchQuery.builder().singleYear(2015).build(); assertEquals(expectedQuery, searchQuery); } @Test - public void convertNumericallyFirstYearField() { + void convertNumericallyFirstYearField() { ComplexSearchQuery searchQuery = parser.parseQueryStringIntoComplexQuery("year:2015 year:2014").get(); ComplexSearchQuery expectedQuery = ComplexSearchQuery.builder().singleYear(2014).build(); assertEquals(expectedQuery, searchQuery); } @Test - public void convertYearRangeField() { + void convertYearRangeField() { ComplexSearchQuery searchQuery = parser.parseQueryStringIntoComplexQuery("year-range:2012-2015").get(); ComplexSearchQuery expectedQuery = ComplexSearchQuery.builder().fromYearAndToYear(2012, 2015).build(); assertEquals(expectedQuery, searchQuery); } @Test - public void convertMultipleValuesWithTheSameField() { + void convertMultipleValuesWithTheSameField() { ComplexSearchQuery searchQuery = parser.parseQueryStringIntoComplexQuery("author:\"Igor Steinmacher\" author:\"Christoph Treude\"").get(); ComplexSearchQuery expectedQuery = ComplexSearchQuery.builder().author("\"Igor Steinmacher\"").author("\"Christoph Treude\"").build(); assertEquals(expectedQuery, searchQuery); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/ArXivFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/ArXivFetcherTest.java index 09e2a8036a6..13884df4761 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/ArXivFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/ArXivFetcherTest.java @@ -25,7 +25,6 @@ import org.jabref.model.entry.types.StandardEntryType; import org.jabref.testutils.category.FetcherTest; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; @@ -167,12 +166,12 @@ public void supportsAuthorSearch() throws FetcherException { String author = bibEntry.getField(StandardField.AUTHOR).orElse(""); // The co-authors differ, thus we check for the author present at all papers - getTestAuthors().forEach(expectedAuthor -> Assertions.assertTrue(author.contains(expectedAuthor.replace("\"", "")))); + getTestAuthors().forEach(expectedAuthor -> assertTrue(author.contains(expectedAuthor.replace("\"", "")))); }); } @Test - public void noSupportsAuthorSearchWithLastFirstName() throws FetcherException { + void noSupportsAuthorSearchWithLastFirstName() throws FetcherException { StringJoiner queryBuilder = new StringJoiner("\" AND author:\"", "author:\"", "\""); getTestAuthors().forEach(queryBuilder::add); @@ -413,7 +412,7 @@ public void supportsYearRangeSearch() throws Exception { * Only documents that contain exactly this sequence are returned. */ @Test - public void supportsPhraseSearch() throws Exception { + void supportsPhraseSearch() throws Exception { List resultWithPhraseSearch = fetcher.performSearch("title:\"Taxonomy of Distributed\""); List resultWithOutPhraseSearch = fetcher.performSearch("title:Taxonomy AND title:of AND title:Distributed"); // Phrase search result has to be subset of the default search result @@ -425,7 +424,7 @@ public void supportsPhraseSearch() throws Exception { * Only documents that contain exactly this sequence are returned. */ @Test - public void supportsPhraseSearchAndMatchesExact() throws Exception { + void supportsPhraseSearchAndMatchesExact() throws Exception { BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Rafrastara, Fauzi Adi and Deyu, Qi") .withField(StandardField.TITLE, "A Survey and Taxonomy of Distributed Data Mining Research Studies: A Systematic Literature Review") @@ -449,7 +448,7 @@ public void supportsPhraseSearchAndMatchesExact() throws Exception { } @Test - public void supportsBooleanANDSearch() throws Exception { + void supportsBooleanANDSearch() throws Exception { // Example of a robust result, with information from both ArXiv-assigned and user-assigned DOIs BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Büscher, Tobias and Diez, Angel L. and Gompper, Gerhard and Elgeti, Jens") @@ -480,7 +479,7 @@ public void supportsBooleanANDSearch() throws Exception { } @Test - public void retrievePureArxivEntryWhenAllDOIFetchingFails() throws FetcherException { + void retrievePureArxivEntryWhenAllDOIFetchingFails() throws FetcherException { BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Hai Zheng and Po-Yi Ho and Meiling Jiang and Bin Tang and Weirong Liu and Dengjin Li and Xuefeng Yu and Nancy E. Kleckner and Ariel Amir and Chenli Liu") .withField(StandardField.TITLE, "Interrogating the Escherichia coli cell cycle by cell dimension perturbations") @@ -503,7 +502,7 @@ public void retrievePureArxivEntryWhenAllDOIFetchingFails() throws FetcherExcept } @Test - public void canReplicateArXivOnlySearchByPassingNullParameter() throws FetcherException { + void canReplicateArXivOnlySearchByPassingNullParameter() throws FetcherException { BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Hai Zheng and Po-Yi Ho and Meiling Jiang and Bin Tang and Weirong Liu and Dengjin Li and Xuefeng Yu and Nancy E. Kleckner and Ariel Amir and Chenli Liu") .withField(StandardField.TITLE, "Interrogating the Escherichia coli cell cycle by cell dimension perturbations") @@ -522,7 +521,7 @@ public void canReplicateArXivOnlySearchByPassingNullParameter() throws FetcherEx } @Test - public void retrievePartialResultWhenCannotGetInformationFromUserAssignedDOI() throws FetcherException { + void retrievePartialResultWhenCannotGetInformationFromUserAssignedDOI() throws FetcherException { BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Zheng, Hai and Ho, Po-Yi and Jiang, Meiling and Tang, Bin and Liu, Weirong and Li, Dengjin and Yu, Xuefeng and Kleckner, Nancy E. and Amir, Ariel and Liu, Chenli") .withField(StandardField.TITLE, "Interrogating the Escherichia coli cell cycle by cell dimension perturbations") @@ -548,7 +547,7 @@ public void retrievePartialResultWhenCannotGetInformationFromUserAssignedDOI() t } @Test - public void retrievePartialResultWhenCannotGetInformationFromArXivAssignedDOI() throws FetcherException { + void retrievePartialResultWhenCannotGetInformationFromArXivAssignedDOI() throws FetcherException { BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Hai Zheng and Po-Yi Ho and Meiling Jiang and Bin Tang and Weirong Liu and Dengjin Li and Xuefeng Yu and Nancy E. Kleckner and Ariel Amir and Chenli Liu") .withField(StandardField.TITLE, "Interrogating the Escherichia coli cell cycle by cell dimension perturbations") diff --git a/src/test/java/org/jabref/logic/importer/fetcher/AstrophysicsDataSystemTest.java b/src/test/java/org/jabref/logic/importer/fetcher/AstrophysicsDataSystemTest.java index 48cc78f49fd..b18f514b68c 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/AstrophysicsDataSystemTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/AstrophysicsDataSystemTest.java @@ -65,7 +65,7 @@ public class AstrophysicsDataSystemTest implements PagedSearchFetcherTest { .withField(StandardField.ABSTRACT, "The Clementine mission to the Moon returned global imaging data collected by the ultraviolet visible (UVVIS) camera. This data set is now in a final state of calibration, and a five-band multispectral digital image model (DIM) of the lunar surface will soon be available to the science community. We have used observations of the lunar sample-return sites and stations extracted from the final DIM in conjunction with compositional information for returned lunar soils to revise our previously published algorithms for the spectral determination of the FeO and TiO$_{2}$ content of the lunar surface. The algorithms successfully normalize the effects of space weathering so that composition may be determined without regard to a surface's state of maturity. These algorithms permit anyone with access to the standard archived DIM to construct high spatial resolution maps of FeO and TiO$_{2}$ abundance. Such maps will be of great utility in a variety of lunar geologic studies."); @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); ImporterPreferences importerPreferences = mock(ImporterPreferences.class); when(importerPreferences.getApiKeys()).thenReturn(FXCollections.emptyObservableSet()); @@ -133,19 +133,19 @@ public void setUp() throws Exception { } @Test - public void getName() { + void getName() { assertEquals("SAO/NASA ADS", fetcher.getName()); } @Test - public void searchByQueryFindsEntry() throws Exception { + void searchByQueryFindsEntry() throws Exception { List fetchedEntries = fetcher.performSearch("Diez slice theorem Lie"); assertFalse(fetchedEntries.isEmpty()); assertTrue(fetchedEntries.contains(diezSliceTheoremEntry)); } @Test - public void searchByEntryFindsEntry() throws Exception { + void searchByEntryFindsEntry() throws Exception { BibEntry searchEntry = new BibEntry() .withField(StandardField.TITLE, "slice theorem") .withField(StandardField.AUTHOR, "Diez"); @@ -158,56 +158,56 @@ public void searchByEntryFindsEntry() throws Exception { } @Test - public void performSearchByFamaeyMcGaughEntry() throws Exception { + void performSearchByFamaeyMcGaughEntry() throws Exception { Optional fetchedEntry = fetcher.performSearchById("10.12942/lrr-2012-10"); fetchedEntry.ifPresent(entry -> entry.clearField(StandardField.ABSTRACT)); // Remove abstract due to copyright assertEquals(Optional.of(famaeyMcGaughEntry), fetchedEntry); } @Test - public void performSearchByIdEmptyDOI() throws Exception { + void performSearchByIdEmptyDOI() throws Exception { Optional fetchedEntry = fetcher.performSearchById(""); assertEquals(Optional.empty(), fetchedEntry); } @Test - public void performSearchByIdInvalidDoi() throws Exception { + void performSearchByIdInvalidDoi() throws Exception { assertEquals(Optional.empty(), fetcher.performSearchById("this.doi.will.fail")); } @Test - public void performSearchBySunWelchEntry() throws Exception { + void performSearchBySunWelchEntry() throws Exception { Optional fetchedEntry = fetcher.performSearchById("10.1038/nmat3160"); fetchedEntry.ifPresent(entry -> entry.clearField(StandardField.ABSTRACT)); // Remove abstract due to copyright assertEquals(Optional.of(sunWelchEntry), fetchedEntry); } @Test - public void performSearchByXiongSunEntry() throws Exception { + void performSearchByXiongSunEntry() throws Exception { Optional fetchedEntry = fetcher.performSearchById("10.1109/TGRS.2006.890567"); assertEquals(Optional.of(xiongSunEntry), fetchedEntry); } @Test - public void performSearchByIngersollPollardEntry() throws Exception { + void performSearchByIngersollPollardEntry() throws Exception { Optional fetchedEntry = fetcher.performSearchById("10.1016/0019-1035(82)90169-5"); assertEquals(Optional.of(ingersollPollardEntry), fetchedEntry); } @Test - public void performSearchByLuceyPaulEntry() throws Exception { + void performSearchByLuceyPaulEntry() throws Exception { Optional fetchedEntry = fetcher.performSearchById("2000JGR...10520297L"); assertEquals(Optional.of(luceyPaulEntry), fetchedEntry); } @Test - public void performSearchByQueryPaged_searchLimitsSize() throws Exception { + void performSearchByQueryPaged_searchLimitsSize() throws Exception { Page page = fetcher.performSearchPaged("author:\"A\"", 0); assertEquals(fetcher.getPageSize(), page.getSize(), "fetcher return wrong page size"); } @Test - public void performSearchByQueryPaged_invalidAuthorsReturnEmptyPages() throws Exception { + void performSearchByQueryPaged_invalidAuthorsReturnEmptyPages() throws Exception { Page page = fetcher.performSearchPaged("author:\"ThisAuthorWillNotBeFound\"", 0); Page page5 = fetcher.performSearchPaged("author:\"ThisAuthorWillNotBeFound\"", 5); assertEquals(0, page.getSize(), "fetcher doesnt return empty pages for invalid author"); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/BiodiversityLibraryTest.java b/src/test/java/org/jabref/logic/importer/fetcher/BiodiversityLibraryTest.java index 437ac933d15..1df6e6ed615 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/BiodiversityLibraryTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/BiodiversityLibraryTest.java @@ -26,7 +26,7 @@ import static org.mockito.Mockito.when; @FetcherTest -public class BiodiversityLibraryTest { +class BiodiversityLibraryTest { private final String BASE_URL = "https://www.biodiversitylibrary.org/api3?"; private final String RESPONSE_FORMAT = "&format=json"; private final BuildInfo buildInfo = new BuildInfo(); @@ -41,20 +41,20 @@ void setUp() { } @Test - public void getName() { + void getName() { assertEquals("Biodiversity Heritage", fetcher.getName()); assertNotEquals("Biodiversity Heritage Library", fetcher.getName()); assertNotEquals("Biodiversity Library", fetcher.getName()); } @Test - public void biodiversityHeritageApiKeyIsNotEmpty() { + void biodiversityHeritageApiKeyIsNotEmpty() { BuildInfo buildInfo = new BuildInfo(); assertNotNull(buildInfo.biodiversityHeritageApiKey); } @Test - public void baseURLConstruction() throws MalformedURLException, URISyntaxException { + void baseURLConstruction() throws MalformedURLException, URISyntaxException { String expected = fetcher .getTestUrl() .concat(buildInfo.biodiversityHeritageApiKey) @@ -65,7 +65,7 @@ public void baseURLConstruction() throws MalformedURLException, URISyntaxExcepti @ParameterizedTest @ValueSource(strings = {"1234", "331", "121"}) - public void getPartMetadaUrl(String id) throws MalformedURLException, URISyntaxException { + void getPartMetadaUrl(String id) throws MalformedURLException, URISyntaxException { String expected = fetcher .getTestUrl() .concat(buildInfo.biodiversityHeritageApiKey) @@ -78,7 +78,7 @@ public void getPartMetadaUrl(String id) throws MalformedURLException, URISyntaxE @ParameterizedTest @ValueSource(strings = {"1234", "4321", "331"}) - public void getItemMetadaUrl(String id) throws MalformedURLException, URISyntaxException { + void getItemMetadaUrl(String id) throws MalformedURLException, URISyntaxException { String expected = fetcher .getTestUrl() .concat(buildInfo.biodiversityHeritageApiKey) @@ -90,7 +90,7 @@ public void getItemMetadaUrl(String id) throws MalformedURLException, URISyntaxE } @Test - public void performSearch() throws FetcherException { + void performSearch() throws FetcherException { BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Clark, John L. (John Littner) and Neill, David A. ") .withField(StandardField.JOURNALTITLE, "PhytoKeys") @@ -107,7 +107,7 @@ public void performSearch() throws FetcherException { } @Test - public void jsonResultToBibEntry() { + void jsonResultToBibEntry() { JSONObject input = new JSONObject("{\n\"BHLType\": \"Part\",\n\"FoundIn\": \"Metadata\",\n\"Volume\": \"3\",\n\"Authors\": [\n{\n\"Name\": \"Dimmock, George,\"\n}\n],\n\"PartUrl\": \"https://www.biodiversitylibrary.org/part/181199\",\n\"PartID\": \"181199\",\n\"Genre\": \"Article\",\n\"Title\": \"The Cocoons of Cionus Scrophulariae\",\n\"ContainerTitle\": \"Psyche.\",\n\"Date\": \"1882\",\n\"PageRange\": \"411--413\"\n}"); BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.TITLE, "The Cocoons of Cionus Scrophulariae") diff --git a/src/test/java/org/jabref/logic/importer/fetcher/BvbFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/BvbFetcherTest.java index 8361a7953f3..5bf8c51c5e2 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/BvbFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/BvbFetcherTest.java @@ -20,7 +20,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; @FetcherTest -public class BvbFetcherTest { +class BvbFetcherTest { BvbFetcher fetcher = new BvbFetcher(); BibEntry bibEntryISBN0134685997; @@ -39,7 +39,7 @@ void performTest() throws Exception { } @BeforeEach - public void setUp() { + void setUp() { fetcher = new BvbFetcher(); bibEntryISBN9783960886402 = new BibEntry(StandardEntryType.Misc) @@ -69,12 +69,12 @@ public void setUp() { } @Test - public void getName() { + void getName() { assertEquals("Bibliotheksverbund Bayern (Experimental)", fetcher.getName()); } @Test - public void simpleSearchQueryURLCorrect() throws Exception { + void simpleSearchQueryURLCorrect() throws Exception { String query = "java jdk"; QueryNode luceneQuery = new StandardSyntaxParser().parse(query, NO_EXPLICIT_FIELD); URL url = fetcher.getURLForQuery(luceneQuery); @@ -82,7 +82,7 @@ public void simpleSearchQueryURLCorrect() throws Exception { } @Test - public void complexSearchQueryURLCorrect() throws Exception { + void complexSearchQueryURLCorrect() throws Exception { String query = "title:jdk"; QueryNode luceneQuery = new StandardSyntaxParser().parse(query, NO_EXPLICIT_FIELD); URL url = fetcher.getURLForQuery(luceneQuery); @@ -90,14 +90,14 @@ public void complexSearchQueryURLCorrect() throws Exception { } @Test - public void performSearchMatchingMultipleEntries() throws FetcherException { + void performSearchMatchingMultipleEntries() throws FetcherException { List searchResult = fetcher.performSearch("effective java bloch"); assertEquals(bibEntryISBN9783960886402, searchResult.getFirst()); assertEquals(bibEntryISBN0134685997, searchResult.get(1)); } @Test - public void performSearchEmpty() throws FetcherException { + void performSearchEmpty() throws FetcherException { List searchResult = fetcher.performSearch(""); assertEquals(Collections.emptyList(), searchResult); } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcherTest.java index c48e3119642..39359444fae 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcherTest.java @@ -34,26 +34,26 @@ class CollectionOfComputerScienceBibliographiesFetcherTest { private CollectionOfComputerScienceBibliographiesFetcher fetcher; @BeforeEach - public void setUp() { + void setUp() { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); when(importFormatPreferences.bibEntryPreferences().getKeywordSeparator()).thenReturn(','); fetcher = new CollectionOfComputerScienceBibliographiesFetcher(importFormatPreferences); } @Test - public void getNameReturnsCorrectName() { + void getNameReturnsCorrectName() { assertEquals("Collection of Computer Science Bibliographies", fetcher.getName()); } @Test - public void getUrlForQueryReturnsCorrectUrl() throws MalformedURLException, URISyntaxException, FetcherException, QueryNodeParseException { + void getUrlForQueryReturnsCorrectUrl() throws MalformedURLException, URISyntaxException, FetcherException, QueryNodeParseException { String query = "java jdk"; URL url = fetcher.getURLForQuery(new StandardSyntaxParser().parse(query, AbstractQueryTransformer.NO_EXPLICIT_FIELD)); assertEquals("http://liinwww.ira.uka.de/bibliography/rss?query=java+jdk&sort=score", url.toString()); } @Test - public void performSearchReturnsMatchingMultipleEntries() throws FetcherException { + void performSearchReturnsMatchingMultipleEntries() throws FetcherException { List searchResult = fetcher.performSearch("jabref"); BibEntry secondBibEntry = new BibEntry(StandardEntryType.Article) @@ -107,7 +107,7 @@ public void performSearchReturnsMatchingMultipleEntries() throws FetcherExceptio } @Test - public void performSearchReturnsEmptyListForEmptySearch() throws FetcherException { + void performSearchReturnsEmptyListForEmptySearch() throws FetcherException { List searchResult = fetcher.performSearch(""); assertEquals(Collections.emptyList(), searchResult); } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesParserTest.java b/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesParserTest.java index 79f529e91d8..af33cdfca8d 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesParserTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesParserTest.java @@ -21,21 +21,21 @@ @FetcherTest @Disabled -public class CollectionOfComputerScienceBibliographiesParserTest { +class CollectionOfComputerScienceBibliographiesParserTest { @Test - public void parseEntriesReturnsEmptyListIfXmlHasNoResults() throws Exception { + void parseEntriesReturnsEmptyListIfXmlHasNoResults() throws Exception { parseXmlAndCheckResults("collection_of_computer_science_bibliographies_empty_result.xml", Collections.emptyList()); } @Disabled("Parse/fetcher remote side does not return anything valid for the link") @Test - public void parseEntriesReturnsOneBibEntryInListIfXmlHasSingleResult() throws Exception { + void parseEntriesReturnsOneBibEntryInListIfXmlHasSingleResult() throws Exception { parseXmlAndCheckResults("collection_of_computer_science_bibliographies_single_result.xml", Collections.singletonList("collection_of_computer_science_bibliographies_single_result.bib")); } @Test - public void parseEntriesReturnsMultipleBibEntriesInListIfXmlHasMultipleResults() throws Exception { + void parseEntriesReturnsMultipleBibEntriesInListIfXmlHasMultipleResults() throws Exception { parseXmlAndCheckResults("collection_of_computer_science_bibliographies_multiple_results.xml", Arrays.asList("collection_of_computer_science_bibliographies_multiple_results_first_result.bib", "collection_of_computer_science_bibliographies_multiple_results_second_result.bib")); } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcherTest.java index 9f42028c367..cab7679bf56 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcherTest.java @@ -20,7 +20,6 @@ import org.jabref.support.DisabledOnCIServer; import org.jabref.testutils.category.FetcherTest; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; @@ -29,47 +28,50 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @FetcherTest @DisabledOnCIServer("Produces too many requests on CI") -public class CompositeSearchBasedFetcherTest { +class CompositeSearchBasedFetcherTest { private static final Logger LOGGER = LoggerFactory.getLogger(CompositeSearchBasedFetcherTest.class); private final ImporterPreferences importerPreferences = mock(ImporterPreferences.class, Answers.RETURNS_DEEP_STUBS); @Test - public void createCompositeFetcherWithNullSet() { - Assertions.assertThrows(IllegalArgumentException.class, + void createCompositeFetcherWithNullSet() { + assertThrows(IllegalArgumentException.class, () -> new CompositeSearchBasedFetcher(null, importerPreferences, 0)); } @Test - public void performSearchWithoutFetchers() throws Exception { + void performSearchWithoutFetchers() throws Exception { Set empty = new HashSet<>(); CompositeSearchBasedFetcher fetcher = new CompositeSearchBasedFetcher(empty, importerPreferences, Integer.MAX_VALUE); List result = fetcher.performSearch("quantum"); - Assertions.assertEquals(result, Collections.emptyList()); + assertEquals(result, Collections.emptyList()); } @ParameterizedTest(name = "Perform Search on empty query.") @MethodSource("performSearchParameters") - public void performSearchOnEmptyQuery(Set fetchers) throws Exception { + void performSearchOnEmptyQuery(Set fetchers) throws Exception { CompositeSearchBasedFetcher compositeFetcher = new CompositeSearchBasedFetcher(fetchers, importerPreferences, Integer.MAX_VALUE); List queryResult = compositeFetcher.performSearch(""); - Assertions.assertEquals(queryResult, Collections.emptyList()); + assertEquals(queryResult, Collections.emptyList()); } @ParameterizedTest(name = "Perform search on query \"quantum\". Using the CompositeFetcher of the following " + "Fetchers: {arguments}") @MethodSource("performSearchParameters") - public void performSearchOnNonEmptyQuery(Set fetchers) throws Exception { + void performSearchOnNonEmptyQuery(Set fetchers) throws Exception { CompositeSearchBasedFetcher compositeFetcher = new CompositeSearchBasedFetcher(fetchers, importerPreferences, Integer.MAX_VALUE); FieldPreferences fieldPreferences = mock(FieldPreferences.class); when(fieldPreferences.getNonWrappableFields()).thenReturn(FXCollections.observableArrayList()); @@ -80,7 +82,7 @@ public void performSearchOnNonEmptyQuery(Set fetchers) throw try { List fetcherResult = fetcher.performSearch("quantum"); fetcherResult.forEach(cleanup::doPostCleanup); - Assertions.assertTrue(compositeResult.containsAll(fetcherResult), "Did not contain " + fetcherResult); + assertTrue(compositeResult.containsAll(fetcherResult), "Did not contain " + fetcherResult); } catch (FetcherException e) { /* We catch the Fetcher exception here, since the failing fetcher also fails in the CompositeFetcher * and just leads to no additional results in the returned list. Therefore, the test should not fail diff --git a/src/test/java/org/jabref/logic/importer/fetcher/CrossRefTest.java b/src/test/java/org/jabref/logic/importer/fetcher/CrossRefTest.java index d67744df55d..98b048db92a 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/CrossRefTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/CrossRefTest.java @@ -18,13 +18,13 @@ import static org.junit.jupiter.api.Assertions.assertThrows; @FetcherTest -public class CrossRefTest { +class CrossRefTest { private CrossRef fetcher; private BibEntry barrosEntry; @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { fetcher = new CrossRef(); barrosEntry = new BibEntry(); @@ -38,7 +38,7 @@ public void setUp() throws Exception { } @Test - public void findExactData() throws Exception { + void findExactData() throws Exception { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Service Interaction Patterns"); entry.setField(StandardField.AUTHOR, "Barros, Alistair and Dumas, Marlon and Arthur H.M. ter Hofstede"); @@ -47,7 +47,7 @@ public void findExactData() throws Exception { } @Test - public void findMissingAuthor() throws Exception { + void findMissingAuthor() throws Exception { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Towards Application Portability in Platform as a Service"); entry.setField(StandardField.AUTHOR, "Stefan Kolb"); @@ -55,14 +55,14 @@ public void findMissingAuthor() throws Exception { } @Test - public void findTitleOnly() throws Exception { + void findTitleOnly() throws Exception { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Towards Application Portability in Platform as a Service"); assertEquals("10.1109/sose.2014.26", fetcher.findIdentifier(entry).get().getDOI().toLowerCase(Locale.ENGLISH)); } @Test - public void notFindIncompleteTitle() throws Exception { + void notFindIncompleteTitle() throws Exception { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Towards Application Portability"); entry.setField(StandardField.AUTHOR, "Stefan Kolb and Guido Wirtz"); @@ -70,7 +70,7 @@ public void notFindIncompleteTitle() throws Exception { } @Test - public void acceptTitleUnderThreshold() throws Exception { + void acceptTitleUnderThreshold() throws Exception { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Towards Application Portability in Platform as a Service----"); entry.setField(StandardField.AUTHOR, "Stefan Kolb and Guido Wirtz"); @@ -78,7 +78,7 @@ public void acceptTitleUnderThreshold() throws Exception { } @Test - public void notAcceptTitleOverThreshold() throws Exception { + void notAcceptTitleOverThreshold() throws Exception { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Towards Application Portability in Platform as a Service-----"); entry.setField(StandardField.AUTHOR, "Stefan Kolb and Guido Wirtz"); @@ -86,7 +86,7 @@ public void notAcceptTitleOverThreshold() throws Exception { } @Test - public void findWrongAuthor() throws Exception { + void findWrongAuthor() throws Exception { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Towards Application Portability in Platform as a Service"); entry.setField(StandardField.AUTHOR, "Stefan Kolb and Simon Harrer"); @@ -94,7 +94,7 @@ public void findWrongAuthor() throws Exception { } @Test - public void findWithSubtitle() throws Exception { + void findWithSubtitle() throws Exception { BibEntry entry = new BibEntry(); // CrossRef entry will only include { "title": "A break in the clouds", "subtitle": "towards a cloud definition" } entry.setField(StandardField.TITLE, "A break in the clouds: towards a cloud definition"); @@ -102,17 +102,17 @@ public void findWithSubtitle() throws Exception { } @Test - public void findByDOI() throws Exception { + void findByDOI() throws Exception { assertEquals(Optional.of(barrosEntry), fetcher.performSearchById("10.1007/11538394_20")); } @Test - public void findByAuthors() throws Exception { + void findByAuthors() throws Exception { assertEquals(Optional.of(barrosEntry), fetcher.performSearch("\"Barros, Alistair\" AND \"Dumas, Marlon\" AND \"Arthur H.M. ter Hofstede\"").stream().findFirst()); } @Test - public void findByEntry() throws Exception { + void findByEntry() throws Exception { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Service Interaction Patterns"); entry.setField(StandardField.AUTHOR, "Barros, Alistair and Dumas, Marlon and Arthur H.M. ter Hofstede"); @@ -121,7 +121,7 @@ public void findByEntry() throws Exception { } @Test - public void performSearchByIdFindsPaperWithoutTitle() throws Exception { + void performSearchByIdFindsPaperWithoutTitle() throws Exception { BibEntry entry = new BibEntry(StandardEntryType.Article); entry.setField(StandardField.AUTHOR, "Dominik Wujastyk"); entry.setField(StandardField.DOI, "10.1023/a:1003473214310"); @@ -137,12 +137,12 @@ public void performSearchByIdFindsPaperWithoutTitle() throws Exception { } @Test - public void performSearchByEmptyId() throws Exception { + void performSearchByEmptyId() throws Exception { assertEquals(Optional.empty(), fetcher.performSearchById("")); } @Test - public void performSearchByEmptyQuery() throws Exception { + void performSearchByEmptyQuery() throws Exception { assertEquals(Collections.emptyList(), fetcher.performSearch("")); } @@ -150,7 +150,7 @@ public void performSearchByEmptyQuery() throws Exception { * reveal fetching error on crossref performSearchById */ @Test - public void performSearchValidReturnNothingDOI() throws FetcherException { + void performSearchValidReturnNothingDOI() throws FetcherException { assertThrows(FetcherClientException.class, () -> fetcher.performSearchById("10.1392/BC1.0")); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/DBLPFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/DBLPFetcherTest.java index 71221813b12..6c17f38ae7e 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/DBLPFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/DBLPFetcherTest.java @@ -19,13 +19,13 @@ import static org.mockito.Mockito.mock; @FetcherTest -public class DBLPFetcherTest { +class DBLPFetcherTest { private DBLPFetcher dblpFetcher; private BibEntry entry; @BeforeEach - public void setUp() { + void setUp() { dblpFetcher = new DBLPFetcher(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS)); entry = new BibEntry(); @@ -49,7 +49,7 @@ public void setUp() { } @Test - public void findSingleEntry() throws FetcherException { + void findSingleEntry() throws FetcherException { // In Lucene curly brackets are used for range queries, therefore they have to be escaped using "". See https://lucene.apache.org/core/5_4_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html String query = "Process Engine Benchmarking with Betsy in the Context of \"{ISO/IEC}\" Quality Standards"; List result = dblpFetcher.performSearch(query); @@ -58,7 +58,7 @@ public void findSingleEntry() throws FetcherException { } @Test - public void findSingleEntryUsingComplexOperators() throws FetcherException { + void findSingleEntryUsingComplexOperators() throws FetcherException { String query = "geiger harrer betsy$ softw.trends"; // -wirtz Negative operators do no longer work, see issue https://github.com/JabRef/jabref/issues/2890 List result = dblpFetcher.performSearch(query); @@ -66,7 +66,7 @@ public void findSingleEntryUsingComplexOperators() throws FetcherException { } @Test - public void findNothing() throws Exception { + void findNothing() throws Exception { assertEquals(Collections.emptyList(), dblpFetcher.performSearch("")); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/DOABFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/DOABFetcherTest.java index 3d405ca59e9..756a52a0d32 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/DOABFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/DOABFetcherTest.java @@ -23,7 +23,7 @@ public class DOABFetcherTest { private final DOABFetcher fetcher = new DOABFetcher(); @Test - public void getName() { + void getName() { assertEquals("DOAB", fetcher.getName()); } @@ -106,7 +106,7 @@ public static Stream performSearch() { @ParameterizedTest @MethodSource - public void performSearch(BibEntry expected, String query) throws FetcherException { + void performSearch(BibEntry expected, String query) throws FetcherException { List entries = fetcher.performSearch(query); // We must not contain abstracts in our code base; thus we remove the abstracts from the fetched results entries.forEach(entry -> entry.clearField(StandardField.ABSTRACT)); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/DOAJFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/DOAJFetcherTest.java index 0c37978b676..5ab645ee468 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/DOAJFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/DOAJFetcherTest.java @@ -68,7 +68,7 @@ void bibJSONConverter() { } @Test - public void searchByEmptyQuery() throws Exception { + void searchByEmptyQuery() throws Exception { assertEquals(Collections.emptyList(), fetcher.performSearch("")); } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/DiVATest.java b/src/test/java/org/jabref/logic/importer/fetcher/DiVATest.java index a935977e734..165a7bacb3f 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/DiVATest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/DiVATest.java @@ -18,22 +18,22 @@ import static org.mockito.Mockito.mock; @FetcherTest -public class DiVATest { +class DiVATest { private DiVA fetcher; @BeforeEach - public void setUp() { + void setUp() { fetcher = new DiVA(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS)); } @Test - public void getName() { + void getName() { assertEquals("DiVA", fetcher.getName()); } @Test - public void performSearchById() throws Exception { + void performSearchById() throws Exception { BibEntry entry = new BibEntry(); entry.setType(StandardEntryType.Article); entry.setCitationKey("Gustafsson260746"); @@ -53,17 +53,17 @@ public void performSearchById() throws Exception { } @Test - public void validIdentifier() { + void validIdentifier() { assertTrue(fetcher.isValidId("diva2:260746")); } @Test - public void invalidIdentifier() { + void invalidIdentifier() { assertFalse(fetcher.isValidId("banana")); } @Test - public void emptyId() throws Exception { + void emptyId() throws Exception { assertEquals(Optional.empty(), fetcher.performSearchById("")); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/DoiFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/DoiFetcherTest.java index 11cacf3a446..3cf0c3f14b0 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/DoiFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/DoiFetcherTest.java @@ -17,7 +17,7 @@ import static org.mockito.Mockito.mock; @FetcherTest -public class DoiFetcherTest { +class DoiFetcherTest { private final DoiFetcher fetcher = new DoiFetcher(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS)); @@ -71,56 +71,56 @@ public class DoiFetcherTest { .withField(StandardField.NUMBER, "2"); @Test - public void getName() { + void getName() { assertEquals("DOI", fetcher.getName()); } @Test - public void performSearchBurd2011() throws FetcherException { + void performSearchBurd2011() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("10.1002/9781118257517"); assertEquals(Optional.of(bibEntryBurd2011), fetchedEntry); } @Test - public void performSearchDecker2007() throws FetcherException { + void performSearchDecker2007() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("10.1109/ICWS.2007.59"); assertEquals(Optional.of(bibEntryDecker2007), fetchedEntry); } @Test - public void performSearchIannarelli2019() throws FetcherException { + void performSearchIannarelli2019() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("10.3303/CET1977146"); assertEquals(Optional.of(bibEntryIannarelli2019), fetchedEntry); } @Test - public void performSearchEmptyDOI() { + void performSearchEmptyDOI() { assertThrows(FetcherException.class, () -> fetcher.performSearchById("")); } @Test - public void performSearchInvalidDOI() { + void performSearchInvalidDOI() { assertThrows(FetcherException.class, () -> fetcher.performSearchById("10.1002/9781118257517F")); } @Test - public void performSearchInvalidDOIClientResultsinFetcherClientException() { + void performSearchInvalidDOIClientResultsinFetcherClientException() { assertThrows(FetcherException.class, () -> fetcher.performSearchById("10.1002/9781118257517F")); } @Test - public void performSearchInvalidDOIClientResultsinFetcherClientException2() { + void performSearchInvalidDOIClientResultsinFetcherClientException2() { assertThrows(FetcherException.class, () -> fetcher.performSearchById("10.1002/9781517F")); } @Test - public void performSearchNonTrimmedDOI() throws FetcherException { + void performSearchNonTrimmedDOI() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("http s://doi.org/ 10.1109 /ICWS .2007.59 "); assertEquals(Optional.of(bibEntryDecker2007), fetchedEntry); } @Test - public void aPSJournalCopiesArticleIdToPageField() throws FetcherException { + void aPSJournalCopiesArticleIdToPageField() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("10.1103/physreva.102.023315"); assertEquals(Optional.of(bibEntryStenzel2020), fetchedEntry); } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/GrobidCitationFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/GrobidCitationFetcherTest.java index 99f5a815978..0b345927de3 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/GrobidCitationFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/GrobidCitationFetcherTest.java @@ -102,32 +102,32 @@ public static Stream provideInvalidInput() { @ParameterizedTest(name = "{0}") @MethodSource("provideExamplesForCorrectResultTest") - public void grobidPerformSearchCorrectResultTest(String testName, BibEntry expectedBibEntry, String searchQuery) throws FetcherException { + void grobidPerformSearchCorrectResultTest(String testName, BibEntry expectedBibEntry, String searchQuery) throws FetcherException { List entries = grobidCitationFetcher.performSearch(searchQuery); assertEquals(List.of(expectedBibEntry), entries); } @Test - public void grobidPerformSearchCorrectlySplitsStringTest() throws FetcherException { + void grobidPerformSearchCorrectlySplitsStringTest() throws FetcherException { List entries = grobidCitationFetcher.performSearch(example1 + "\n\n" + example2 + "\r\n\r\n" + example3 + "\r\r" + example4); assertEquals(List.of(example1AsBibEntry, example2AsBibEntry, example3AsBibEntry, example4AsBibEntry), entries); } @Test - public void grobidPerformSearchWithEmptyStringsTest() throws FetcherException { + void grobidPerformSearchWithEmptyStringsTest() throws FetcherException { List entries = grobidCitationFetcher.performSearch(" \n "); assertEquals(Collections.emptyList(), entries); } @ParameterizedTest @MethodSource("provideInvalidInput") - public void grobidPerformSearchWithInvalidDataTest(String invalidInput) throws FetcherException { + void grobidPerformSearchWithInvalidDataTest(String invalidInput) throws FetcherException { List entries = grobidCitationFetcher.performSearch(invalidInput); assertEquals(Collections.emptyList(), entries); } @Test - public void performSearchThrowsExceptionInCaseOfConnectionIssues() throws IOException, ParseException { + void performSearchThrowsExceptionInCaseOfConnectionIssues() throws IOException, ParseException { GrobidService grobidServiceMock = mock(GrobidService.class); when(grobidServiceMock.processCitation(anyString(), any(), any())).thenThrow(new SocketTimeoutException("Timeout")); grobidCitationFetcher = new GrobidCitationFetcher(importFormatPreferences, grobidServiceMock); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/GvkFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/GvkFetcherTest.java index f98a9780056..2c020d3c21c 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/GvkFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/GvkFetcherTest.java @@ -24,14 +24,14 @@ import static org.mockito.Mockito.mock; @FetcherTest -public class GvkFetcherTest { +class GvkFetcherTest { private GvkFetcher fetcher; private BibEntry bibEntryPPN591166003; private BibEntry bibEntryPPN66391437X; @BeforeEach - public void setUp() { + void setUp() { fetcher = new GvkFetcher(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS)); bibEntryPPN591166003 = new BibEntry(StandardEntryType.Book) @@ -61,12 +61,12 @@ public void setUp() { } @Test - public void getName() { + void getName() { assertEquals("GVK", fetcher.getName()); } @Test - public void simpleSearchQueryURLCorrect() throws Exception { + void simpleSearchQueryURLCorrect() throws Exception { String query = "java jdk"; QueryNode luceneQuery = new StandardSyntaxParser().parse(query, AbstractQueryTransformer.NO_EXPLICIT_FIELD); URL url = fetcher.getURLForQuery(luceneQuery); @@ -74,7 +74,7 @@ public void simpleSearchQueryURLCorrect() throws Exception { } @Test - public void complexSearchQueryURLCorrect() throws Exception { + void complexSearchQueryURLCorrect() throws Exception { String query = "kon:java tit:jdk"; QueryNode luceneQuery = new StandardSyntaxParser().parse(query, AbstractQueryTransformer.NO_EXPLICIT_FIELD); URL url = fetcher.getURLForQuery(luceneQuery); @@ -82,26 +82,26 @@ public void complexSearchQueryURLCorrect() throws Exception { } @Test - public void performSearchMatchingMultipleEntries() throws FetcherException { + void performSearchMatchingMultipleEntries() throws FetcherException { List searchResult = fetcher.performSearch("title:\"effective java\""); assertTrue(searchResult.contains(bibEntryPPN591166003)); assertTrue(searchResult.contains(bibEntryPPN66391437X)); } @Test - public void performSearch591166003() throws FetcherException { + void performSearch591166003() throws FetcherException { List searchResult = fetcher.performSearch("ppn:591166003"); assertEquals(Collections.singletonList(bibEntryPPN591166003), searchResult); } @Test - public void performSearch66391437X() throws FetcherException { + void performSearch66391437X() throws FetcherException { List searchResult = fetcher.performSearch("ppn:66391437X"); assertEquals(Collections.singletonList(bibEntryPPN66391437X), searchResult); } @Test - public void performSearchEmpty() throws FetcherException { + void performSearchEmpty() throws FetcherException { List searchResult = fetcher.performSearch(""); assertEquals(Collections.emptyList(), searchResult); } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/INSPIREFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/INSPIREFetcherTest.java index 9d73958d2bc..dfb4608e1ea 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/INSPIREFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/INSPIREFetcherTest.java @@ -44,7 +44,7 @@ void searchByQueryFindsEntry() throws Exception { } @Test - public void searchByIdentifierFindsEntry() throws Exception { + void searchByIdentifierFindsEntry() throws Exception { BibEntry article = new BibEntry(StandardEntryType.Article) .withCitationKey("Melnikov:1998pr") .withField(StandardField.AUTHOR, "Melnikov, Kirill and Yelkhovsky, Alexander") @@ -62,7 +62,7 @@ public void searchByIdentifierFindsEntry() throws Exception { } @Test - public void searchByExistingEntry() throws Exception { + void searchByExistingEntry() throws Exception { BibEntry article = new BibEntry(StandardEntryType.Article) .withCitationKey("Melnikov:1998pr") .withField(StandardField.AUTHOR, "Melnikov, Kirill and Yelkhovsky, Alexander") diff --git a/src/test/java/org/jabref/logic/importer/fetcher/ISIDOREFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/ISIDOREFetcherTest.java index 6fd5239ce0c..92ecf885d08 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/ISIDOREFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/ISIDOREFetcherTest.java @@ -15,18 +15,18 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @FetcherTest -public class ISIDOREFetcherTest { +class ISIDOREFetcherTest { private ISIDOREFetcher fetcher; @BeforeEach - public void setup() { + void setup() { this.fetcher = new ISIDOREFetcher(); } @Test @Disabled("Different result returned") - public void checkArticle1() throws FetcherException { + void checkArticle1() throws FetcherException { BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.TITLE, "Investigating day-to-day variability of transit usage on a multimonth scale with smart card data. A case study in Lyon") .withField(StandardField.AUTHOR, "Oscar Egu and Patrick Bonnel") @@ -43,7 +43,7 @@ public void checkArticle1() throws FetcherException { @Test @Disabled("Returns too much results") - public void checkArticle2() throws FetcherException { + void checkArticle2() throws FetcherException { BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.TITLE, "Inequality – What Can Be Done ? Cambridge (Mass.) Harvard University Press, 2015, XI-384 p. ") .withField(StandardField.AUTHOR, "Benoît Rapoport") @@ -59,7 +59,7 @@ public void checkArticle2() throws FetcherException { } @Test - public void checkThesis() throws FetcherException { + void checkThesis() throws FetcherException { BibEntry expected = new BibEntry(StandardEntryType.Thesis) .withField(StandardField.TITLE, "Mapping English L2 errors: an integrated system and textual approach") .withField(StandardField.AUTHOR, "Clive E. Hamilton") @@ -73,7 +73,7 @@ public void checkThesis() throws FetcherException { @Test @Disabled("No result returned. Searched for `Salvage Lymph Node`, results are returned") - public void checkArticle3() throws FetcherException { + void checkArticle3() throws FetcherException { BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.TITLE, "Salvage Lymph Node Dissection for Nodal Recurrent Prostate Cancer: A Systematic Review.") .withField(StandardField.AUTHOR, "G. Ploussard and G. Gandaglia and H. Borgmann and P. de Visschere and I. Heidegger and A. Kretschmer and R. Mathieu and C. Surcel and D. Tilki and I. Tsaur and M. Valerio and R. van den Bergh and P. Ost and A. Briganti") @@ -88,13 +88,13 @@ public void checkArticle3() throws FetcherException { } @Test - public void noResults() throws FetcherException { + void noResults() throws FetcherException { List actual = fetcher.performSearch("nothing notthingham jojoyolo"); assertEquals(List.of(), actual); } @Test - public void author() throws FetcherException { + void author() throws FetcherException { List actual = fetcher.performSearch("author:\"Adam Strange\""); assertEquals(List.of(new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Howard Green and Karen Boyland and Adam Strange") diff --git a/src/test/java/org/jabref/logic/importer/fetcher/IacrEprintFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/IacrEprintFetcherTest.java index 81d3ade744e..a73954cb4a4 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/IacrEprintFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/IacrEprintFetcherTest.java @@ -34,7 +34,7 @@ @FetcherTest @DisabledOnCIServer("eprint.iacr.org blocks with 500 when there are too many calls from the same IP address.") -public class IacrEprintFetcherTest { +class IacrEprintFetcherTest { private IacrEprintFetcher fetcher; private BibEntry abram2017; @@ -43,7 +43,7 @@ public class IacrEprintFetcherTest { private BibEntry delgado2017; @BeforeEach - public void setUp() { + void setUp() { fetcher = new IacrEprintFetcher(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS)); abram2017 = new BibEntry(StandardEntryType.Misc) @@ -96,7 +96,7 @@ public void setUp() { } @Test - public void searchByIdWithValidId1() throws FetcherException { + void searchByIdWithValidId1() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("Report 2017/1118 "); assertFalse(fetchedEntry.get().getField(StandardField.ABSTRACT).get().isEmpty()); fetchedEntry.get().setField(StandardField.ABSTRACT, "dummy"); @@ -104,7 +104,7 @@ public void searchByIdWithValidId1() throws FetcherException { } @Test - public void searchByIdWithValidId2() throws FetcherException { + void searchByIdWithValidId2() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("iacr ePrint 2016/119"); assertFalse(fetchedEntry.get().getField(StandardField.ABSTRACT).get().isEmpty()); fetchedEntry.get().setField(StandardField.ABSTRACT, "dummy"); @@ -112,7 +112,7 @@ public void searchByIdWithValidId2() throws FetcherException { } @Test - public void searchByIdWithValidIdAndNonAsciiChars() throws FetcherException { + void searchByIdWithValidIdAndNonAsciiChars() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("some random 2017/1095 stuff around the id"); assertFalse(fetchedEntry.get().getField(StandardField.ABSTRACT).get().isEmpty()); fetchedEntry.get().setField(StandardField.ABSTRACT, "dummy"); @@ -120,42 +120,42 @@ public void searchByIdWithValidIdAndNonAsciiChars() throws FetcherException { } @Test - public void searchByIdWithEmptyIdFails() { + void searchByIdWithEmptyIdFails() { assertThrows(FetcherException.class, () -> fetcher.performSearchById("")); } @Test - public void searchByIdWithInvalidReportNumberFails() { + void searchByIdWithInvalidReportNumberFails() { assertThrows(FetcherException.class, () -> fetcher.performSearchById("2016/1")); } @Test - public void searchByIdWithInvalidYearFails() { + void searchByIdWithInvalidYearFails() { assertThrows(FetcherException.class, () -> fetcher.performSearchById("16/115")); } @Test - public void searchByIdWithInvalidIdFails() { + void searchByIdWithInvalidIdFails() { assertThrows(FetcherException.class, () -> fetcher.performSearchById("asdf")); } @Test - public void searchForNonexistentIdFails() { + void searchForNonexistentIdFails() { assertThrows(FetcherException.class, () -> fetcher.performSearchById("2016/6425")); } @Test - public void getName() { + void getName() { assertEquals(IacrEprintFetcher.NAME, fetcher.getName()); } @Test - public void searchByIdForWithdrawnPaperFails() { + void searchByIdForWithdrawnPaperFails() { assertThrows(FetcherException.class, () -> fetcher.performSearchById("1998/016")); } @Test - public void searchByIdWithOldHtmlFormatAndCheckDate() throws FetcherException { + void searchByIdWithOldHtmlFormatAndCheckDate() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("1997/006"); assertEquals(Optional.of("1997-05-04"), fetchedEntry.get().getField(StandardField.DATE)); } @@ -164,7 +164,7 @@ public void searchByIdWithOldHtmlFormatAndCheckDate() throws FetcherException { @ParameterizedTest(name = "Fetch for id: {0}") @MethodSource("allNonWithdrawnIdsWithOldHtmlFormat") @Disabled("Takes a lot of time - should only be called manually") - public void searchByIdWithOldHtmlFormatWithoutDateCheck(String id) throws FetcherException { + void searchByIdWithOldHtmlFormatWithoutDateCheck(String id) throws FetcherException { Optional fetchedEntry = fetcher.performSearchById(id); assertTrue(fetchedEntry.isPresent(), "Expected to get an entry for id " + id); assertNotEquals(Optional.empty(), fetchedEntry.get().getField(StandardField.DATE), "Expected non empty date field, entry is\n" + fetchedEntry.toString()); @@ -201,19 +201,19 @@ private static Stream allNonWithdrawnIdsWithOldHtmlFormat() { } @Test - public void getFulltextWithVersion() throws FetcherException, IOException { + void getFulltextWithVersion() throws FetcherException, IOException { Optional pdfUrl = fetcher.findFullText(abram2017); assertEquals(Optional.of("https://eprint.iacr.org/archive/2017/1118/1511505927.pdf"), pdfUrl.map(URL::toString)); } @Test - public void getFulltextWithoutVersion() throws FetcherException, IOException { + void getFulltextWithoutVersion() throws FetcherException, IOException { Optional pdfUrl = fetcher.findFullText(abram2017noVersion); assertEquals(Optional.of("https://eprint.iacr.org/2017/1118.pdf"), pdfUrl.map(URL::toString)); } @Test - public void getFulltextWithoutUrl() throws FetcherException, IOException { + void getFulltextWithoutUrl() throws FetcherException, IOException { BibEntry abram2017WithoutUrl = abram2017; abram2017WithoutUrl.clearField(StandardField.URL); Optional pdfUrl = fetcher.findFullText(abram2017WithoutUrl); @@ -221,7 +221,7 @@ public void getFulltextWithoutUrl() throws FetcherException, IOException { } @Test - public void getFulltextWithNonIACRUrl() throws IOException { + void getFulltextWithNonIACRUrl() throws IOException { BibEntry abram2017WithNonIACRUrl = abram2017; abram2017WithNonIACRUrl.setField(StandardField.URL, "https://example.com"); assertThrows(FetcherException.class, () -> fetcher.findFullText(abram2017WithNonIACRUrl)); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/LibraryOfCongressTest.java b/src/test/java/org/jabref/logic/importer/fetcher/LibraryOfCongressTest.java index b995165689b..53911234bd3 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/LibraryOfCongressTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/LibraryOfCongressTest.java @@ -19,12 +19,12 @@ import static org.mockito.Mockito.when; @FetcherTest -public class LibraryOfCongressTest { +class LibraryOfCongressTest { private LibraryOfCongress fetcher; @BeforeEach - public void setUp() { + void setUp() { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class); when(importFormatPreferences.bibEntryPreferences()).thenReturn(mock(BibEntryPreferences.class)); when(importFormatPreferences.bibEntryPreferences().getKeywordSeparator()).thenReturn(','); @@ -33,7 +33,7 @@ public void setUp() { } @Test - public void performSearchById() throws Exception { + void performSearchById() throws Exception { BibEntry expected = new BibEntry() .withField(StandardField.ADDRESS, "mau, Burlington, MA") .withField(StandardField.AUTHOR, "West, Matthew") @@ -53,12 +53,12 @@ public void performSearchById() throws Exception { } @Test - public void performSearchByEmptyId() throws Exception { + void performSearchByEmptyId() throws Exception { assertEquals(Optional.empty(), fetcher.performSearchById("")); } @Test - public void performSearchByInvalidId() { + void performSearchByInvalidId() { assertThrows(FetcherClientException.class, () -> fetcher.performSearchById("xxx")); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/MedlineFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/MedlineFetcherTest.java index 3c6afb75b5a..8e7fdcf425d 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/MedlineFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/MedlineFetcherTest.java @@ -19,7 +19,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; @FetcherTest -public class MedlineFetcherTest { +class MedlineFetcherTest { private MedlineFetcher fetcher; private BibEntry entryWijedasa; @@ -28,7 +28,7 @@ public class MedlineFetcherTest { private BibEntry bibEntrySari; @BeforeEach - public void setUp() throws InterruptedException { + void setUp() throws InterruptedException { // pause between runs to avoid 403 and 429 at Medline Thread.sleep(1000); @@ -127,12 +127,12 @@ public void setUp() throws InterruptedException { } @Test - public void getName() { + void getName() { assertEquals("Medline/PubMed", fetcher.getName()); } @Test - public void searchByIDWijedasa() throws Exception { + void searchByIDWijedasa() throws Exception { Optional fetchedEntry = fetcher.performSearchById("27670948"); assertTrue(fetchedEntry.isPresent()); @@ -141,7 +141,7 @@ public void searchByIDWijedasa() throws Exception { } @Test - public void searchByIDEndharti() throws Exception { + void searchByIDEndharti() throws Exception { Optional fetchedEntry = fetcher.performSearchById("27670445"); assertTrue(fetchedEntry.isPresent()); @@ -150,7 +150,7 @@ public void searchByIDEndharti() throws Exception { } @Test - public void searchByIDIchikawa() throws Exception { + void searchByIDIchikawa() throws Exception { Optional fetchedEntry = fetcher.performSearchById("26197440"); assertTrue(fetchedEntry.isPresent()); @@ -159,7 +159,7 @@ public void searchByIDIchikawa() throws Exception { } @Test - public void searchByIDSari() throws Exception { + void searchByIDSari() throws Exception { Optional fetchedEntry = fetcher.performSearchById("26867355"); assertTrue(fetchedEntry.isPresent()); @@ -168,39 +168,39 @@ public void searchByIDSari() throws Exception { } @Test - public void multipleEntries() throws Exception { + void multipleEntries() throws Exception { List entryList = fetcher.performSearch("java"); entryList.forEach(entry -> entry.clearField(StandardField.ABSTRACT)); // Remove abstract due to copyright); assertEquals(50, entryList.size()); } @Test - public void withLuceneQueryAuthorDate() throws Exception { + void withLuceneQueryAuthorDate() throws Exception { List entryList = fetcher.performSearch("author:vigmond AND year:2021"); entryList.forEach(entry -> entry.clearField(StandardField.ABSTRACT)); // Remove abstract due to copyright); assertEquals(18, entryList.size()); } @Test - public void withLuceneQueryAuthorDateRange() throws Exception { + void withLuceneQueryAuthorDateRange() throws Exception { List entryList = fetcher.performSearch("author:vigmond AND year-range:2020-2021"); entryList.forEach(entry -> entry.clearField(StandardField.ABSTRACT)); // Remove abstract due to copyright); assertEquals(28, entryList.size()); } @Test - public void invalidSearchTerm() throws Exception { + void invalidSearchTerm() throws Exception { assertThrows(FetcherClientException.class, () -> fetcher.performSearchById("this.is.a.invalid.search.term.for.the.medline.fetcher")); } @Test - public void emptyEntryList() throws Exception { + void emptyEntryList() throws Exception { List entryList = fetcher.performSearch("java is fantastic and awesome "); assertEquals(Collections.emptyList(), entryList); } @Test - public void emptyInput() throws Exception { + void emptyInput() throws Exception { assertEquals(Collections.emptyList(), fetcher.performSearch("")); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/MedraTest.java b/src/test/java/org/jabref/logic/importer/fetcher/MedraTest.java index 56900f8971a..308e8b77101 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/MedraTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/MedraTest.java @@ -19,7 +19,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; @FetcherTest -public class MedraTest { +class MedraTest { private final Medra fetcher = new Medra(); @@ -72,23 +72,23 @@ private static Stream getDoiBibEntryPairs() { } @Test - public void getName() { + void getName() { assertEquals("mEDRA", fetcher.getName()); } @Test - public void performSearchEmptyDOI() throws FetcherException { + void performSearchEmptyDOI() throws FetcherException { assertEquals(Optional.empty(), fetcher.performSearchById("")); } @Test - public void performNonExistent() throws FetcherException { + void performNonExistent() throws FetcherException { assertThrows(FetcherServerException.class, () -> fetcher.performSearchById("10.1016/j.bjoms.2007.08.004")); } @ParameterizedTest @MethodSource("getDoiBibEntryPairs") - public void doiBibEntryPairs(String identifier, Optional expected) throws FetcherException { + void doiBibEntryPairs(String identifier, Optional expected) throws FetcherException { Optional fetchedEntry = fetcher.performSearchById(identifier); assertEquals(expected, fetchedEntry); } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/MrDLibFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/MrDLibFetcherTest.java index f444db731e8..b6dab92086e 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/MrDLibFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/MrDLibFetcherTest.java @@ -16,12 +16,12 @@ import static org.junit.jupiter.api.Assertions.assertFalse; @FetcherTest -public class MrDLibFetcherTest { +class MrDLibFetcherTest { private MrDLibFetcher fetcher; @BeforeEach - public void setUp() { + void setUp() { MrDlibPreferences mrDlibPreferences = new MrDlibPreferences( true, false, @@ -31,7 +31,7 @@ public void setUp() { } @Test - public void performSearch() throws FetcherException { + void performSearch() throws FetcherException { BibEntry bibEntry = new BibEntry(); bibEntry.setField(StandardField.TITLE, "lernen"); List bibEntrys = fetcher.performSearch(bibEntry); @@ -39,7 +39,7 @@ public void performSearch() throws FetcherException { } @Test - public void performSearchForHornecker2006() throws FetcherException { + void performSearchForHornecker2006() throws FetcherException { BibEntry bibEntry = new BibEntry(); bibEntry.setCitationKey("Hornecker:2006:GGT:1124772.1124838"); bibEntry.setField(StandardField.ADDRESS, "New York, NY, USA"); @@ -60,7 +60,7 @@ public void performSearchForHornecker2006() throws FetcherException { } @Test - public void getName() { + void getName() { assertEquals("MDL_FETCHER", fetcher.getName()); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/PicaXmlParserTest.java b/src/test/java/org/jabref/logic/importer/fetcher/PicaXmlParserTest.java index b94abd8ae88..ef59c20cf9c 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/PicaXmlParserTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/PicaXmlParserTest.java @@ -18,7 +18,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; @FetcherTest -public class PicaXmlParserTest { +class PicaXmlParserTest { private void doTest(String xmlName, int expectedSize, List resourceNames) throws Exception { try (InputStream is = PicaXmlParserTest.class.getResourceAsStream(xmlName)) { @@ -35,22 +35,22 @@ private void doTest(String xmlName, int expectedSize, List resourceNames } @Test - public void emptyResult() throws Exception { + void emptyResult() throws Exception { doTest("gvk_empty_result_because_of_bad_query.xml", 0, Collections.emptyList()); } @Test - public void resultFor797485368() throws Exception { + void resultFor797485368() throws Exception { doTest("gvk_result_for_797485368.xml", 1, Collections.singletonList("gvk_result_for_797485368.bib")); } @Test - public void gMP() throws Exception { + void gMP() throws Exception { doTest("gvk_gmp.xml", 2, Arrays.asList("gvk_gmp.1.bib", "gvk_gmp.2.bib")); } @Test - public void subTitleTest() throws Exception { + void subTitleTest() throws Exception { try (InputStream is = PicaXmlParserTest.class.getResourceAsStream("gvk_artificial_subtitle_test.xml")) { PicaXmlParser parser = new PicaXmlParser(); List entries = parser.parseEntries(is); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/ResearchGateTest.java b/src/test/java/org/jabref/logic/importer/fetcher/ResearchGateTest.java index 8ccc6f6f1af..72d886bf7fe 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/ResearchGateTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/ResearchGateTest.java @@ -27,7 +27,7 @@ @FetcherTest @DisabledOnCIServer("Blocked by Cloudflare") -public class ResearchGateTest { +class ResearchGateTest { private static final String URL_PDF = "https://www.researchgate.net/profile/Abdurrazzak-Gehani/publication/4207355_Paranoid_a_global_secure_file_access_control_system/links/5457747d0cf2cf516480995e/Paranoid-a-global-secure-file-access-control-system.pdf"; private final String URL_PAGE = "https://www.researchgate.net/publication/4207355_Paranoid_a_global_secure_file_access_control_system"; @@ -35,7 +35,7 @@ public class ResearchGateTest { private BibEntry entry; @BeforeEach - public void setUp() { + void setUp() { fetcher = new ResearchGate(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS)); entry = new BibEntry(StandardEntryType.InProceedings); entry.setField(StandardField.DOI, "10.1109/CSAC.2005.42"); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/RfcFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/RfcFetcherTest.java index ac5b57c5587..e89e028129d 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/RfcFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/RfcFetcherTest.java @@ -20,7 +20,7 @@ import static org.mockito.Mockito.mock; @FetcherTest -public class RfcFetcherTest { +class RfcFetcherTest { private RfcFetcher fetcher = new RfcFetcher(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS)); private BibEntry bibEntry = new BibEntry(StandardEntryType.Misc) @@ -39,12 +39,12 @@ public class RfcFetcherTest { .withField(StandardField.ABSTRACT, "The Hypertext Transfer Protocol (HTTP) is an application-level protocol with the lightness and speed necessary for distributed, collaborative, hypermedia information systems. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind."); @Test - public void getNameReturnsEqualIdName() { + void getNameReturnsEqualIdName() { assertEquals("RFC", fetcher.getName()); } @Test - public void performSearchByIdFindsEntryWithDraftIdentifier() throws Exception { + void performSearchByIdFindsEntryWithDraftIdentifier() throws Exception { BibEntry bibDraftEntry = new BibEntry(StandardEntryType.TechReport) .withField(InternalField.KEY_FIELD, "fielding-http-spec-01") .withField(StandardField.AUTHOR, "Henrik Nielsen and Roy T. Fielding and Tim Berners-Lee") @@ -67,12 +67,12 @@ public void performSearchByIdFindsEntryWithDraftIdentifier() throws Exception { @ParameterizedTest @CsvSource({"rfc1945", "RFC1945", "1945"}) - public void performSearchByIdFindsEntry(String identifier) throws Exception { + void performSearchByIdFindsEntry(String identifier) throws Exception { assertEquals(Optional.of(bibEntry), fetcher.performSearchById(identifier)); } @Test - public void performSearchByIdFindsNothingWithoutIdentifier() throws Exception { + void performSearchByIdFindsNothingWithoutIdentifier() throws Exception { assertEquals(Optional.empty(), fetcher.performSearchById("")); } @@ -83,7 +83,7 @@ public void performSearchByIdFindsNothingWithoutIdentifier() throws Exception { "RFC9999", // invalid identifier "banana"}) - public void performSearchByIdFindsNothingWithValidDraftIdentifier(String identifier) throws Exception { + void performSearchByIdFindsNothingWithValidDraftIdentifier(String identifier) throws Exception { assertThrows(FetcherClientException.class, () -> fetcher.performSearchById(identifier)); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/ScholarArchiveFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/ScholarArchiveFetcherTest.java index 3ebe337344c..5aa8522cc83 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/ScholarArchiveFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/ScholarArchiveFetcherTest.java @@ -16,12 +16,12 @@ import static org.junit.jupiter.api.Assertions.assertTrue; @FetcherTest -public class ScholarArchiveFetcherTest { +class ScholarArchiveFetcherTest { private ScholarArchiveFetcher fetcher; private BibEntry bibEntry; @BeforeEach - public void setUp() { + void setUp() { fetcher = new ScholarArchiveFetcher(); bibEntry = new BibEntry(StandardEntryType.InProceedings) .withField(StandardField.TITLE, "BPELscript: A Simplified Script Syntax for WS-BPEL 2.0") @@ -30,13 +30,13 @@ public void setUp() { } @Test - public void getNameReturnsCorrectName() { + void getNameReturnsCorrectName() { assertEquals("ScholarArchive", fetcher.getName()); } @Test @Disabled("We seem to be blocked") - public void performSearchReturnsExpectedResults() throws FetcherException { + void performSearchReturnsExpectedResults() throws FetcherException { List fetchedEntries = fetcher.performSearch("bpelscript"); fetchedEntries.forEach(entry -> entry.clearField(StandardField.ABSTRACT)); assertTrue(fetchedEntries.contains(bibEntry), "Found the following entries " + fetchedEntries); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/SearchBasedFetcherCapabilityTest.java b/src/test/java/org/jabref/logic/importer/fetcher/SearchBasedFetcherCapabilityTest.java index 8773a2d84b6..5de34281403 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/SearchBasedFetcherCapabilityTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/SearchBasedFetcherCapabilityTest.java @@ -15,7 +15,6 @@ import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -50,7 +49,7 @@ default void supportsAuthorSearch() throws Exception { String author = bibEntry.getField(StandardField.AUTHOR).orElse(""); // The co-authors differ, thus we check for the author present at all papers - getTestAuthors().forEach(expectedAuthor -> Assertions.assertTrue(author.contains(expectedAuthor.replace("\"", "")))); + getTestAuthors().forEach(expectedAuthor -> assertTrue(author.contains(expectedAuthor.replace("\"", "")))); }); } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/SemanticScholarTest.java b/src/test/java/org/jabref/logic/importer/fetcher/SemanticScholarTest.java index c05646e66ac..f9f9a75a594 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/SemanticScholarTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/SemanticScholarTest.java @@ -163,13 +163,13 @@ void searchByQuotedQueryFindsEntry() throws Exception { } @Test - public void performSearchByEmptyQuery() throws Exception { + void performSearchByEmptyQuery() throws Exception { assertEquals(Collections.emptyList(), fetcher.performSearch("")); } @Test @Disabled("We seem to be blocked") - public void findByEntry() throws Exception { + void findByEntry() throws Exception { BibEntry barrosEntry = new BibEntry(StandardEntryType.Article) .withField(StandardField.TITLE, "Formalising BPMN Service Interaction Patterns") .withField(StandardField.AUTHOR, "Chiara Muzi and Luise Pufahl and Lorenzo Rossi and M. Weske and F. Tiezzi") diff --git a/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java index 7ad008e2d53..70ba582cf35 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java @@ -15,7 +15,6 @@ import org.jabref.testutils.category.FetcherTest; import kong.unirest.core.json.JSONObject; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -168,7 +167,7 @@ public void supportsYearRangeSearch() { } @Test - public void supportsPhraseSearch() throws Exception { + void supportsPhraseSearch() throws Exception { // Normal search should match due to Redmiles, Elissa M., phrase search on the other hand should not find it. BibEntry expected = new BibEntry(StandardEntryType.InCollection) .withField(StandardField.AUTHOR, "Booth, Kayla M. and Dosono, Bryan and Redmiles, Elissa M. and Morales, Miraida and Depew, Michael and Farzan, Rosta and Herman, Everett and Trahan, Keith and Tananis, Cindy") @@ -187,17 +186,17 @@ public void supportsPhraseSearch() throws Exception { List result = fetcher.performSearch("author:Redmiles David"); // Phrase search should be a subset of the normal search result. - Assertions.assertTrue(result.containsAll(resultPhrase)); + assertTrue(result.containsAll(resultPhrase)); result.removeAll(resultPhrase); - Assertions.assertEquals(Collections.singletonList(expected), result); + assertEquals(Collections.singletonList(expected), result); } @Test - public void supportsBooleanANDSearch() throws Exception { + void supportsBooleanANDSearch() throws Exception { List resultJustByAuthor = fetcher.performSearch("author:\"Redmiles, David\""); List result = fetcher.performSearch("author:\"Redmiles, David\" AND journal:\"Computer Supported Cooperative Work\""); - Assertions.assertTrue(resultJustByAuthor.containsAll(result)); + assertTrue(resultJustByAuthor.containsAll(result)); List allEntriesFromCSCW = result.stream() .filter(bibEntry -> "Computer Supported Cooperative Work (CSCW)" .equals(bibEntry.getField(StandardField.JOURNAL) diff --git a/src/test/java/org/jabref/logic/importer/fetcher/SpringerLinkTest.java b/src/test/java/org/jabref/logic/importer/fetcher/SpringerLinkTest.java index 67663cc27e6..2be3a5746ec 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/SpringerLinkTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/SpringerLinkTest.java @@ -21,32 +21,32 @@ import static org.mockito.Mockito.when; @FetcherTest -public class SpringerLinkTest { +class SpringerLinkTest { private final ImporterPreferences importerPreferences = mock(ImporterPreferences.class); private SpringerLink finder; private BibEntry entry; @BeforeEach - public void setUp() { + void setUp() { when(importerPreferences.getApiKeys()).thenReturn(FXCollections.emptyObservableSet()); finder = new SpringerLink(importerPreferences); entry = new BibEntry(); } @Test - public void rejectNullParameter() { + void rejectNullParameter() { assertThrows(NullPointerException.class, () -> finder.findFullText(null)); } @Test - public void doiNotPresent() throws IOException { + void doiNotPresent() throws IOException { assertEquals(Optional.empty(), finder.findFullText(entry)); } @DisabledOnCIServer("Disable on CI Server to not hit the API call limit") @Test - public void findByDOI() throws IOException { + void findByDOI() throws IOException { entry.setField(StandardField.DOI, "10.1186/s13677-015-0042-8"); assertEquals( Optional.of(new URL("http://link.springer.com/content/pdf/10.1186/s13677-015-0042-8.pdf")), @@ -55,7 +55,7 @@ public void findByDOI() throws IOException { @DisabledOnCIServer("Disable on CI Server to not hit the API call limit") @Test - public void notFoundByDOI() throws IOException { + void notFoundByDOI() throws IOException { entry.setField(StandardField.DOI, "10.1186/unknown-doi"); assertEquals(Optional.empty(), finder.findFullText(entry)); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/TitleFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/TitleFetcherTest.java index c34478cd57a..8e659aac651 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/TitleFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/TitleFetcherTest.java @@ -17,13 +17,13 @@ import static org.mockito.Mockito.mock; @FetcherTest -public class TitleFetcherTest { +class TitleFetcherTest { private TitleFetcher fetcher; private BibEntry bibEntryBischof2009; @BeforeEach - public void setUp() { + void setUp() { fetcher = new TitleFetcher(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS)); bibEntryBischof2009 = new BibEntry(StandardEntryType.InProceedings) @@ -38,24 +38,24 @@ public void setUp() { } @Test - public void getName() { + void getName() { assertEquals("Title", fetcher.getName()); } @Test - public void performSearchKopp2007() throws FetcherException { + void performSearchKopp2007() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("BPELscript: A simplified script syntax for WS-BPEL 2.0"); assertEquals(Optional.of(bibEntryBischof2009), fetchedEntry); } @Test - public void performSearchEmptyTitle() throws FetcherException { + void performSearchEmptyTitle() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById(""); assertEquals(Optional.empty(), fetchedEntry); } @Test - public void performSearchInvalidTitle() throws FetcherException { + void performSearchInvalidTitle() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("An unknown title where noi DOI can be determined"); assertEquals(Optional.empty(), fetchedEntry); } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcherTest.java index 17eca13ab80..0034c3360c3 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcherTest.java @@ -22,10 +22,10 @@ @Disabled("Page https://doi-to-bibtex-converter.herokuapp.com is down") @FetcherTest -public class DoiToBibtexConverterComIsbnFetcherTest extends AbstractIsbnFetcherTest { +class DoiToBibtexConverterComIsbnFetcherTest extends AbstractIsbnFetcherTest { @BeforeEach - public void setUp() { + void setUp() { bibEntryEffectiveJava = new BibEntry(StandardEntryType.Book) .withField(StandardField.TITLE, "Effective Java(TM) Programming Language Guide (2nd Edition) (The Java Series)") .withField(StandardField.PUBLISHER, "Prentice Hall PTR") @@ -73,17 +73,17 @@ public void authorsAreCorrectlyFormatted() throws Exception { } @Test - public void isbnNeitherAvailable() { + void isbnNeitherAvailable() { assertThrows(FetcherClientException.class, () -> fetcher.performSearchById("9785646216541")); } @Test - public void searchByIdFailedWithLongISBN() { + void searchByIdFailedWithLongISBN() { assertThrows(FetcherClientException.class, () -> fetcher.performSearchById("9780321356680")); } @Test - public void searchByIdFailedWithShortISBN() throws FetcherException { + void searchByIdFailedWithShortISBN() throws FetcherException { assertThrows(FetcherClientException.class, () -> fetcher.performSearchById("0321356683")); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/EbookDeIsbnFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/EbookDeIsbnFetcherTest.java index 842cae00daa..985602bcdec 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/EbookDeIsbnFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/EbookDeIsbnFetcherTest.java @@ -23,10 +23,10 @@ @Disabled @FetcherTest -public class EbookDeIsbnFetcherTest extends AbstractIsbnFetcherTest { +class EbookDeIsbnFetcherTest extends AbstractIsbnFetcherTest { @BeforeEach - public void setUp() { + void setUp() { bibEntryEffectiveJava = new BibEntry(StandardEntryType.Book) .withCitationKey("9780134685991") .withField(StandardField.TITLE, "Effective Java") @@ -85,7 +85,7 @@ public void authorsAreCorrectlyFormatted() throws Exception { * not available on ebook.de. */ @Test - public void searchForValidButNotFoundISBN() throws Exception { + void searchForValidButNotFoundISBN() throws Exception { assertThrows(FetcherClientException.class, () -> fetcher.performSearchById("3728128155")); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/GVKIsbnFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/GVKIsbnFetcherTest.java index 6fe2e9f2643..9319ec74651 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/GVKIsbnFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/GVKIsbnFetcherTest.java @@ -18,12 +18,12 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; -public class GVKIsbnFetcherTest extends AbstractIsbnFetcherTest { +class GVKIsbnFetcherTest extends AbstractIsbnFetcherTest { private BibEntry bibEntryEffectiveJavaLongISBN; @BeforeEach - public void setUp() { + void setUp() { bibEntryEffectiveJava = new BibEntry(StandardEntryType.Book) .withField(StandardField.TITLE, "Effective Java(TM) Programming Language Guide (2nd Edition) (The Java Series)") .withField(StandardField.PUBLISHER, "Prentice Hall PTR") @@ -95,7 +95,7 @@ public void authorsAreCorrectlyFormatted() throws Exception { * Checks whether the given ISBN is NOT available at any ISBN fetcher */ @Test - public void isbnNeitherAvailableOnEbookDeNorOrViaOpenLibrary() throws Exception { + void isbnNeitherAvailableOnEbookDeNorOrViaOpenLibrary() throws Exception { // In this test, the ISBN needs to be a valid (syntax+checksum) ISBN number // However, the ISBN number must not be assigned to a real book assertEquals(Optional.empty(), fetcher.performSearchById("9785646216541")); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/OpenLibraryIsbnFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/OpenLibraryIsbnFetcherTest.java index 2afb1aea590..f88b2ad91db 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/OpenLibraryIsbnFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/OpenLibraryIsbnFetcherTest.java @@ -18,10 +18,10 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.Mockito.mock; -public class OpenLibraryIsbnFetcherTest extends AbstractIsbnFetcherTest { +class OpenLibraryIsbnFetcherTest extends AbstractIsbnFetcherTest { @BeforeEach - public void setUp() { + void setUp() { bibEntryEffectiveJava = new BibEntry(StandardEntryType.Book) .withField(StandardField.TITLE, "Effective Java(TM) Programming Language Guide (2nd Edition) (The Java Series)") .withField(StandardField.PUBLISHER, "Prentice Hall PTR") @@ -71,7 +71,7 @@ public void authorsAreCorrectlyFormatted() throws Exception { * Checks whether the given ISBN is NOT available at any ISBN fetcher */ @Test - public void isbnNeitherAvailableOnEbookDeNorOrViaOpenLibrary() throws Exception { + void isbnNeitherAvailableOnEbookDeNorOrViaOpenLibrary() throws Exception { // In this test, the ISBN needs to be a valid (syntax+checksum) ISBN number // However, the ISBN number must not be assigned to a real book assertThrows(FetcherClientException.class, () -> fetcher.performSearchById("9785646216541")); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformerTest.java index e501ea694ae..4e6f03c3dbb 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformerTest.java @@ -4,6 +4,7 @@ import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; +import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -35,6 +36,7 @@ public String getTitlePrefix() { } @Override + @Test public void convertYearField() throws Exception { ArXivQueryTransformer transformer = getTransformer(); String queryString = "2018"; diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/CiteSeerQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/CiteSeerQueryTransformerTest.java index 49278bb271a..dacf6d25f9d 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/CiteSeerQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/CiteSeerQueryTransformerTest.java @@ -28,6 +28,7 @@ protected CiteSeerQueryTransformer getTransformer() { } @Override + @Test public void convertYearField() throws Exception { String queryString = "year:2023"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); @@ -41,6 +42,7 @@ public void convertYearField() throws Exception { } @Override + @Test public void convertYearRangeField() throws Exception { String queryString = "year-range:2019-2023"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); @@ -54,7 +56,7 @@ public void convertYearRangeField() throws Exception { } @Test - public void convertPageField() throws Exception { + void convertPageField() throws Exception { String queryString = "page:2"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); CiteSeerQueryTransformer transformer = getTransformer(); @@ -65,7 +67,7 @@ public void convertPageField() throws Exception { } @Test - public void convertPageSizeField() throws Exception { + void convertPageSizeField() throws Exception { String queryString = "pageSize:20"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); CiteSeerQueryTransformer transformer = getTransformer(); @@ -76,7 +78,7 @@ public void convertPageSizeField() throws Exception { } @Test - public void convertSortByField() throws Exception { + void convertSortByField() throws Exception { String queryString = "sortBy:relevance"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); CiteSeerQueryTransformer transformer = getTransformer(); @@ -87,7 +89,7 @@ public void convertSortByField() throws Exception { } @Test - public void convertMultipleAuthors() throws Exception { + void convertMultipleAuthors() throws Exception { String queryString = "author:\"Wang Wei\" author:\"Zhang Pingwen\" author:\"Zhang Zhifei\""; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); CiteSeerQueryTransformer transformer = getTransformer(); @@ -134,7 +136,7 @@ private static Stream getJSONWithYearVariations() throws FetcherExcep @ParameterizedTest @MethodSource("getJSONWithYearVariations") - public void compareJSONRequestsWithYearVariations(JSONObject expected, Integer yearStart, Integer yearEnd, JSONObject actual) throws Exception { + void compareJSONRequestsWithYearVariations(JSONObject expected, Integer yearStart, Integer yearEnd, JSONObject actual) throws Exception { expected.put("yearStart", yearStart); expected.put("yearEnd", yearEnd); assertEquals(expected, actual); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformerTest.java index effd799f4bf..55ea4529c0d 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformerTest.java @@ -4,6 +4,7 @@ import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; +import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -35,6 +36,7 @@ public String getTitlePrefix() { } @Override + @Test public void convertYearField() throws Exception { String queryString = "2018"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); @@ -43,6 +45,7 @@ public void convertYearField() throws Exception { } @Override + @Test public void convertYearRangeField() throws Exception { String queryString = "year-range:2018-2021"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformerTest.java index 1801576f0b2..4dc762da921 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformerTest.java @@ -4,6 +4,7 @@ import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; +import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -35,6 +36,7 @@ public String getTitlePrefix() { } @Override + @Test public void convertYearField() throws Exception { String queryString = "year:2015"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); @@ -44,6 +46,7 @@ public void convertYearField() throws Exception { } @Override + @Test public void convertYearRangeField() throws Exception { String queryString = "year-range:2012-2015"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformerTest.java index 0f366ece141..98b0ce26de1 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformerTest.java @@ -5,6 +5,7 @@ import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -36,6 +37,7 @@ public String getTitlePrefix() { } @Override + @Test public void convertYearField() throws Exception { String queryString = "year:2018"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); @@ -47,6 +49,7 @@ public void convertYearField() throws Exception { @Disabled("Not supported by GVK") @Override + @Test public void convertYearRangeField() throws Exception { } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/IEEEQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/IEEEQueryTransformerTest.java index 13cc92863ae..3044c5cf784 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/IEEEQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/IEEEQueryTransformerTest.java @@ -5,6 +5,7 @@ import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; +import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; @@ -39,6 +40,7 @@ public String getTitlePrefix() { } @Override + @Test public void convertJournalFieldPrefix() throws Exception { IEEEQueryTransformer transformer = getTransformer(); @@ -50,6 +52,7 @@ public void convertJournalFieldPrefix() throws Exception { } @Override + @Test public void convertYearField() throws Exception { // IEEE does not support year range // Thus, a generic test does not work @@ -65,6 +68,7 @@ public void convertYearField() throws Exception { } @Override + @Test public void convertYearRangeField() throws Exception { IEEEQueryTransformer transformer = getTransformer(); @@ -86,7 +90,7 @@ private static Stream getTitleTestData() { @ParameterizedTest @MethodSource("getTitleTestData") - public void stopWordRemoval(String expected, String queryString) throws Exception { + void stopWordRemoval(String expected, String queryString) throws Exception { QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional result = getTransformer().transformLuceneQuery(luceneQuery); assertEquals(Optional.ofNullable(expected), result); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformerTest.java index 85a1db5c454..8baeb76555c 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformerTest.java @@ -4,6 +4,7 @@ import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; +import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -35,6 +36,7 @@ public String getTitlePrefix() { } @Override + @Test public void convertYearField() throws Exception { String queryString = "year:2018"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); @@ -43,6 +45,7 @@ public void convertYearField() throws Exception { } @Override + @Test public void convertYearRangeField() throws Exception { String queryString = "year-range:2018-2021"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/SpringerQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/SpringerQueryTransformerTest.java index fb53f80ba37..81bba3e7715 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/SpringerQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/SpringerQueryTransformerTest.java @@ -4,6 +4,7 @@ import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; +import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -35,6 +36,7 @@ public String getTitlePrefix() { } @Override + @Test public void convertYearField() throws Exception { String queryString = "year:2015"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); @@ -45,6 +47,7 @@ public void convertYearField() throws Exception { } @Override + @Test public void convertYearRangeField() throws Exception { String queryString = "year-range:2012-2015"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformerTest.java index 54bd9c12247..70b20f217ec 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformerTest.java @@ -4,11 +4,13 @@ import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; +import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; public abstract class YearAndYearRangeByFilteringQueryTransformerTest extends YearRangeByFilteringQueryTransformerTest { @Override + @Test public void convertYearField() throws Exception { YearAndYearRangeByFilteringQueryTransformer transformer = getTransformer(); String queryString = "year:2021"; diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java index b9410fa6c7b..ce8eb38d453 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java @@ -4,12 +4,14 @@ import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; +import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; public abstract class YearRangeByFilteringQueryTransformerTest extends InfixTransformerTest { @Override + @Test public void convertYearRangeField() throws Exception { YearRangeByFilteringQueryTransformer transformer = getTransformer(); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/ZbMathQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/ZbMathQueryTransformerTest.java index 0b9cd9a88d1..6be32badf55 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/ZbMathQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/ZbMathQueryTransformerTest.java @@ -4,6 +4,7 @@ import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; +import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -35,6 +36,7 @@ public String getTitlePrefix() { } @Override + @Test public void convertYearField() throws Exception { String queryString = "year:2015"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); @@ -44,6 +46,7 @@ public void convertYearField() throws Exception { } @Override + @Test public void convertYearRangeField() throws Exception { String queryString = "year-range:2012-2015"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/ACMPortalParserTest.java b/src/test/java/org/jabref/logic/importer/fileformat/ACMPortalParserTest.java index d9f641ab855..80dfde0ac8c 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/ACMPortalParserTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/ACMPortalParserTest.java @@ -24,7 +24,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; @FetcherTest -public class ACMPortalParserTest { +class ACMPortalParserTest { ACMPortalParser parser; List searchEntryList; diff --git a/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterFilesTest.java b/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterFilesTest.java index 6c5634abb93..e30bb8b8371 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterFilesTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterFilesTest.java @@ -7,7 +7,7 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -public class BiblioscapeImporterFilesTest { +class BiblioscapeImporterFilesTest { private static final String FILE_ENDING = ".txt"; @@ -19,13 +19,13 @@ private static Stream fileNames() throws IOException { @ParameterizedTest @MethodSource("fileNames") - public void isRecognizedFormat(String fileName) throws IOException { + void isRecognizedFormat(String fileName) throws IOException { ImporterTestEngine.testIsRecognizedFormat(new BiblioscapeImporter(), fileName); } @ParameterizedTest @MethodSource("fileNames") - public void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws Exception { ImporterTestEngine.testImportEntries(new BiblioscapeImporter(), fileName, FILE_ENDING); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTest.java index 2bf72ec8cf3..8909cad12f1 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTest.java @@ -10,38 +10,38 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class BiblioscapeImporterTest { +class BiblioscapeImporterTest { private BiblioscapeImporter importer; @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { importer = new BiblioscapeImporter(); } @Test - public void getFormatName() { + void getFormatName() { assertEquals("Biblioscape", importer.getName()); } @Test - public void sGetExtensions() { + void sGetExtensions() { assertEquals(StandardFileType.TXT, importer.getFileType()); } @Test - public void getDescription() { + void getDescription() { assertEquals("Imports a Biblioscape Tag File.\n" + "Several Biblioscape field types are ignored. Others are only included in the BibTeX field \"comment\".", importer.getDescription()); } @Test - public void getCLIID() { + void getCLIID() { assertEquals("biblioscape", importer.getId()); } @Test - public void importEntriesAbortion() throws Throwable { + void importEntriesAbortion() throws Throwable { Path file = Path.of(BiblioscapeImporter.class.getResource("BiblioscapeImporterTestCorrupt.txt").toURI()); assertEquals(Collections.emptyList(), importer.importDatabase(file).getDatabase().getEntries()); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTypesTest.java b/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTypesTest.java index e0aaded5a0c..5aadf0309fe 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTypesTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTypesTest.java @@ -12,8 +12,9 @@ import org.jabref.model.entry.types.EntryType; import org.jabref.model.entry.types.StandardEntryType; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.params.ParameterizedTest; + +import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; @@ -49,6 +50,6 @@ void importConvertsToCorrectBibType(String biblioscapeType, EntryType bibtexType entry.setField(StandardField.YEAR, "1999"); entry.setType(bibtexType); - Assertions.assertEquals(Collections.singletonList(entry), bibEntries); + assertEquals(Collections.singletonList(entry), bibEntries); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/BibtexImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/BibtexImporterTest.java index 351ddf1fe9f..3a3465ac620 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/BibtexImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/BibtexImporterTest.java @@ -37,23 +37,23 @@ * Tests for writing can be found at {@link org.jabref.logic.exporter.BibtexDatabaseWriterTest}. * Tests for parsing single entry BibTeX can be found at {@link BibtexParserTest} */ -public class BibtexImporterTest { +class BibtexImporterTest { private BibtexImporter importer; @BeforeEach - public void setUp() { + void setUp() { importer = new BibtexImporter(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS), new DummyFileUpdateMonitor()); } @Test - public void isRecognizedFormat() throws IOException, URISyntaxException { + void isRecognizedFormat() throws IOException, URISyntaxException { Path file = Path.of(BibtexImporterTest.class.getResource("BibtexImporter.examples.bib").toURI()); assertTrue(importer.isRecognizedFormat(file)); } @Test - public void importEntries() throws IOException, URISyntaxException { + void importEntries() throws IOException, URISyntaxException { Path file = Path.of(BibtexImporterTest.class.getResource("BibtexImporter.examples.bib").toURI()); List bibEntries = importer.importDatabase(file).getDatabase().getEntries(); @@ -121,17 +121,17 @@ public void importEntries() throws IOException, URISyntaxException { } @Test - public void getFormatName() { + void getFormatName() { assertEquals("BibTeX", importer.getName()); } @Test - public void getExtensions() { + void getExtensions() { assertEquals(StandardFileType.BIBTEX_DB, importer.getFileType()); } @Test - public void recognizesDatabaseID() throws Exception { + void recognizesDatabaseID() throws Exception { Path file = Path.of(BibtexImporterTest.class.getResource("AutosavedSharedDatabase.bib").toURI()); String sharedDatabaseID = importer.importDatabase(file).getDatabase().getSharedDatabaseID().get(); assertEquals("13ceoc8dm42f5g1iitao3dj2ap", sharedDatabaseID); @@ -149,7 +149,7 @@ static Stream parsingOfEncodedFileWithHeader() { @ParameterizedTest @MethodSource - public void parsingOfEncodedFileWithHeader(Charset charset, String fileName) throws Exception { + void parsingOfEncodedFileWithHeader(Charset charset, String fileName) throws Exception { ParserResult parserResult = importer.importDatabase( Path.of(BibtexImporterTest.class.getResource(fileName).toURI())); assertEquals(Optional.of(charset), parserResult.getMetaData().getEncoding()); @@ -157,7 +157,7 @@ public void parsingOfEncodedFileWithHeader(Charset charset, String fileName) thr @ParameterizedTest @CsvSource({"encoding-windows-1252-with-header.bib", "encoding-windows-1252-without-header.bib"}) - public void parsingOfWindows1252EncodedFileReadsDegreeCharacterCorrectly(String filename) throws Exception { + void parsingOfWindows1252EncodedFileReadsDegreeCharacterCorrectly(String filename) throws Exception { ParserResult parserResult = importer.importDatabase( Path.of(BibtexImporterTest.class.getResource(filename).toURI())); assertEquals( @@ -167,8 +167,8 @@ public void parsingOfWindows1252EncodedFileReadsDegreeCharacterCorrectly(String @ParameterizedTest @CsvSource({"encoding-utf-8-with-header.bib", "encoding-utf-8-without-header.bib", - "encoding-utf-16BE-with-header.bib", "encoding-utf-16BE-without-header.bib"}) - public void parsingFilesReadsUmlautCharacterCorrectly(String filename) throws Exception { + "encoding-utf-16BE-with-header.bib", "encoding-utf-16BE-without-header.bib"}) + void parsingFilesReadsUmlautCharacterCorrectly(String filename) throws Exception { ParserResult parserResult = importer.importDatabase( Path.of(BibtexImporterTest.class.getResource(filename).toURI())); assertEquals( @@ -187,14 +187,14 @@ private static Stream encodingExplicitlySuppliedCorrectlyDetermined() @ParameterizedTest @MethodSource - public void encodingExplicitlySuppliedCorrectlyDetermined(String filename, boolean encodingExplicitlySupplied) throws Exception { + void encodingExplicitlySuppliedCorrectlyDetermined(String filename, boolean encodingExplicitlySupplied) throws Exception { ParserResult parserResult = importer.importDatabase( Path.of(BibtexImporterTest.class.getResource(filename).toURI())); assertEquals(encodingExplicitlySupplied, parserResult.getMetaData().getEncodingExplicitlySupplied()); } @Test - public void wrongEncodingSupplied() throws Exception { + void wrongEncodingSupplied() throws Exception { ParserResult parserResult = importer.importDatabase( Path.of(BibtexImporterTest.class.getResource("encoding-windows-1252-but-utf-8-declared--decoding-fails.bib").toURI())); @@ -205,7 +205,7 @@ public void wrongEncodingSupplied() throws Exception { } @Test - public void encodingNotSupplied() throws Exception { + void encodingNotSupplied() throws Exception { ParserResult parserResult = importer.importDatabase( Path.of(BibtexImporterTest.class.getResource("encoding-utf-8-without-header.bib").toURI())); assertFalse(parserResult.getMetaData().getEncodingExplicitlySupplied()); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/CffImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/CffImporterTest.java index 8c953080a6b..195d7bd713b 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/CffImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/CffImporterTest.java @@ -30,7 +30,7 @@ public class CffImporterTest { private CffImporter importer; @BeforeEach - public void setUp() { + void setUp() { CitationKeyPatternPreferences citationKeyPatternPreferences = mock( CitationKeyPatternPreferences.class, Answers.RETURNS_SMART_NULLS @@ -41,34 +41,34 @@ public void setUp() { } @Test - public void getFormatName() { + void getFormatName() { assertEquals("CFF", importer.getName()); } @Test - public void getCLIId() { + void getCLIId() { assertEquals("cff", importer.getId()); } @Test - public void sGetExtensions() { + void sGetExtensions() { assertEquals(StandardFileType.CFF, importer.getFileType()); } @Test - public void getDescription() { + void getDescription() { assertEquals("Importer for the CFF format, which is intended to make software and datasets citable.", importer.getDescription()); } @Test - public void isRecognizedFormat() throws IOException, URISyntaxException { + void isRecognizedFormat() throws IOException, URISyntaxException { Path file = Path.of(CffImporterTest.class.getResource("CffImporterTestValid.cff").toURI()); assertTrue(importer.isRecognizedFormat(file)); } @Test - public void isRecognizedFormatReject() throws IOException, URISyntaxException { + void isRecognizedFormatReject() throws IOException, URISyntaxException { List list = Arrays.asList("CffImporterTestInvalid1.cff", "CffImporterTestInvalid2.cff"); for (String string : list) { Path file = Path.of(CffImporterTest.class.getResource(string).toURI()); @@ -77,7 +77,7 @@ public void isRecognizedFormatReject() throws IOException, URISyntaxException { } @Test - public void importEntriesBasic() throws IOException, URISyntaxException { + void importEntriesBasic() throws IOException, URISyntaxException { Path file = Path.of(CffImporterTest.class.getResource("CffImporterTestValid.cff").toURI()); List bibEntries = importer.importDatabase(file).getDatabase().getEntries(); BibEntry entry = bibEntries.getFirst(); @@ -86,7 +86,7 @@ public void importEntriesBasic() throws IOException, URISyntaxException { } @Test - public void importEntriesMultipleAuthors() throws IOException, URISyntaxException { + void importEntriesMultipleAuthors() throws IOException, URISyntaxException { Path file = Path.of(CffImporterTest.class.getResource("CffImporterTestValidMultAuthors.cff").toURI()); List bibEntries = importer.importDatabase(file).getDatabase().getEntries(); BibEntry entry = bibEntries.getFirst(); @@ -95,7 +95,7 @@ public void importEntriesMultipleAuthors() throws IOException, URISyntaxExceptio } @Test - public void importEntriesSwhIdSelect1() throws IOException, URISyntaxException { + void importEntriesSwhIdSelect1() throws IOException, URISyntaxException { Path file = Path.of(CffImporterTest.class.getResource("CffImporterTestValidSwhIdSelect1.cff").toURI()); List bibEntries = importer.importDatabase(file).getDatabase().getEntries(); BibEntry entry = bibEntries.getFirst(); @@ -105,7 +105,7 @@ public void importEntriesSwhIdSelect1() throws IOException, URISyntaxException { } @Test - public void importEntriesSwhIdSelect2() throws IOException, URISyntaxException { + void importEntriesSwhIdSelect2() throws IOException, URISyntaxException { Path file = Path.of(CffImporterTest.class.getResource("CffImporterTestValidSwhIdSelect2.cff").toURI()); List bibEntries = importer.importDatabase(file).getDatabase().getEntries(); BibEntry entry = bibEntries.getFirst(); @@ -115,7 +115,7 @@ public void importEntriesSwhIdSelect2() throws IOException, URISyntaxException { } @Test - public void importEntriesDataset() throws IOException, URISyntaxException { + void importEntriesDataset() throws IOException, URISyntaxException { Path file = Path.of(CffImporterTest.class.getResource("CffImporterTestDataset.cff").toURI()); BibEntry entry = importer.importDatabase(file).getDatabase().getEntries().getFirst(); BibEntry expected = getPopulatedEntry(); @@ -124,7 +124,7 @@ public void importEntriesDataset() throws IOException, URISyntaxException { } @Test - public void importEntriesDoiSelect() throws IOException, URISyntaxException { + void importEntriesDoiSelect() throws IOException, URISyntaxException { Path file = Path.of(CffImporterTest.class.getResource("CffImporterTestDoiSelect.cff").toURI()); BibEntry entry = importer.importDatabase(file).getDatabase().getEntries().getFirst(); BibEntry expected = getPopulatedEntry(); @@ -132,7 +132,7 @@ public void importEntriesDoiSelect() throws IOException, URISyntaxException { } @Test - public void importEntriesUnknownFields() throws IOException, URISyntaxException { + void importEntriesUnknownFields() throws IOException, URISyntaxException { Path file = Path.of(CffImporterTest.class.getResource("CffImporterTestUnknownFields.cff").toURI()); BibEntry entry = importer.importDatabase(file).getDatabase().getEntries().getFirst(); BibEntry expected = getPopulatedEntry().withField(new UnknownField("commit"), "10ad"); @@ -140,7 +140,7 @@ public void importEntriesUnknownFields() throws IOException, URISyntaxException } @Test - public void importEntriesMultilineAbstract() throws IOException, URISyntaxException { + void importEntriesMultilineAbstract() throws IOException, URISyntaxException { Path file = Path.of(CffImporterTest.class.getResource("CffImporterTestMultilineAbstract.cff").toURI()); BibEntry entry = importer.importDatabase(file).getDatabase().getEntries().getFirst(); BibEntry expected = getPopulatedEntry().withField(StandardField.ABSTRACT, @@ -162,7 +162,7 @@ public void importEntriesMultilineAbstract() throws IOException, URISyntaxExcept } @Test - public void importEntriesPreferredCitation() throws IOException, URISyntaxException { + void importEntriesPreferredCitation() throws IOException, URISyntaxException { Path file = Path.of(CffImporterTest.class.getResource("CffImporterPreferredCitation.cff").toURI()); List bibEntries = importer.importDatabase(file).getDatabase().getEntries(); @@ -183,7 +183,7 @@ public void importEntriesPreferredCitation() throws IOException, URISyntaxExcept } @Test - public void importEntriesReferences() throws IOException, URISyntaxException { + void importEntriesReferences() throws IOException, URISyntaxException { Path file = Path.of(CffImporterTest.class.getResource("CffImporterReferences.cff").toURI()); List bibEntries = importer.importDatabase(file).getDatabase().getEntries(); BibEntry mainEntry = bibEntries.getFirst(); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/CitaviXmlImporterFilesTest.java b/src/test/java/org/jabref/logic/importer/fileformat/CitaviXmlImporterFilesTest.java index 3b642e169f0..b97c6ffd4c9 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/CitaviXmlImporterFilesTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/CitaviXmlImporterFilesTest.java @@ -7,7 +7,7 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -public class CitaviXmlImporterFilesTest { +class CitaviXmlImporterFilesTest { private static final String FILE_ENDING = ".ctv6bak"; private final CitaviXmlImporter citaviXmlImporter = new CitaviXmlImporter(); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterFilesTest.java b/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterFilesTest.java index a5a70ac9436..daab696d2c8 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterFilesTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterFilesTest.java @@ -7,7 +7,7 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -public class CopacImporterFilesTest { +class CopacImporterFilesTest { private static final String FILE_ENDING = ".txt"; @@ -24,19 +24,19 @@ private static Stream nonCopacfileNames() throws IOException { @ParameterizedTest @MethodSource("fileNames") - public void isRecognizedFormat(String fileName) throws IOException { + void isRecognizedFormat(String fileName) throws IOException { ImporterTestEngine.testIsRecognizedFormat(new CopacImporter(), fileName); } @ParameterizedTest @MethodSource("nonCopacfileNames") - public void isNotRecognizedFormat(String fileName) throws IOException { + void isNotRecognizedFormat(String fileName) throws IOException { ImporterTestEngine.testIsNotRecognizedFormat(new CopacImporter(), fileName); } @ParameterizedTest @MethodSource("fileNames") - public void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws Exception { ImporterTestEngine.testImportEntries(new CopacImporter(), fileName, FILE_ENDING); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterTest.java index 82d85c03f5e..df4272af7e4 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterTest.java @@ -12,27 +12,27 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class CopacImporterTest { +class CopacImporterTest { private CopacImporter importer; @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { importer = new CopacImporter(); } @Test - public void sGetExtensions() { + void sGetExtensions() { assertEquals(StandardFileType.TXT, importer.getFileType()); } @Test - public void getDescription() { + void getDescription() { assertEquals("Importer for COPAC format.", importer.getDescription()); } @Test - public void importEmptyEntries() throws Exception { + void importEmptyEntries() throws Exception { Path path = Path.of(CopacImporterTest.class.getResource("Empty.txt").toURI()); List entries = importer.importDatabase(path).getDatabase().getEntries(); assertEquals(Collections.emptyList(), entries); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/CustomImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/CustomImporterTest.java index 2c818fb6c37..68f495da041 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/CustomImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/CustomImporterTest.java @@ -11,72 +11,72 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -public class CustomImporterTest { +class CustomImporterTest { private CustomImporter importer; @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { importer = asCustomImporter(new CopacImporter()); } @Test - public void getName() { + void getName() { assertEquals("Copac", importer.getName()); } @Test - public void getId() { + void getId() { assertEquals("cpc", importer.getId()); } @Test - public void getClassName() { + void getClassName() { assertEquals("org.jabref.logic.importer.fileformat.CopacImporter", importer.getClassName()); } @Test - public void getBasePath() { + void getBasePath() { assertEquals(Path.of("src/main/java/org/jabref/logic/importer/fileformat/CopacImporter.java"), importer.getBasePath()); } @Test - public void getAsStringList() { + void getAsStringList() { assertEquals(Arrays.asList("src/main/java/org/jabref/logic/importer/fileformat/CopacImporter.java", "org.jabref.logic.importer.fileformat.CopacImporter"), importer.getAsStringList()); } @Test - public void equalsWithSameReference() { + void equalsWithSameReference() { assertEquals(importer, importer); } @Test - public void equalsIsBasedOnName() { + void equalsIsBasedOnName() { // noinspection AssertEqualsBetweenInconvertibleTypes assertEquals(new CopacImporter(), importer); } @Test - public void compareToSmaller() throws Exception { + void compareToSmaller() throws Exception { CustomImporter ovidImporter = asCustomImporter(new OvidImporter()); assertTrue(importer.compareTo(ovidImporter) < 0); } @Test - public void compareToEven() throws Exception { + void compareToEven() throws Exception { assertEquals(0, importer.compareTo(asCustomImporter(new CopacImporter()))); } @Test - public void testToString() { + void testToString() { assertEquals("Copac", importer.toString()); } @Test - public void classicConstructor() throws Exception { + void classicConstructor() throws Exception { CustomImporter customImporter = new CustomImporter( "src/main/java/org/jabref/logic/importer/fileformat/CopacImporter.java", "org.jabref.logic.importer.fileformat.CopacImporter"); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/EndnoteImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/EndnoteImporterTest.java index c249e7901d5..edc9a3fec03 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/EndnoteImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/EndnoteImporterTest.java @@ -21,38 +21,38 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class EndnoteImporterTest { +class EndnoteImporterTest { private EndnoteImporter importer; @BeforeEach - public void setUp() { + void setUp() { importer = new EndnoteImporter(); } @Test - public void getFormatName() { + void getFormatName() { assertEquals("Refer/Endnote", importer.getName()); } @Test - public void getCLIId() { + void getCLIId() { assertEquals("refer", importer.getId()); } @Test - public void sGetExtensions() { + void sGetExtensions() { assertEquals(StandardFileType.ENDNOTE, importer.getFileType()); } @Test - public void getDescription() { + void getDescription() { assertEquals("Importer for the Refer/Endnote format." + " Modified to use article number for pages if pages are missing.", importer.getDescription()); } @Test - public void isRecognizedFormat() throws IOException, URISyntaxException { + void isRecognizedFormat() throws IOException, URISyntaxException { List list = Arrays.asList("Endnote.pattern.A.enw", "Endnote.pattern.E.enw", "Endnote.book.example.enw"); for (String string : list) { @@ -62,7 +62,7 @@ public void isRecognizedFormat() throws IOException, URISyntaxException { } @Test - public void isRecognizedFormatReject() throws IOException, URISyntaxException { + void isRecognizedFormatReject() throws IOException, URISyntaxException { List list = Arrays.asList("IEEEImport1.txt", "IsiImporterTest1.isi", "IsiImporterTestInspec.isi", "IsiImporterTestWOS.isi", "IsiImporterTestMedline.isi", "RisImporterTest1.ris", "Endnote.pattern.no_enw", "empty.pdf", "annotated.pdf"); @@ -74,7 +74,7 @@ public void isRecognizedFormatReject() throws IOException, URISyntaxException { } @Test - public void importEntries0() throws IOException, URISyntaxException { + void importEntries0() throws IOException, URISyntaxException { Path file = Path.of(EndnoteImporterTest.class.getResource("Endnote.entries.enw").toURI()); List bibEntries = importer.importDatabase(file).getDatabase().getEntries(); @@ -119,7 +119,7 @@ public void importEntries0() throws IOException, URISyntaxException { } @Test - public void importEntries1() throws IOException { + void importEntries1() throws IOException { String medlineString = "%O Artn\\\\s testO\n%A testA,\n%E testE0, testE1"; List bibEntries = importer.importDatabase(new BufferedReader(new StringReader(medlineString))).getDatabase() .getEntries(); @@ -134,7 +134,7 @@ public void importEntries1() throws IOException { } @Test - public void importEntriesBookExample() throws IOException, URISyntaxException { + void importEntriesBookExample() throws IOException, URISyntaxException { Path file = Path.of(EndnoteImporterTest.class.getResource("Endnote.book.example.enw").toURI()); List bibEntries = importer.importDatabase(file).getDatabase().getEntries(); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/EndnoteXmlImporterFilesTest.java b/src/test/java/org/jabref/logic/importer/fileformat/EndnoteXmlImporterFilesTest.java index 4ad4c9a597f..e4f4103dad5 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/EndnoteXmlImporterFilesTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/EndnoteXmlImporterFilesTest.java @@ -14,7 +14,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class EndnoteXmlImporterFilesTest { +class EndnoteXmlImporterFilesTest { private static final String FILE_ENDING = ".xml"; private ImportFormatPreferences importFormatPreferences; diff --git a/src/test/java/org/jabref/logic/importer/fileformat/ImporterTestEngine.java b/src/test/java/org/jabref/logic/importer/fileformat/ImporterTestEngine.java index a9d528e2783..5b7a1e30907 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/ImporterTestEngine.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/ImporterTestEngine.java @@ -17,9 +17,9 @@ import org.jabref.logic.importer.ParserResult; import org.jabref.model.entry.BibEntry; -import org.junit.jupiter.api.Assertions; - import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; public class ImporterTestEngine { @@ -40,11 +40,11 @@ public static Collection getTestFiles(Predicate fileNamePredicat } public static void testIsRecognizedFormat(Importer importer, String fileName) throws IOException { - Assertions.assertTrue(importer.isRecognizedFormat(getPath(fileName))); + assertTrue(importer.isRecognizedFormat(getPath(fileName))); } public static void testIsNotRecognizedFormat(Importer importer, String fileName) throws IOException { - Assertions.assertFalse(importer.isRecognizedFormat(getPath(fileName))); + assertFalse(importer.isRecognizedFormat(getPath(fileName))); } public static void testImportEntries(Importer importer, String fileName, String fileType) throws IOException, ImportException { diff --git a/src/test/java/org/jabref/logic/importer/fileformat/InspecImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/InspecImporterTest.java index 2b8b14d4ca1..02ec6c960c7 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/InspecImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/InspecImporterTest.java @@ -22,7 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class InspecImporterTest { +class InspecImporterTest { private static final String FILE_ENDING = ".txt"; private InspecImporter importer; @@ -40,24 +40,24 @@ private static Stream nonInspecfileNames() throws IOException { } @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { this.importer = new InspecImporter(); } @ParameterizedTest @MethodSource("fileNames") - public void isRecognizedFormatAccept(String fileName) throws IOException { + void isRecognizedFormatAccept(String fileName) throws IOException { ImporterTestEngine.testIsRecognizedFormat(importer, fileName); } @ParameterizedTest @MethodSource("nonInspecfileNames") - public void isRecognizedFormatReject(String fileName) throws IOException { + void isRecognizedFormatReject(String fileName) throws IOException { ImporterTestEngine.testIsNotRecognizedFormat(importer, fileName); } @Test - public void completeBibtexEntryOnJournalPaperImport() throws IOException, URISyntaxException { + void completeBibtexEntryOnJournalPaperImport() throws IOException, URISyntaxException { BibEntry expectedEntry = new BibEntry(StandardEntryType.Article); expectedEntry.setField(StandardField.TITLE, "The SIS project : software reuse with a natural language approach"); expectedEntry.setField(StandardField.AUTHOR, "Prechelt, Lutz"); @@ -73,7 +73,7 @@ public void completeBibtexEntryOnJournalPaperImport() throws IOException, URISyn } @Test - public void importConferencePaperGivesInproceedings() throws IOException { + void importConferencePaperGivesInproceedings() throws IOException { String testInput = "Record.*INSPEC.*\n" + "\n" + "RT ~ Conference-Paper\n" + @@ -88,7 +88,7 @@ public void importConferencePaperGivesInproceedings() throws IOException { } @Test - public void importMiscGivesMisc() throws IOException { + void importMiscGivesMisc() throws IOException { String testInput = "Record.*INSPEC.*\n" + "\n" + "AU ~ Prechelt, Lutz \n" + @@ -105,17 +105,17 @@ public void importMiscGivesMisc() throws IOException { } @Test - public void getFormatName() { + void getFormatName() { assertEquals("INSPEC", importer.getName()); } @Test - public void getCLIId() { + void getCLIId() { assertEquals("inspec", importer.getId()); } @Test - public void sGetExtensions() { + void sGetExtensions() { assertEquals(StandardFileType.TXT, importer.getFileType()); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/IsiImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/IsiImporterTest.java index 9c89d6178b7..9b08f4a15ef 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/IsiImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/IsiImporterTest.java @@ -23,7 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class IsiImporterTest { +class IsiImporterTest { private static final String FILE_ENDING = ".isi"; private final IsiImporter importer = new IsiImporter(); @@ -41,39 +41,39 @@ private static Stream invalidFileNames() throws IOException { } @Test - public void parseMonthException() { + void parseMonthException() { IsiImporter.parseMonth("20l06 06-07"); } @Test - public void getFormatName() { + void getFormatName() { assertEquals("ISI", importer.getName()); } @Test - public void getCLIId() { + void getCLIId() { assertEquals("isi", importer.getId()); } @Test - public void sGetExtensions() { + void sGetExtensions() { assertEquals(StandardFileType.ISI, importer.getFileType()); } @ParameterizedTest @MethodSource("fileNames") - public void isRecognizedFormatAccepted(String fileName) throws IOException { + void isRecognizedFormatAccepted(String fileName) throws IOException { ImporterTestEngine.testIsRecognizedFormat(importer, fileName); } @ParameterizedTest @MethodSource("invalidFileNames") - public void isRecognizedFormatRejected(String fileName) throws IOException { + void isRecognizedFormatRejected(String fileName) throws IOException { ImporterTestEngine.testIsNotRecognizedFormat(importer, fileName); } @Test - public void processSubSup() { + void processSubSup() { HashMap subs = new HashMap<>(); subs.put(StandardField.TITLE, "/sub 3/"); @@ -118,7 +118,7 @@ public void processSubSup() { } @Test - public void importEntries1() throws IOException, URISyntaxException { + void importEntries1() throws IOException, URISyntaxException { Path file = Path.of(IsiImporterTest.class.getResource("IsiImporterTest1.isi").toURI()); List entries = importer.importDatabase(file).getDatabase().getEntries(); BibEntry entry = entries.getFirst(); @@ -139,7 +139,7 @@ public void importEntries1() throws IOException, URISyntaxException { } @Test - public void importEntries2() throws IOException, URISyntaxException { + void importEntries2() throws IOException, URISyntaxException { Path file = Path.of(IsiImporterTest.class.getResource("IsiImporterTest2.isi").toURI()); List entries = importer.importDatabase(file).getDatabase().getEntries(); BibEntry entry = entries.getFirst(); @@ -156,7 +156,7 @@ public void importEntries2() throws IOException, URISyntaxException { } @Test - public void importEntriesINSPEC() throws IOException, URISyntaxException { + void importEntriesINSPEC() throws IOException, URISyntaxException { Path file = Path.of(IsiImporterTest.class.getResource("IsiImporterTestInspec.isi").toURI()); List entries = importer.importDatabase(file).getDatabase().getEntries(); @@ -193,7 +193,7 @@ public void importEntriesINSPEC() throws IOException, URISyntaxException { } @Test - public void importEntriesWOS() throws IOException, URISyntaxException { + void importEntriesWOS() throws IOException, URISyntaxException { Path file = Path.of(IsiImporterTest.class.getResource("IsiImporterTestWOS.isi").toURI()); List entries = importer.importDatabase(file).getDatabase().getEntries(); @@ -211,7 +211,7 @@ public void importEntriesWOS() throws IOException, URISyntaxException { } @Test - public void isiAuthorsConvert() { + void isiAuthorsConvert() { assertEquals( "James Brown and James Marc Brown and Brown, J. M. and Brown, J. and Brown, J. M. and Brown, J.", IsiImporter.isiAuthorsConvert( @@ -224,7 +224,7 @@ public void isiAuthorsConvert() { } @Test - public void monthConvert() { + void monthConvert() { assertEquals("#jun#", IsiImporter.parseMonth("06")); assertEquals("#jun#", IsiImporter.parseMonth("JUN")); assertEquals("#jun#", IsiImporter.parseMonth("jUn")); @@ -236,7 +236,7 @@ public void monthConvert() { } @Test - public void isiAuthorConvert() { + void isiAuthorConvert() { assertEquals("James Brown", IsiImporter.isiAuthorConvert("James Brown")); assertEquals("James Marc Brown", IsiImporter.isiAuthorConvert("James Marc Brown")); assertEquals("Brown, J. M.", IsiImporter.isiAuthorConvert("Brown, J.M.")); @@ -249,7 +249,7 @@ public void isiAuthorConvert() { } @Test - public void importIEEEExport() throws IOException, URISyntaxException { + void importIEEEExport() throws IOException, URISyntaxException { Path file = Path.of(IsiImporterTest.class.getResource("IEEEImport1.txt").toURI()); List entries = importer.importDatabase(file).getDatabase().getEntries(); BibEntry entry = entries.getFirst(); @@ -272,7 +272,7 @@ public void importIEEEExport() throws IOException, URISyntaxException { } @Test - public void iEEEImport() throws IOException, URISyntaxException { + void iEEEImport() throws IOException, URISyntaxException { Path file = Path.of(IsiImporterTest.class.getResource("IEEEImport1.txt").toURI()); List entries = importer.importDatabase(file).getDatabase().getEntries(); BibEntry entry = entries.getFirst(); @@ -296,7 +296,7 @@ public void iEEEImport() throws IOException, URISyntaxException { } @Test - public void importEntriesMedline() throws IOException, URISyntaxException { + void importEntriesMedline() throws IOException, URISyntaxException { Path file = Path.of(IsiImporterTest.class.getResource("IsiImporterTestMedline.isi").toURI()); List entries = importer.importDatabase(file).getDatabase().getEntries(); @@ -332,7 +332,7 @@ public void importEntriesMedline() throws IOException, URISyntaxException { } @Test - public void importEntriesEmpty() throws IOException, URISyntaxException { + void importEntriesEmpty() throws IOException, URISyntaxException { Path file = Path.of(IsiImporterTest.class.getResource("IsiImporterTestEmpty.isi").toURI()); List entries = importer.importDatabase(file).getDatabase().getEntries(); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/MarcXmlParserTest.java b/src/test/java/org/jabref/logic/importer/fileformat/MarcXmlParserTest.java index 74aebd0592d..60ee9da6da7 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/MarcXmlParserTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/MarcXmlParserTest.java @@ -15,7 +15,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; -public class MarcXmlParserTest { +class MarcXmlParserTest { private static final String FILE_ENDING = ".xml"; @@ -35,7 +35,7 @@ private void doTest(String xmlName, String bibName) throws Exception { @ParameterizedTest @MethodSource("fileNames") - public void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws Exception { String bibName = FileUtil.getBaseName(fileName) + ".bib"; doTest(fileName, bibName); } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterFilesTest.java b/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterFilesTest.java index 63bd1e165cc..fceb4bd7a9e 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterFilesTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterFilesTest.java @@ -7,7 +7,7 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -public class MedlineImporterFilesTest { +class MedlineImporterFilesTest { private static final String FILE_ENDING = ".xml"; @@ -26,19 +26,19 @@ private static Stream invalidFileNames() throws IOException { @ParameterizedTest @MethodSource("fileNames") - public void isRecognizedFormat(String fileName) throws IOException { + void isRecognizedFormat(String fileName) throws IOException { ImporterTestEngine.testIsRecognizedFormat(new MedlineImporter(), fileName); } @ParameterizedTest @MethodSource("invalidFileNames") - public void isNotRecognizedFormat(String fileName) throws IOException { + void isNotRecognizedFormat(String fileName) throws IOException { ImporterTestEngine.testIsNotRecognizedFormat(new MedlineImporter(), fileName); } @ParameterizedTest @MethodSource("fileNames") - public void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws Exception { ImporterTestEngine.testImportEntries(new MedlineImporter(), fileName, FILE_ENDING); } @@ -50,7 +50,7 @@ private static Stream malformedFileNames() throws IOException { @ParameterizedTest @MethodSource("malformedFileNames") - public void importMalfomedFiles(String fileName) throws IOException { + void importMalfomedFiles(String fileName) throws IOException { ImporterTestEngine.testImportMalformedFiles(new MedlineImporter(), fileName); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterTest.java index a971a25bc83..d9987d9a8ad 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterTest.java @@ -17,27 +17,27 @@ *
  • Press 'Create File' to download your search results in a medline xml file.
  • * */ -public class MedlineImporterTest { +class MedlineImporterTest { private MedlineImporter importer; @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { this.importer = new MedlineImporter(); } @Test - public void getFormatName() { + void getFormatName() { assertEquals("Medline/PubMed", importer.getName()); } @Test - public void getCLIId() { + void getCLIId() { assertEquals("medline", importer.getId()); } @Test - public void sGetExtensions() { + void sGetExtensions() { assertEquals(StandardFileType.MEDLINE, importer.getFileType()); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/MrDLibImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/MrDLibImporterTest.java index 0fb7dbd1fad..f6619dcb4de 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/MrDLibImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/MrDLibImporterTest.java @@ -15,20 +15,20 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertSame; -public class MrDLibImporterTest { +class MrDLibImporterTest { private MrDLibImporter importer; private BufferedReader input; @BeforeEach - public void setUp() { + void setUp() { importer = new MrDLibImporter(); String testInput = "{\"label\": {\"label-description\": \"The following articles are similar to the document have currently selected.\", \"label-language\": \"en\", \"label-text\": \"Related Articles\"}, \"recommendation_set_id\": \"1\", \"recommendations\": { \"74021358\": { \"abstract\": \"abstract\", \"authors\":\"Sajovic, Marija\", \"published_year\": \"2006\", \"item_id_original\": \"12088644\", \"keywords\": [ \"visoko\\u0161olski program Geodezija - smer Prostorska informatika\" ], \"language_provided\": \"sl\", \"recommendation_id\": \"1\", \"title\": \"The protection of rural lands with the spatial development strategy on the case of Hrastnik commune\", \"url\": \"http://drugg.fgg.uni-lj.si/701/1/GEV_0199_Sajovic.pdf\" }, \"82005804\": { \"abstract\": \"abstract\", \"year_published\": null, \"item_id_original\": \"30145702\", \"language_provided\": null, \"recommendation_id\": \"2\", \"title\": \"Engagement of the volunteers in the solution to the accidents in the South-Moravia region\" }, \"82149599\": { \"abstract\": \"abstract\", \"year_published\": null, \"item_id_original\": \"97690763\", \"language_provided\": null, \"recommendation_id\": \"3\", \"title\": \"\\\"The only Father's word\\\". The relationship of the Father and the Son in the documents of saint John of the Cross\", \"url\": \"http://www.nusl.cz/ntk/nusl-285711\" }, \"84863921\": { \"abstract\": \"abstract\", \"authors\":\"Kaffa, Elena\", \"year_published\": null, \"item_id_original\": \"19397104\", \"keywords\": [ \"BX\", \"D111\" ], \"language_provided\": \"en\", \"recommendation_id\": \"4\", \"title\": \"Greek Church of Cyprus, the Morea and Constantinople during the Frankish Era (1196-1303)\" }, \"88950992\": { \"abstract\": \"abstract\", \"authors\":\"Yasui, Kono\", \"year_published\": null, \"item_id_original\": \"38763657\", \"language_provided\": null, \"recommendation_id\": \"5\", \"title\": \"A Phylogenetic Consideration on the Vascular Plants, Cotyledonary Node Including Hypocotyl Being Taken as the Ancestral Form : A Preliminary Note\" } }}"; input = new BufferedReader(new StringReader(testInput)); } @Test - public void importDatabaseIsYearSetCorrectly() throws IOException { + void importDatabaseIsYearSetCorrectly() throws IOException { ParserResult parserResult = importer.importDatabase(input); List resultList = parserResult.getDatabase().getEntries(); @@ -38,7 +38,7 @@ public void importDatabaseIsYearSetCorrectly() throws IOException { } @Test - public void importDatabaseIsTitleSetCorrectly() throws IOException { + void importDatabaseIsTitleSetCorrectly() throws IOException { ParserResult parserResult = importer.importDatabase(input); List resultList = parserResult.getDatabase().getEntries(); @@ -48,7 +48,7 @@ public void importDatabaseIsTitleSetCorrectly() throws IOException { } @Test - public void importDatabaseMin() throws IOException { + void importDatabaseMin() throws IOException { ParserResult parserResult = importer.importDatabase(input); List resultList = parserResult.getDatabase().getEntries(); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterFilesTest.java b/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterFilesTest.java index a6cadfe9ed3..9b679ab7b45 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterFilesTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterFilesTest.java @@ -7,7 +7,7 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -public class MsBibImporterFilesTest { +class MsBibImporterFilesTest { private static final String FILE_ENDING = ".xml"; @@ -24,19 +24,19 @@ private static Stream invalidFileNames() throws IOException { @ParameterizedTest @MethodSource("fileNames") - public void isRecognizedFormat(String fileName) throws IOException { + void isRecognizedFormat(String fileName) throws IOException { ImporterTestEngine.testIsRecognizedFormat(new MsBibImporter(), fileName); } @ParameterizedTest @MethodSource("invalidFileNames") - public void isNotRecognizedFormat(String fileName) throws IOException { + void isNotRecognizedFormat(String fileName) throws IOException { ImporterTestEngine.testIsNotRecognizedFormat(new MsBibImporter(), fileName); } @ParameterizedTest @MethodSource("fileNames") - public void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws Exception { ImporterTestEngine.testImportEntries(new MsBibImporter(), fileName, FILE_ENDING); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterTest.java index 143f0c1755e..c8629256267 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterTest.java @@ -15,12 +15,12 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; -public class MsBibImporterTest { +class MsBibImporterTest { Importer importer = new MsBibImporter(); @Test - public final void isNotRecognizedFormat() throws Exception { + final void isNotRecognizedFormat() throws Exception { List notAccepted = Arrays.asList("CopacImporterTest1.txt", "IsiImporterTest1.isi", "IsiImporterTestInspec.isi", "emptyFile.xml", "IsiImporterTestWOS.isi"); for (String s : notAccepted) { @@ -30,26 +30,26 @@ public final void isNotRecognizedFormat() throws Exception { } @Test - public final void importEntriesEmpty() throws IOException, URISyntaxException { + final void importEntriesEmpty() throws IOException, URISyntaxException { Path file = Path.of(MsBibImporter.class.getResource("EmptyMsBib_Test.xml").toURI()); List entries = importer.importDatabase(file).getDatabase().getEntries(); assertEquals(Collections.emptyList(), entries); } @Test - public final void importEntriesNotRecognizedFormat() throws IOException, URISyntaxException { + final void importEntriesNotRecognizedFormat() throws IOException, URISyntaxException { Path file = Path.of(MsBibImporter.class.getResource("CopacImporterTest1.txt").toURI()); List entries = importer.importDatabase(file).getDatabase().getEntries(); assertEquals(0, entries.size()); } @Test - public final void getFormatName() { + final void getFormatName() { assertEquals("MSBib", importer.getName()); } @Test - public final void getCommandLineId() { + final void getCommandLineId() { assertEquals("msbib", importer.getId()); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/OvidImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/OvidImporterTest.java index 76593200034..e36ccd7d345 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/OvidImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/OvidImporterTest.java @@ -23,7 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class OvidImporterTest { +class OvidImporterTest { private static final String FILE_ENDING = ".txt"; private OvidImporter importer = new OvidImporter(); @@ -42,25 +42,25 @@ private static Stream invalidFileNames() throws IOException { @ParameterizedTest @MethodSource("fileNames") - public void isRecognizedFormatAccept(String fileName) throws IOException, URISyntaxException { + void isRecognizedFormatAccept(String fileName) throws IOException, URISyntaxException { ImporterTestEngine.testIsRecognizedFormat(importer, fileName); } @ParameterizedTest @MethodSource("invalidFileNames") - public void isRecognizedFormatRejected(String fileName) throws IOException, URISyntaxException { + void isRecognizedFormatRejected(String fileName) throws IOException, URISyntaxException { ImporterTestEngine.testIsNotRecognizedFormat(importer, fileName); } @Test - public void importEmpty() throws IOException, URISyntaxException { + void importEmpty() throws IOException, URISyntaxException { Path file = Path.of(OvidImporter.class.getResource("Empty.txt").toURI()); List entries = importer.importDatabase(file).getDatabase().getEntries(); assertEquals(Collections.emptyList(), entries); } @Test - public void importEntries1() throws IOException, URISyntaxException { + void importEntries1() throws IOException, URISyntaxException { Path file = Path.of(OvidImporter.class.getResource("OvidImporterTest1.txt").toURI()); List entries = importer.importDatabase(file).getDatabase().getEntries(); assertEquals(5, entries.size()); @@ -113,14 +113,14 @@ public void importEntries1() throws IOException, URISyntaxException { } @Test - public void importEntries2() throws IOException, URISyntaxException { + void importEntries2() throws IOException, URISyntaxException { Path file = Path.of(OvidImporter.class.getResource("OvidImporterTest2Invalid.txt").toURI()); List entries = importer.importDatabase(file).getDatabase().getEntries(); assertEquals(Collections.emptyList(), entries); } @Test - public void importSingleEntries() throws IOException, URISyntaxException { + void importSingleEntries() throws IOException, URISyntaxException { for (int n = 3; n <= 7; n++) { Path file = Path.of(OvidImporter.class.getResource("OvidImporterTest" + n + ".txt").toURI()); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/PdfGrobidImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/PdfGrobidImporterTest.java index 5f9153434fa..1d737b38fd1 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/PdfGrobidImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/PdfGrobidImporterTest.java @@ -25,12 +25,12 @@ import static org.mockito.Mockito.when; @FetcherTest -public class PdfGrobidImporterTest { +class PdfGrobidImporterTest { private PdfGrobidImporter importer; @BeforeEach - public void setUp() { + void setUp() { GrobidPreferences grobidPreferences = mock(GrobidPreferences.class, Answers.RETURNS_DEEP_STUBS); when(grobidPreferences.isGrobidEnabled()).thenReturn(true); when(grobidPreferences.getGrobidURL()).thenReturn("http://grobid.jabref.org:8070"); @@ -43,13 +43,13 @@ public void setUp() { } @Test - public void getExtensions() { + void getExtensions() { assertEquals(StandardFileType.PDF, importer.getFileType()); } @Test @Disabled("Currently does not return anything") - public void importEntries() throws URISyntaxException { + void importEntries() throws URISyntaxException { Path file = Path.of(PdfGrobidImporterTest.class.getResource("LNCS-minimal.pdf").toURI()); List bibEntries = importer.importDatabase(file).getDatabase().getEntries(); @@ -62,19 +62,19 @@ public void importEntries() throws URISyntaxException { } @Test - public void isRecognizedFormat() throws IOException, URISyntaxException { + void isRecognizedFormat() throws IOException, URISyntaxException { Path file = Path.of(PdfGrobidImporterTest.class.getResource("annotated.pdf").toURI()); assertTrue(importer.isRecognizedFormat(file)); } @Test - public void isRecognizedFormatReject() throws IOException, URISyntaxException { + void isRecognizedFormatReject() throws IOException, URISyntaxException { Path file = Path.of(PdfGrobidImporterTest.class.getResource("BibtexImporter.examples.bib").toURI()); assertFalse(importer.isRecognizedFormat(file)); } @Test - public void getCommandLineId() { + void getCommandLineId() { assertEquals("grobidPdf", importer.getId()); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/PdfXmpImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/PdfXmpImporterTest.java index 5ae13cce82a..da36987f674 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/PdfXmpImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/PdfXmpImporterTest.java @@ -23,7 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; -public class PdfXmpImporterTest { +class PdfXmpImporterTest { private PdfXmpImporter importer; @@ -33,20 +33,20 @@ private static Stream invalidFileNames() throws IOException { } @BeforeEach - public void setUp() { + void setUp() { importer = new PdfXmpImporter(mock(XmpPreferences.class)); } @Disabled("XMP reader prints warnings to the logger when parsing does not work") @Test - public void importEncryptedFileReturnsError() throws URISyntaxException { + void importEncryptedFileReturnsError() throws URISyntaxException { Path file = Path.of(PdfXmpImporterTest.class.getResource("/pdfs/encrypted.pdf").toURI()); ParserResult result = importer.importDatabase(file); assertTrue(result.hasWarnings()); } @Test - public void importEntries() throws URISyntaxException { + void importEntries() throws URISyntaxException { Path file = Path.of(PdfXmpImporterTest.class.getResource("annotated.pdf").toURI()); List bibEntries = importer.importDatabase(file).getDatabase().getEntries(); @@ -60,19 +60,19 @@ public void importEntries() throws URISyntaxException { } @Test - public void isRecognizedFormat() throws IOException, URISyntaxException { + void isRecognizedFormat() throws IOException, URISyntaxException { Path file = Path.of(PdfXmpImporterTest.class.getResource("annotated.pdf").toURI()); assertTrue(importer.isRecognizedFormat(file)); } @ParameterizedTest @MethodSource("invalidFileNames") - public void isRecognizedFormatReject(String fileName) throws IOException, URISyntaxException { + void isRecognizedFormatReject(String fileName) throws IOException, URISyntaxException { ImporterTestEngine.testIsNotRecognizedFormat(importer, fileName); } @Test - public void getCommandLineId() { + void getCommandLineId() { assertEquals("xmp", importer.getId()); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/RISImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/RISImporterTest.java index 7ec30c0ca81..4a893870eb5 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/RISImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/RISImporterTest.java @@ -8,12 +8,12 @@ import static org.junit.jupiter.api.Assertions.assertFalse; -public class RISImporterTest { +class RISImporterTest { private RisImporter importer = new RisImporter(); @Test - public void ifNotRecognizedFormat() throws IOException, URISyntaxException { + void ifNotRecognizedFormat() throws IOException, URISyntaxException { Path file = Path.of(RISImporterTest.class.getResource("RisImporterCorrupted.ris").toURI()); assertFalse(importer.isRecognizedFormat(file)); } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/RepecNepImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/RepecNepImporterTest.java index 8c09d43d142..6ee8279e352 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/RepecNepImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/RepecNepImporterTest.java @@ -14,14 +14,14 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class RepecNepImporterTest { +class RepecNepImporterTest { private static final String FILE_ENDING = ".txt"; private RepecNepImporter testImporter; @BeforeEach - public void setUp() { + void setUp() { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); when(importFormatPreferences.bibEntryPreferences().getKeywordSeparator()).thenReturn(','); @@ -41,19 +41,19 @@ private static Stream invalidFileNames() throws IOException { @ParameterizedTest @MethodSource("fileNames") - public void isRecognizedFormat(String fileName) throws IOException { + void isRecognizedFormat(String fileName) throws IOException { ImporterTestEngine.testIsRecognizedFormat(testImporter, fileName); } @ParameterizedTest @MethodSource("invalidFileNames") - public void isNotRecognizedFormat(String fileName) throws IOException { + void isNotRecognizedFormat(String fileName) throws IOException { ImporterTestEngine.testIsNotRecognizedFormat(testImporter, fileName); } @ParameterizedTest @MethodSource("fileNames") - public void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws Exception { ImporterTestEngine.testImportEntries(testImporter, fileName, FILE_ENDING); } } diff --git a/src/test/java/org/jabref/logic/importer/util/FileFieldParserTest.java b/src/test/java/org/jabref/logic/importer/util/FileFieldParserTest.java index a530aa368c0..095dbe7c786 100644 --- a/src/test/java/org/jabref/logic/importer/util/FileFieldParserTest.java +++ b/src/test/java/org/jabref/logic/importer/util/FileFieldParserTest.java @@ -32,7 +32,7 @@ private static Stream testData() { @ParameterizedTest @MethodSource("testData") - public void check(LinkedFile expected, List input) { + void check(LinkedFile expected, List input) { // we need to convert the unmodifiable list to a modifiable because of the side effect of "convert" assertEquals(expected, FileFieldParser.convert(new ArrayList<>(input))); } @@ -219,7 +219,7 @@ private static Stream stringsToParseTest() throws Exception { @ParameterizedTest @MethodSource - public void stringsToParseTest(List expected, String input) { + void stringsToParseTest(List expected, String input) { assertEquals(expected, FileFieldParser.parse(input)); } } diff --git a/src/test/java/org/jabref/logic/importer/util/GrobidServiceTest.java b/src/test/java/org/jabref/logic/importer/util/GrobidServiceTest.java index 95c4292ccae..6b796c75dba 100644 --- a/src/test/java/org/jabref/logic/importer/util/GrobidServiceTest.java +++ b/src/test/java/org/jabref/logic/importer/util/GrobidServiceTest.java @@ -28,13 +28,13 @@ import static org.mockito.Mockito.when; @FetcherTest -public class GrobidServiceTest { +class GrobidServiceTest { private static GrobidService grobidService; private static ImportFormatPreferences importFormatPreferences; @BeforeAll - public static void setup() { + static void setup() { importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); when(importFormatPreferences.bibEntryPreferences().getKeywordSeparator()).thenReturn(','); @@ -46,7 +46,7 @@ public static void setup() { } @Test - public void processValidCitationTest() throws IOException, ParseException { + void processValidCitationTest() throws IOException, ParseException { BibEntry exampleBibEntry = new BibEntry(StandardEntryType.Article) .withCitationKey("-1") .withField(StandardField.AUTHOR, "Derwing, Tracey and Rossiter, Marian and Munro, Murray") @@ -68,14 +68,14 @@ public void processValidCitationTest() throws IOException, ParseException { } @Test - public void processEmptyStringTest() throws IOException, ParseException { + void processEmptyStringTest() throws IOException, ParseException { Optional response = grobidService.processCitation(" ", importFormatPreferences, GrobidService.ConsolidateCitations.WITH_METADATA); assertNotNull(response); assertEquals(Optional.empty(), response); } @Test - public void processInvalidCitationTest() { + void processInvalidCitationTest() { assertThrows(IOException.class, () -> grobidService.processCitation( "Iiiiiiiiiiiiiiiiiiiiiiii", importFormatPreferences, @@ -83,7 +83,7 @@ public void processInvalidCitationTest() { } @Test - public void failsWhenGrobidDisabled() { + void failsWhenGrobidDisabled() { GrobidPreferences importSettingsWithGrobidDisabled = new GrobidPreferences( false, false, @@ -92,7 +92,7 @@ public void failsWhenGrobidDisabled() { } @Test - public void processPdfTest() throws IOException, ParseException, URISyntaxException { + void processPdfTest() throws IOException, ParseException, URISyntaxException { Path file = Path.of(PdfGrobidImporterTest.class.getResource("LNCS-minimal.pdf").toURI()); List response = grobidService.processPDF(file, importFormatPreferences); assertEquals(1, response.size()); @@ -103,7 +103,7 @@ public void processPdfTest() throws IOException, ParseException, URISyntaxExcept } @Test - public void extractsReferencesFromPdf() throws IOException, ParseException, URISyntaxException { + void extractsReferencesFromPdf() throws IOException, ParseException, URISyntaxException { BibEntry ref1 = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Kopp, O") .withField(StandardField.ADDRESS, "Berlin; Heidelberg") diff --git a/src/test/java/org/jabref/logic/importer/util/JsonReaderTest.java b/src/test/java/org/jabref/logic/importer/util/JsonReaderTest.java index a597cd1caec..4f2e697df57 100644 --- a/src/test/java/org/jabref/logic/importer/util/JsonReaderTest.java +++ b/src/test/java/org/jabref/logic/importer/util/JsonReaderTest.java @@ -5,23 +5,23 @@ import org.jabref.logic.importer.ParseException; import kong.unirest.core.json.JSONObject; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; class JsonReaderTest { @Test void nullStreamThrowsNullPointerException() { - Assertions.assertThrows(NullPointerException.class, () -> { + assertThrows(NullPointerException.class, () -> { JsonReader.toJsonObject(null); }); } @Test void invalidJsonThrowsParserException() { - Assertions.assertThrows(ParseException.class, () -> { + assertThrows(ParseException.class, () -> { JsonReader.toJsonObject(new ByteArrayInputStream("invalid JSON".getBytes())); }); } @@ -35,7 +35,7 @@ void emptyStringResultsInEmptyObject() throws Exception { @Test void arrayThrowsParserException() { // Reason: We expect a JSON object, not a JSON array - Assertions.assertThrows(ParseException.class, () -> { + assertThrows(ParseException.class, () -> { JsonReader.toJsonObject(new ByteArrayInputStream("[]".getBytes())); }); } diff --git a/src/test/java/org/jabref/logic/importer/util/MathMLParserTest.java b/src/test/java/org/jabref/logic/importer/util/MathMLParserTest.java index f8866cf9c05..d7f8c661e0e 100644 --- a/src/test/java/org/jabref/logic/importer/util/MathMLParserTest.java +++ b/src/test/java/org/jabref/logic/importer/util/MathMLParserTest.java @@ -18,7 +18,7 @@ class MathMLParserTest { private static XMLInputFactory xmlInputFactory; @BeforeAll - public static void setUp() { + static void setUp() { xmlInputFactory = XMLInputFactory.newInstance(); xmlInputFactory.setProperty(XMLInputFactory.IS_COALESCING, true); } diff --git a/src/test/java/org/jabref/logic/importer/util/MetaDataParserTest.java b/src/test/java/org/jabref/logic/importer/util/MetaDataParserTest.java index d043c51fe79..73bd5e2d62c 100644 --- a/src/test/java/org/jabref/logic/importer/util/MetaDataParserTest.java +++ b/src/test/java/org/jabref/logic/importer/util/MetaDataParserTest.java @@ -67,7 +67,7 @@ void parseCustomizedEntryType(BibEntryTypeBuilder expected, String source) { } @Test - public void saveActions() throws Exception { + void saveActions() throws Exception { Map data = Map.of("saveActions", "enabled;title[lower_case]"); MetaDataParser metaDataParser = new MetaDataParser(new DummyFileUpdateMonitor()); MetaData parsed = metaDataParser.parse(new MetaData(), data, ','); diff --git a/src/test/java/org/jabref/logic/importer/util/StaxParserTest.java b/src/test/java/org/jabref/logic/importer/util/StaxParserTest.java index 54c07d74e54..9c14e80a156 100644 --- a/src/test/java/org/jabref/logic/importer/util/StaxParserTest.java +++ b/src/test/java/org/jabref/logic/importer/util/StaxParserTest.java @@ -18,7 +18,7 @@ class StaxParserTest { private static XMLInputFactory xmlInputFactory; @BeforeAll - public static void setUp() { + static void setUp() { xmlInputFactory = XMLInputFactory.newInstance(); xmlInputFactory.setProperty(XMLInputFactory.IS_COALESCING, true); } diff --git a/src/test/java/org/jabref/logic/integrity/ASCIICharacterCheckerTest.java b/src/test/java/org/jabref/logic/integrity/ASCIICharacterCheckerTest.java index 9dbefceb61c..da2557e8860 100644 --- a/src/test/java/org/jabref/logic/integrity/ASCIICharacterCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/ASCIICharacterCheckerTest.java @@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class ASCIICharacterCheckerTest { +class ASCIICharacterCheckerTest { private final ASCIICharacterChecker checker = new ASCIICharacterChecker(); private final BibEntry entry = new BibEntry(); diff --git a/src/test/java/org/jabref/logic/integrity/AmpersandCheckerTest.java b/src/test/java/org/jabref/logic/integrity/AmpersandCheckerTest.java index 1e568793f70..5f78fb3fc5b 100644 --- a/src/test/java/org/jabref/logic/integrity/AmpersandCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/AmpersandCheckerTest.java @@ -13,7 +13,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AmpersandCheckerTest { +class AmpersandCheckerTest { private final AmpersandChecker checker = new AmpersandChecker(); private final BibEntry entry = new BibEntry(); diff --git a/src/test/java/org/jabref/logic/integrity/BibStringCheckerTest.java b/src/test/java/org/jabref/logic/integrity/BibStringCheckerTest.java index 71c09f2e6a4..87ea138fa71 100644 --- a/src/test/java/org/jabref/logic/integrity/BibStringCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/BibStringCheckerTest.java @@ -15,7 +15,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class BibStringCheckerTest { +class BibStringCheckerTest { private final BibStringChecker checker = new BibStringChecker(); private final BibEntry entry = new BibEntry(); diff --git a/src/test/java/org/jabref/logic/integrity/BooktitleCheckerTest.java b/src/test/java/org/jabref/logic/integrity/BooktitleCheckerTest.java index 7ce09e1bd3a..129b424225a 100644 --- a/src/test/java/org/jabref/logic/integrity/BooktitleCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/BooktitleCheckerTest.java @@ -7,7 +7,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; -public class BooktitleCheckerTest { +class BooktitleCheckerTest { private final BooktitleChecker checker = new BooktitleChecker(); diff --git a/src/test/java/org/jabref/logic/integrity/BracesCorrectorTest.java b/src/test/java/org/jabref/logic/integrity/BracesCorrectorTest.java index 245829abea3..4d77ff3e5b3 100644 --- a/src/test/java/org/jabref/logic/integrity/BracesCorrectorTest.java +++ b/src/test/java/org/jabref/logic/integrity/BracesCorrectorTest.java @@ -5,45 +5,45 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class BracesCorrectorTest { +class BracesCorrectorTest { @Test - public void inputIsNull() { + void inputIsNull() { assertNull(BracesCorrector.apply(null)); } @Test - public void inputIsEmpty() { + void inputIsEmpty() { assertEquals("", BracesCorrector.apply("")); } @Test - public void inputWithoutBraces() { + void inputWithoutBraces() { assertEquals("banana", BracesCorrector.apply("banana")); } @Test - public void inputAlreadyCorrect() { + void inputAlreadyCorrect() { assertEquals("{banana}", BracesCorrector.apply("{banana}")); } @Test - public void inputMissingClosing() { + void inputMissingClosing() { assertEquals("{banana}", BracesCorrector.apply("{banana")); } @Test - public void inputMissingOpening() { + void inputMissingOpening() { assertEquals("{banana}", BracesCorrector.apply("banana}")); } @Test - public void inputWithMaskedBraces() { + void inputWithMaskedBraces() { assertEquals("\\\\\\{banana", BracesCorrector.apply("\\\\\\{banana")); } @Test - public void inputWithMixedBraces() { + void inputWithMixedBraces() { assertEquals("{b{anana\\\\\\}}}", BracesCorrector.apply("{b{anana\\\\\\}")); } } diff --git a/src/test/java/org/jabref/logic/integrity/BracketCheckerTest.java b/src/test/java/org/jabref/logic/integrity/BracketCheckerTest.java index d49a6ac69ac..658eb5ff8a7 100644 --- a/src/test/java/org/jabref/logic/integrity/BracketCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/BracketCheckerTest.java @@ -7,7 +7,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; -public class BracketCheckerTest { +class BracketCheckerTest { private final BracketChecker checker = new BracketChecker(); diff --git a/src/test/java/org/jabref/logic/integrity/CitationKeyCheckerTest.java b/src/test/java/org/jabref/logic/integrity/CitationKeyCheckerTest.java index 44d0ce9e979..17d891623b6 100644 --- a/src/test/java/org/jabref/logic/integrity/CitationKeyCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/CitationKeyCheckerTest.java @@ -12,7 +12,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class CitationKeyCheckerTest { +class CitationKeyCheckerTest { private final CitationKeyChecker checker = new CitationKeyChecker(); diff --git a/src/test/java/org/jabref/logic/integrity/CitationKeyDeviationCheckerTest.java b/src/test/java/org/jabref/logic/integrity/CitationKeyDeviationCheckerTest.java index ec8ef5c9f87..b0edf9e100d 100644 --- a/src/test/java/org/jabref/logic/integrity/CitationKeyDeviationCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/CitationKeyDeviationCheckerTest.java @@ -21,7 +21,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class CitationKeyDeviationCheckerTest { +class CitationKeyDeviationCheckerTest { private final BibDatabaseContext bibDatabaseContext = mock(BibDatabaseContext.class); private final BibDatabase bibDatabase = mock(BibDatabase.class); diff --git a/src/test/java/org/jabref/logic/integrity/CitationKeyDuplicationCheckerTest.java b/src/test/java/org/jabref/logic/integrity/CitationKeyDuplicationCheckerTest.java index b506e87194b..97eb6e70c45 100644 --- a/src/test/java/org/jabref/logic/integrity/CitationKeyDuplicationCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/CitationKeyDuplicationCheckerTest.java @@ -13,7 +13,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class CitationKeyDuplicationCheckerTest { +class CitationKeyDuplicationCheckerTest { @Test void emptyCitationKey() { diff --git a/src/test/java/org/jabref/logic/integrity/DoiDuplicationCheckerTest.java b/src/test/java/org/jabref/logic/integrity/DoiDuplicationCheckerTest.java index c01f2c78702..b2052938fd9 100644 --- a/src/test/java/org/jabref/logic/integrity/DoiDuplicationCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/DoiDuplicationCheckerTest.java @@ -12,7 +12,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class DoiDuplicationCheckerTest { +class DoiDuplicationCheckerTest { private final DoiDuplicationChecker checker = new DoiDuplicationChecker(); private String doiA = "10.1023/A:1022883727209"; @@ -25,7 +25,7 @@ public class DoiDuplicationCheckerTest { private BibEntry doiC_entry1 = new BibEntry().withField(StandardField.DOI, doiC); @Test - public void onePairDuplicateDOI() { + void onePairDuplicateDOI() { List entries = List.of(doiA_entry1, doiA_entry2, doiC_entry1); BibDatabase database = new BibDatabase(entries); List results = List.of(new IntegrityMessage(Localization.lang("Same DOI used in multiple entries"), doiA_entry1, StandardField.DOI), @@ -34,7 +34,7 @@ public void onePairDuplicateDOI() { } @Test - public void multiPairsDuplicateDOI() { + void multiPairsDuplicateDOI() { List entries = List.of(doiA_entry1, doiA_entry2, doiB_entry1, doiB_entry2, doiC_entry1); BibDatabase database = new BibDatabase(entries); List results = List.of(new IntegrityMessage(Localization.lang("Same DOI used in multiple entries"), doiA_entry1, StandardField.DOI), @@ -45,7 +45,7 @@ public void multiPairsDuplicateDOI() { } @Test - public void noDuplicateDOI() { + void noDuplicateDOI() { List entries = List.of(doiA_entry1, doiB_entry1, doiC_entry1); BibDatabase database = new BibDatabase(entries); assertEquals(Collections.emptyList(), checker.check(database)); diff --git a/src/test/java/org/jabref/logic/integrity/EditionCheckerTest.java b/src/test/java/org/jabref/logic/integrity/EditionCheckerTest.java index e66c53ccd11..19744e61fce 100644 --- a/src/test/java/org/jabref/logic/integrity/EditionCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/EditionCheckerTest.java @@ -13,7 +13,7 @@ import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -public class EditionCheckerTest { +class EditionCheckerTest { @Test void isFirstCharacterANumber() { assertTrue(createSimpleEditionChecker(new BibDatabaseContext(), false).isFirstCharDigit("0HelloWorld")); diff --git a/src/test/java/org/jabref/logic/integrity/HTMLCharacterCheckerTest.java b/src/test/java/org/jabref/logic/integrity/HTMLCharacterCheckerTest.java index 14fc2d15038..16b54f789c1 100644 --- a/src/test/java/org/jabref/logic/integrity/HTMLCharacterCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/HTMLCharacterCheckerTest.java @@ -16,7 +16,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -public class HTMLCharacterCheckerTest { +class HTMLCharacterCheckerTest { private final HTMLCharacterChecker checker = new HTMLCharacterChecker(); private final BibEntry entry = new BibEntry(); diff --git a/src/test/java/org/jabref/logic/integrity/HowPublishedCheckerTest.java b/src/test/java/org/jabref/logic/integrity/HowPublishedCheckerTest.java index cea5ae468a2..99ecdc51680 100644 --- a/src/test/java/org/jabref/logic/integrity/HowPublishedCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/HowPublishedCheckerTest.java @@ -11,13 +11,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; -public class HowPublishedCheckerTest { +class HowPublishedCheckerTest { private HowPublishedChecker checker; private HowPublishedChecker checkerBiblatex; @BeforeEach - public void setUp() { + void setUp() { BibDatabaseContext databaseContext = new BibDatabaseContext(); BibDatabaseContext databaseBiblatex = new BibDatabaseContext(); databaseContext.setMode(BibDatabaseMode.BIBTEX); diff --git a/src/test/java/org/jabref/logic/integrity/ISBNCheckerTest.java b/src/test/java/org/jabref/logic/integrity/ISBNCheckerTest.java index e4dca72548d..d779c86a61b 100644 --- a/src/test/java/org/jabref/logic/integrity/ISBNCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/ISBNCheckerTest.java @@ -13,7 +13,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; -public class ISBNCheckerTest { +class ISBNCheckerTest { private final ISBNChecker checker = new ISBNChecker(); @@ -39,7 +39,7 @@ void isbnDoesNotAcceptInvalidInput() { @ParameterizedTest @MethodSource("provideBoundaryArgumentsForISBN13") - public void checkISBNValue(Optional optValue, String id) { + void checkISBNValue(Optional optValue, String id) { assertEquals(optValue, checker.checkValue(id)); } diff --git a/src/test/java/org/jabref/logic/integrity/ISSNCheckerTest.java b/src/test/java/org/jabref/logic/integrity/ISSNCheckerTest.java index f06dccfdfce..6d69f626986 100644 --- a/src/test/java/org/jabref/logic/integrity/ISSNCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/ISSNCheckerTest.java @@ -13,7 +13,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; -public class ISSNCheckerTest { +class ISSNCheckerTest { private final ISSNChecker checker = new ISSNChecker(); @@ -44,7 +44,7 @@ void emptyIssnValue() { @ParameterizedTest @MethodSource("provideIncorrectFormatArguments") - public void issnWithWrongFormat(String wrongISSN) { + void issnWithWrongFormat(String wrongISSN) { assertEquals(Optional.of(Localization.lang("incorrect format")), checker.checkValue(wrongISSN)); } diff --git a/src/test/java/org/jabref/logic/integrity/JournalInAbbreviationListCheckerTest.java b/src/test/java/org/jabref/logic/integrity/JournalInAbbreviationListCheckerTest.java index 775ca2dd7a9..85e25eb995c 100644 --- a/src/test/java/org/jabref/logic/integrity/JournalInAbbreviationListCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/JournalInAbbreviationListCheckerTest.java @@ -14,7 +14,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class JournalInAbbreviationListCheckerTest { +class JournalInAbbreviationListCheckerTest { private JournalInAbbreviationListChecker checker; private JournalInAbbreviationListChecker checkerb; diff --git a/src/test/java/org/jabref/logic/integrity/LatexIntegrityCheckerTest.java b/src/test/java/org/jabref/logic/integrity/LatexIntegrityCheckerTest.java index 36c6e592651..e6c1dcfec61 100644 --- a/src/test/java/org/jabref/logic/integrity/LatexIntegrityCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/LatexIntegrityCheckerTest.java @@ -15,7 +15,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class LatexIntegrityCheckerTest { +class LatexIntegrityCheckerTest { private final LatexIntegrityChecker checker = new LatexIntegrityChecker(); private final BibEntry entry = new BibEntry(); diff --git a/src/test/java/org/jabref/logic/integrity/MonthCheckerTest.java b/src/test/java/org/jabref/logic/integrity/MonthCheckerTest.java index 44c1603bb81..4bc8f4fdad0 100644 --- a/src/test/java/org/jabref/logic/integrity/MonthCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/MonthCheckerTest.java @@ -11,13 +11,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; -public class MonthCheckerTest { +class MonthCheckerTest { private MonthChecker checker; private MonthChecker checkerBiblatex; @BeforeEach - public void setUp() { + void setUp() { BibDatabaseContext databaseContext = new BibDatabaseContext(); BibDatabaseContext databaseBiblatex = new BibDatabaseContext(); databaseContext.setMode(BibDatabaseMode.BIBTEX); diff --git a/src/test/java/org/jabref/logic/integrity/NoteCheckerTest.java b/src/test/java/org/jabref/logic/integrity/NoteCheckerTest.java index ffd5781695b..37fcb177d43 100644 --- a/src/test/java/org/jabref/logic/integrity/NoteCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/NoteCheckerTest.java @@ -11,7 +11,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; -public class NoteCheckerTest { +class NoteCheckerTest { private NoteChecker checker; private NoteChecker checkerBiblatex; diff --git a/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java b/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java index b64900e6122..bd357ed378d 100644 --- a/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java @@ -14,13 +14,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; -public class PersonNamesCheckerTest { +class PersonNamesCheckerTest { private PersonNamesChecker checker; private PersonNamesChecker checkerb; @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { BibDatabaseContext databaseContext = new BibDatabaseContext(); databaseContext.setMode(BibDatabaseMode.BIBTEX); checker = new PersonNamesChecker(databaseContext); @@ -31,7 +31,7 @@ public void setUp() throws Exception { @ParameterizedTest @MethodSource("provideValidNames") - public void validNames(String name) { + void validNames(String name) { assertEquals(Optional.empty(), checker.checkValue(name)); } @@ -53,20 +53,20 @@ private static Stream provideValidNames() { } @Test - public void complainAboutPersonStringWithTwoManyCommas() { + void complainAboutPersonStringWithTwoManyCommas() { assertEquals(Optional.of("Names are not in the standard BibTeX format."), checker.checkValue("Test1, Test2, Test3, Test4, Test5, Test6")); } @ParameterizedTest @MethodSource("provideCorrectFormats") - public void authorNameInCorrectFormatsShouldNotComplain(String input) { + void authorNameInCorrectFormatsShouldNotComplain(String input) { assertEquals(Optional.empty(), checkerb.checkValue(input)); } @ParameterizedTest @MethodSource("provideIncorrectFormats") - public void authorNameInIncorrectFormatsShouldComplain(String input) { + void authorNameInIncorrectFormatsShouldComplain(String input) { assertNotEquals(Optional.empty(), checkerb.checkValue(input)); } diff --git a/src/test/java/org/jabref/logic/integrity/TitleCheckerTest.java b/src/test/java/org/jabref/logic/integrity/TitleCheckerTest.java index 9e44e9d4215..231507a133c 100644 --- a/src/test/java/org/jabref/logic/integrity/TitleCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/TitleCheckerTest.java @@ -21,7 +21,7 @@ class BibTexChecker { private TitleChecker checker; @BeforeEach - public void setUp() { + void setUp() { BibDatabaseContext databaseContext = new BibDatabaseContext(); databaseContext.setMode(BibDatabaseMode.BIBTEX); checker = new TitleChecker(databaseContext); @@ -76,7 +76,7 @@ class BibLaTexChecker { private TitleChecker checkerBiblatex; @BeforeEach - public void setUp() { + void setUp() { BibDatabaseContext databaseBiblatex = new BibDatabaseContext(); databaseBiblatex.setMode(BibDatabaseMode.BIBLATEX); checkerBiblatex = new TitleChecker(databaseBiblatex); diff --git a/src/test/java/org/jabref/logic/integrity/TypeCheckerTest.java b/src/test/java/org/jabref/logic/integrity/TypeCheckerTest.java index 38969eb0fcd..f4b6cfaccfb 100644 --- a/src/test/java/org/jabref/logic/integrity/TypeCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/TypeCheckerTest.java @@ -11,7 +11,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class TypeCheckerTest { +class TypeCheckerTest { private final TypeChecker checker = new TypeChecker(); private BibEntry entry; diff --git a/src/test/java/org/jabref/logic/integrity/UTF8CheckerTest.java b/src/test/java/org/jabref/logic/integrity/UTF8CheckerTest.java index 87b0857b7aa..42378717004 100644 --- a/src/test/java/org/jabref/logic/integrity/UTF8CheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/UTF8CheckerTest.java @@ -15,7 +15,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class UTF8CheckerTest { +class UTF8CheckerTest { private static final Charset GBK = Charset.forName("GBK"); private final BibEntry entry = new BibEntry(); diff --git a/src/test/java/org/jabref/logic/integrity/UnicodeNormalFormCanonicalCompositionCheckTest.java b/src/test/java/org/jabref/logic/integrity/UnicodeNormalFormCanonicalCompositionCheckTest.java index ab6ccc002e3..bb025f62ab8 100644 --- a/src/test/java/org/jabref/logic/integrity/UnicodeNormalFormCanonicalCompositionCheckTest.java +++ b/src/test/java/org/jabref/logic/integrity/UnicodeNormalFormCanonicalCompositionCheckTest.java @@ -9,7 +9,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class UnicodeNormalFormCanonicalCompositionCheckTest { +class UnicodeNormalFormCanonicalCompositionCheckTest { UnicodeNormalFormCanonicalCompositionCheck checker = new UnicodeNormalFormCanonicalCompositionCheck(); @Test diff --git a/src/test/java/org/jabref/logic/integrity/UrlCheckerTest.java b/src/test/java/org/jabref/logic/integrity/UrlCheckerTest.java index 747e2babe41..238d9e3bba4 100644 --- a/src/test/java/org/jabref/logic/integrity/UrlCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/UrlCheckerTest.java @@ -7,7 +7,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; -public class UrlCheckerTest { +class UrlCheckerTest { private final UrlChecker checker = new UrlChecker(); diff --git a/src/test/java/org/jabref/logic/integrity/ValidCitationKeyCheckerTest.java b/src/test/java/org/jabref/logic/integrity/ValidCitationKeyCheckerTest.java index 042672a4430..5543a092c40 100644 --- a/src/test/java/org/jabref/logic/integrity/ValidCitationKeyCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/ValidCitationKeyCheckerTest.java @@ -11,7 +11,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class ValidCitationKeyCheckerTest { +class ValidCitationKeyCheckerTest { private final ValidCitationKeyChecker checker = new ValidCitationKeyChecker(); diff --git a/src/test/java/org/jabref/logic/integrity/YearCheckerTest.java b/src/test/java/org/jabref/logic/integrity/YearCheckerTest.java index 27c03259ed2..3d99a3c66dc 100644 --- a/src/test/java/org/jabref/logic/integrity/YearCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/YearCheckerTest.java @@ -7,7 +7,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; -public class YearCheckerTest { +class YearCheckerTest { private final YearChecker checker = new YearChecker(); diff --git a/src/test/java/org/jabref/logic/journals/AbbreviationParserTest.java b/src/test/java/org/jabref/logic/journals/AbbreviationParserTest.java index aab33eb0082..a8a883dd42b 100644 --- a/src/test/java/org/jabref/logic/journals/AbbreviationParserTest.java +++ b/src/test/java/org/jabref/logic/journals/AbbreviationParserTest.java @@ -12,7 +12,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AbbreviationParserTest { +class AbbreviationParserTest { private Path csvFile; private final AbbreviationParser parser = new AbbreviationParser(); diff --git a/src/test/java/org/jabref/logic/journals/JournalInformationFetcherTest.java b/src/test/java/org/jabref/logic/journals/JournalInformationFetcherTest.java index 25a189b0b45..b874538e186 100644 --- a/src/test/java/org/jabref/logic/journals/JournalInformationFetcherTest.java +++ b/src/test/java/org/jabref/logic/journals/JournalInformationFetcherTest.java @@ -42,62 +42,62 @@ class JournalInformationFetcherTest { ); @Test - public void getsName() { + void getsName() { assertEquals("Journal Information", fetcher.getName()); } @Test - public void getsJournalInfoValidISSN() throws FetcherException { + void getsJournalInfoValidISSN() throws FetcherException { assertEquals(Optional.of(journalInformation), fetcher.getJournalInformation("1545-4509", "")); } @Test - public void getsJournalInfoUsingName() throws FetcherException { + void getsJournalInfoUsingName() throws FetcherException { assertEquals(Optional.of(journalInformation), fetcher.getJournalInformation("", "Annual Review of Biochemistry")); } @Test - public void sameEntryReturnedFromISSNOrName() throws FetcherException { + void sameEntryReturnedFromISSNOrName() throws FetcherException { assertEquals(fetcher.getJournalInformation("1545-4509", ""), fetcher.getJournalInformation("", "Annual Review of Biochemistry")); } @Test - public void getsJournalInfoValidISSNWithoutHyphen() throws FetcherException { + void getsJournalInfoValidISSNWithoutHyphen() throws FetcherException { assertEquals(Optional.of(journalInformation), fetcher.getJournalInformation("15454509", "")); } @Test - public void getsJournalInfoNonTrimmedISSN() throws FetcherException { + void getsJournalInfoNonTrimmedISSN() throws FetcherException { assertEquals(Optional.of(journalInformation), fetcher.getJournalInformation(" 1545-4509 ", "")); } @Test - public void getJournalInfoExtraSpaceISSN() { + void getJournalInfoExtraSpaceISSN() { assertThrows(FetcherException.class, () -> fetcher.getJournalInformation("1545 - 4509", "")); } @Test - public void getJournalInfoEmptyISSN() { + void getJournalInfoEmptyISSN() { assertThrows(FetcherException.class, () -> fetcher.getJournalInformation("", "")); } @Test - public void getJournalInfoInvalidISSN() { + void getJournalInfoInvalidISSN() { assertThrows(FetcherException.class, () -> fetcher.getJournalInformation("123-123", "")); } @Test - public void getJournalInfoInvalidISSNAndNoName() { + void getJournalInfoInvalidISSNAndNoName() { assertThrows(FetcherException.class, () -> fetcher.getJournalInformation("123-123", "")); } @Test - public void getJournalInfoNoISSNAndNoName() { + void getJournalInfoNoISSNAndNoName() { assertThrows(FetcherException.class, () -> fetcher.getJournalInformation("", "")); } @Test - public void getJournalInfoNoISSNAndInvalidName() { + void getJournalInfoNoISSNAndInvalidName() { assertThrows(FetcherException.class, () -> fetcher.getJournalInformation("", "zzz")); } } diff --git a/src/test/java/org/jabref/logic/l10n/EncodingsTest.java b/src/test/java/org/jabref/logic/l10n/EncodingsTest.java index ed737b77fde..f377ec42ba4 100644 --- a/src/test/java/org/jabref/logic/l10n/EncodingsTest.java +++ b/src/test/java/org/jabref/logic/l10n/EncodingsTest.java @@ -5,24 +5,24 @@ import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class EncodingsTest { +class EncodingsTest { @Test - public void charsetsShouldNotBeNull() { + void charsetsShouldNotBeNull() { assertNotNull(Encodings.ENCODINGS); } @Test - public void displayNamesShouldNotBeNull() { + void displayNamesShouldNotBeNull() { assertNotNull(Encodings.ENCODINGS_DISPLAYNAMES); } @Test - public void charsetsShouldNotBeEmpty() { + void charsetsShouldNotBeEmpty() { assertNotEquals(0, Encodings.ENCODINGS.length); } @Test - public void displayNamesShouldNotBeEmpty() { + void displayNamesShouldNotBeEmpty() { assertNotEquals(0, Encodings.ENCODINGS_DISPLAYNAMES.length); } } diff --git a/src/test/java/org/jabref/logic/l10n/JavaLocalizationEntryParserTest.java b/src/test/java/org/jabref/logic/l10n/JavaLocalizationEntryParserTest.java index 91c434cc406..a22895705aa 100644 --- a/src/test/java/org/jabref/logic/l10n/JavaLocalizationEntryParserTest.java +++ b/src/test/java/org/jabref/logic/l10n/JavaLocalizationEntryParserTest.java @@ -67,27 +67,27 @@ public static Stream causesRuntimeExceptions() { @ParameterizedTest @MethodSource("singleLineChecks") - public void localizationKeyParsing(String code, String expectedLanguageKeys) { + void localizationKeyParsing(String code, String expectedLanguageKeys) { localizationKeyParsing(code, List.of(expectedLanguageKeys)); } @ParameterizedTest @MethodSource("multiLineChecks") - public void localizationKeyParsing(String code, List expectedLanguageKeys) { + void localizationKeyParsing(String code, List expectedLanguageKeys) { List languageKeysInString = JavaLocalizationEntryParser.getLanguageKeysInString(code, LocalizationBundleForTest.LANG); assertEquals(expectedLanguageKeys, languageKeysInString); } @ParameterizedTest @MethodSource("singleLineParameterChecks") - public void localizationParameterParsing(String code, String expectedParameter) { + void localizationParameterParsing(String code, String expectedParameter) { List languageKeysInString = JavaLocalizationEntryParser.getLocalizationParameter(code, LocalizationBundleForTest.LANG); assertEquals(List.of(expectedParameter), languageKeysInString); } @ParameterizedTest @MethodSource("causesRuntimeExceptions") - public void throwsRuntimeException(String code) { + void throwsRuntimeException(String code) { assertThrows(RuntimeException.class, () -> JavaLocalizationEntryParser.getLanguageKeysInString(code, LocalizationBundleForTest.LANG)); } } diff --git a/src/test/java/org/jabref/logic/l10n/LocalizationKeyParamsTest.java b/src/test/java/org/jabref/logic/l10n/LocalizationKeyParamsTest.java index 93c48520f1a..ac2c4a9c85e 100644 --- a/src/test/java/org/jabref/logic/l10n/LocalizationKeyParamsTest.java +++ b/src/test/java/org/jabref/logic/l10n/LocalizationKeyParamsTest.java @@ -10,11 +10,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -public class LocalizationKeyParamsTest { +class LocalizationKeyParamsTest { @ParameterizedTest @MethodSource("provideTestData") - public void replacePlaceholders(String expected, LocalizationKeyParams input) { + void replacePlaceholders(String expected, LocalizationKeyParams input) { assertEquals(expected, input.replacePlaceholders()); } @@ -29,7 +29,7 @@ private static Stream provideTestData() { } @Test - public void tooManyParams() { + void tooManyParams() { assertThrows(IllegalStateException.class, () -> new LocalizationKeyParams("", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0")); } } diff --git a/src/test/java/org/jabref/logic/l10n/LocalizationKeyTest.java b/src/test/java/org/jabref/logic/l10n/LocalizationKeyTest.java index e0d0bca52cb..85d1dd1a89a 100644 --- a/src/test/java/org/jabref/logic/l10n/LocalizationKeyTest.java +++ b/src/test/java/org/jabref/logic/l10n/LocalizationKeyTest.java @@ -33,7 +33,7 @@ private static Stream propertiesKeyTestCases() { @ParameterizedTest @MethodSource("propertiesKeyTestCases") - public void getPropertiesKeyReturnsCorrectValue(String expected, String input) { + void getPropertiesKeyReturnsCorrectValue(String expected, String input) { assertEquals(expected, LocalizationKey.fromEscapedJavaString(input).getEscapedPropertiesKey()); } } diff --git a/src/test/java/org/jabref/logic/layout/LayoutEntryTest.java b/src/test/java/org/jabref/logic/layout/LayoutEntryTest.java index d8c5137e19e..0c394cbed81 100644 --- a/src/test/java/org/jabref/logic/layout/LayoutEntryTest.java +++ b/src/test/java/org/jabref/logic/layout/LayoutEntryTest.java @@ -35,7 +35,7 @@ public class LayoutEntryTest { private BibEntry mBTE; @BeforeEach - public void setUp() { + void setUp() { mBTE = new BibEntry(); mBTE.setField(StandardField.ABSTRACT, "In this paper, we initiate a formal study of security on Android: Google's new open-source platform for mobile devices. Tags: Paper android google Open-Source Devices"); // Specifically, we present a core typed language to describe Android applications, and to reason about their data-flow security properties. Our operational semantics and type system provide some necessary foundations to help both users and developers of Android applications deal with their security concerns. @@ -69,7 +69,7 @@ public String layout(String layoutFile, BibEntry entry) throws IOException { } @Test - public void parseMethodCalls() { + void parseMethodCalls() { assertEquals(1, LayoutEntry.parseMethodsCalls("bla").size()); assertEquals("bla", (LayoutEntry.parseMethodsCalls("bla").getFirst()).getFirst()); diff --git a/src/test/java/org/jabref/logic/layout/LayoutHelperTest.java b/src/test/java/org/jabref/logic/layout/LayoutHelperTest.java index dec5ab5d781..ec8d4667731 100644 --- a/src/test/java/org/jabref/logic/layout/LayoutHelperTest.java +++ b/src/test/java/org/jabref/logic/layout/LayoutHelperTest.java @@ -17,14 +17,14 @@ class LayoutHelperTest { private final JournalAbbreviationRepository abbreviationRepository = mock(JournalAbbreviationRepository.class); @Test - public void backslashDoesNotTriggerException() { + void backslashDoesNotTriggerException() { StringReader stringReader = new StringReader("\\"); LayoutHelper layoutHelper = new LayoutHelper(stringReader, layoutFormatterPreferences, abbreviationRepository); assertThrows(IOException.class, layoutHelper::getLayoutFromText); } @Test - public void unbalancedBeginEndIsParsed() throws Exception { + void unbalancedBeginEndIsParsed() throws Exception { StringReader stringReader = new StringReader("\\begin{doi}, DOI: \\doi"); LayoutHelper layoutHelper = new LayoutHelper(stringReader, layoutFormatterPreferences, abbreviationRepository); Layout layout = layoutHelper.getLayoutFromText(); @@ -32,7 +32,7 @@ public void unbalancedBeginEndIsParsed() throws Exception { } @Test - public void minimalExampleWithDoiGetsParsed() throws Exception { + void minimalExampleWithDoiGetsParsed() throws Exception { StringReader stringReader = new StringReader("\\begin{doi}, DOI: \\doi\\end{doi}"); LayoutHelper layoutHelper = new LayoutHelper(stringReader, layoutFormatterPreferences, abbreviationRepository); Layout layout = layoutHelper.getLayoutFromText(); diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorAbbreviatorTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorAbbreviatorTest.java index 674e0185ed1..6ad5954c8a2 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorAbbreviatorTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorAbbreviatorTest.java @@ -9,10 +9,10 @@ /** * Is the save as the AuthorLastFirstAbbreviator. */ -public class AuthorAbbreviatorTest { +class AuthorAbbreviatorTest { @Test - public void format() { + void format() { LayoutFormatter a = new AuthorLastFirstAbbreviator(); LayoutFormatter b = new AuthorAbbreviator(); diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorAndsCommaReplacerTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorAndsCommaReplacerTest.java index b16f1066a98..7af3db18137 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorAndsCommaReplacerTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorAndsCommaReplacerTest.java @@ -6,13 +6,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorAndsCommaReplacerTest { +class AuthorAndsCommaReplacerTest { /** * Test method for {@link org.jabref.logic.layout.format.AuthorAndsCommaReplacer#format(java.lang.String)}. */ @Test - public void format() { + void format() { LayoutFormatter a = new AuthorAndsCommaReplacer(); // Empty case diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorAndsReplacerTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorAndsReplacerTest.java index 37dc63b3882..077a8b47ebf 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorAndsReplacerTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorAndsReplacerTest.java @@ -6,13 +6,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorAndsReplacerTest { +class AuthorAndsReplacerTest { /** * Test method for {@link org.jabref.logic.layout.format.AuthorAndsReplacer#format(java.lang.String)}. */ @Test - public void format() { + void format() { LayoutFormatter a = new AuthorAndsReplacer(); // Empty case diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastCommasTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastCommasTest.java index 24da76e2576..c75884dcaa6 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastCommasTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastCommasTest.java @@ -6,10 +6,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorFirstAbbrLastCommasTest { +class AuthorFirstAbbrLastCommasTest { @Test - public void format() { + void format() { LayoutFormatter a = new AuthorFirstAbbrLastCommas(); // Empty case diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastOxfordCommasTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastOxfordCommasTest.java index c3986b0488b..9bef9876308 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastOxfordCommasTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastOxfordCommasTest.java @@ -6,13 +6,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorFirstAbbrLastOxfordCommasTest { +class AuthorFirstAbbrLastOxfordCommasTest { /** * Test method for {@link org.jabref.logic.layout.format.AuthorFirstAbbrLastOxfordCommas#format(java.lang.String)}. */ @Test - public void format() { + void format() { LayoutFormatter a = new AuthorFirstAbbrLastOxfordCommas(); // Empty case diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorFirstFirstCommasTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorFirstFirstCommasTest.java index 19fe91f9429..8762c16f89b 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorFirstFirstCommasTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorFirstFirstCommasTest.java @@ -4,13 +4,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorFirstFirstCommasTest { +class AuthorFirstFirstCommasTest { /** * Test method for {@link org.jabref.logic.layout.format.AuthorFirstFirstCommas#format(java.lang.String)}. */ @Test - public void format() { + void format() { assertEquals("John von Neumann, John Smith and Peter Black Brown, Jr", new AuthorFirstFirstCommas() .format("von Neumann,,John and John Smith and Black Brown, Jr, Peter")); diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorFirstFirstTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorFirstFirstTest.java index 777a626c89e..6a13c3447e6 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorFirstFirstTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorFirstFirstTest.java @@ -4,13 +4,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorFirstFirstTest { +class AuthorFirstFirstTest { /** * Test method for {@link org.jabref.logic.layout.format.AuthorFirstFirst#format(java.lang.String)}. */ @Test - public void format() { + void format() { assertEquals("John von Neumann and John Smith and Peter Black Brown, Jr", new AuthorFirstFirst() .format("von Neumann,,John and John Smith and Black Brown, Jr, Peter")); diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorFirstLastCommasTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorFirstLastCommasTest.java index bdf0490a42f..145f4f4be26 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorFirstLastCommasTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorFirstLastCommasTest.java @@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorFirstLastCommasTest { +class AuthorFirstLastCommasTest { LayoutFormatter authorFLCFormatter = new AuthorFirstLastCommas(); diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorFirstLastOxfordCommasTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorFirstLastOxfordCommasTest.java index d596168fd52..0fede1004e8 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorFirstLastOxfordCommasTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorFirstLastOxfordCommasTest.java @@ -6,13 +6,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorFirstLastOxfordCommasTest { +class AuthorFirstLastOxfordCommasTest { /** * Test method for {@link org.jabref.logic.layout.format.AuthorFirstLastOxfordCommas#format(java.lang.String)}. */ @Test - public void format() { + void format() { LayoutFormatter a = new AuthorFirstLastOxfordCommas(); // Empty case diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorLF_FFAbbrTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorLF_FFAbbrTest.java index dd79e0550d5..eb46d73c188 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorLF_FFAbbrTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorLF_FFAbbrTest.java @@ -4,13 +4,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorLF_FFAbbrTest { +class AuthorLF_FFAbbrTest { /** * Test method for {@link org.jabref.logic.layout.format.AuthorLF_FFAbbr#format(java.lang.String)}. */ @Test - public void format() { + void format() { assertEquals("von Neumann, J. and J. Smith and P. Black Brown, Jr", new AuthorLF_FFAbbr() .format("von Neumann,,John and John Smith and Black Brown, Jr, Peter")); diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorLF_FFTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorLF_FFTest.java index ee89752cc08..53913398588 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorLF_FFTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorLF_FFTest.java @@ -4,13 +4,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorLF_FFTest { +class AuthorLF_FFTest { /** * Test method for {@link org.jabref.logic.layout.format.AuthorLF_FF#format(java.lang.String)}. */ @Test - public void format() { + void format() { assertEquals("von Neumann, John and John Smith and Peter Black Brown, Jr", new AuthorLF_FF() .format("von Neumann,,John and John Smith and Black Brown, Jr, Peter")); diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrCommasTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrCommasTest.java index 0d9936b84db..acad69c7575 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrCommasTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrCommasTest.java @@ -6,13 +6,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorLastFirstAbbrCommasTest { +class AuthorLastFirstAbbrCommasTest { /** * Test method for {@link org.jabref.logic.layout.format.AuthorLastFirstAbbrCommas#format(java.lang.String)}. */ @Test - public void format() { + void format() { LayoutFormatter a = new AuthorLastFirstAbbrCommas(); // Empty case diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrOxfordCommasTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrOxfordCommasTest.java index 21177f9b2bb..b7d355f2b06 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrOxfordCommasTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrOxfordCommasTest.java @@ -6,13 +6,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorLastFirstAbbrOxfordCommasTest { +class AuthorLastFirstAbbrOxfordCommasTest { /** * Test method for {@link org.jabref.logic.layout.format.AuthorLastFirstAbbrOxfordCommas#format(java.lang.String)}. */ @Test - public void format() { + void format() { LayoutFormatter a = new AuthorLastFirstAbbrOxfordCommas(); // Empty case diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstCommasTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstCommasTest.java index 8486aea1cec..374ebe02f4a 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstCommasTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstCommasTest.java @@ -6,13 +6,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorLastFirstCommasTest { +class AuthorLastFirstCommasTest { /** * Test method for {@link org.jabref.logic.layout.format.AuthorLastFirstCommas#format(java.lang.String)}. */ @Test - public void format() { + void format() { LayoutFormatter a = new AuthorLastFirstCommas(); // Empty case diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstOxfordCommasTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstOxfordCommasTest.java index 62fb0608231..7d20d8dd275 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstOxfordCommasTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstOxfordCommasTest.java @@ -6,13 +6,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorLastFirstOxfordCommasTest { +class AuthorLastFirstOxfordCommasTest { /** * Test method for {@link org.jabref.logic.layout.format.AuthorLastFirstOxfordCommas#format(java.lang.String)}. */ @Test - public void format() { + void format() { LayoutFormatter a = new AuthorLastFirstOxfordCommas(); // Empty case diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstTest.java index 9b3510a2afa..eaacb19bea2 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstTest.java @@ -6,10 +6,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorLastFirstTest { +class AuthorLastFirstTest { @Test - public void format() { + void format() { LayoutFormatter a = new AuthorLastFirst(); // Empty case diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorNatBibTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorNatBibTest.java index 164e4c667de..4daacb2ea22 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorNatBibTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorNatBibTest.java @@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorNatBibTest { +class AuthorNatBibTest { LayoutFormatter authorNatBibFormatter = new AuthorNatBib(); diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorOrgSciTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorOrgSciTest.java index 22b5b82a565..922032821ca 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorOrgSciTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorOrgSciTest.java @@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorOrgSciTest { +class AuthorOrgSciTest { LayoutFormatter authorOrgNatFormatter = new AuthorOrgSci(); LayoutFormatter authorOrgNatFormatterComposite = new CompositeFormat(new AuthorOrgSci(), new NoSpaceBetweenAbbreviations()); diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorsTest.java b/src/test/java/org/jabref/logic/layout/format/AuthorsTest.java index 9c216793ee8..29bb513c551 100644 --- a/src/test/java/org/jabref/logic/layout/format/AuthorsTest.java +++ b/src/test/java/org/jabref/logic/layout/format/AuthorsTest.java @@ -8,133 +8,133 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class AuthorsTest { +class AuthorsTest { private ParamLayoutFormatter authorsLayoutFormatter = new Authors(); @Test - public void standardUsage() { + void standardUsage() { assertEquals("B. C. Bruce, C. Manson and J. Jumper", authorsLayoutFormatter.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper")); } @Test - public void standardUsageOne() { + void standardUsageOne() { authorsLayoutFormatter.setArgument("fullname, LastFirst, Comma, Comma"); assertEquals("Bruce, Bob Croydon, Jumper, Jolly", authorsLayoutFormatter.format("Bob Croydon Bruce and Jolly Jumper")); } @Test - public void standardUsageTwo() { + void standardUsageTwo() { authorsLayoutFormatter.setArgument("initials"); assertEquals("B. C. Bruce and J. Jumper", authorsLayoutFormatter.format("Bob Croydon Bruce and Jolly Jumper")); } @Test - public void standardUsageThree() { + void standardUsageThree() { authorsLayoutFormatter.setArgument("fullname, LastFirst, Comma"); assertEquals("Bruce, Bob Croydon, Manson, Charles and Jumper, Jolly", authorsLayoutFormatter.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper")); } @Test - public void standardUsageFour() { + void standardUsageFour() { authorsLayoutFormatter.setArgument("fullname, LastFirst, Comma, 2"); assertEquals("Bruce, Bob Croydon et al.", authorsLayoutFormatter.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper")); } @Test - public void standardUsageFive() { + void standardUsageFive() { authorsLayoutFormatter.setArgument("fullname, LastFirst, Comma, 3"); assertEquals("Bruce, Bob Croydon et al.", authorsLayoutFormatter.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper and Chuck Chuckles")); } @Test - public void standardUsageSix() { + void standardUsageSix() { authorsLayoutFormatter.setArgument("fullname, LastFirst, Comma, 3, 2"); assertEquals("Bruce, Bob Croydon, Manson, Charles et al.", authorsLayoutFormatter.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper and Chuck Chuckles")); } @Test - public void specialEtAl() { + void specialEtAl() { authorsLayoutFormatter.setArgument("fullname, LastFirst, Comma, 3, etal= and a few more"); assertEquals("Bruce, Bob Croydon and a few more", authorsLayoutFormatter.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper and Chuck Chuckles")); } @Test - public void standardUsageNull() { + void standardUsageNull() { assertEquals("", authorsLayoutFormatter.format(null)); } @Test - public void standardOxford() { + void standardOxford() { authorsLayoutFormatter.setArgument("Oxford"); assertEquals("B. C. Bruce, C. Manson, and J. Jumper", authorsLayoutFormatter.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper")); } @Test - public void standardOxfordFullName() { + void standardOxfordFullName() { authorsLayoutFormatter.setArgument("FullName,Oxford"); assertEquals("Bob Croydon Bruce, Charles Manson, and Jolly Jumper", authorsLayoutFormatter.format("Bruce, Bob Croydon and Charles Manson and Jolly Jumper")); } @Test - public void standardCommaFullName() { + void standardCommaFullName() { authorsLayoutFormatter.setArgument("FullName,Comma,Comma"); assertEquals("Bob Croydon Bruce, Charles Manson, Jolly Jumper", authorsLayoutFormatter.format("Bruce, Bob Croydon and Charles Manson and Jolly Jumper")); } @Test - public void standardAmpFullName() { + void standardAmpFullName() { authorsLayoutFormatter.setArgument("FullName,Amp"); assertEquals("Bob Croydon Bruce, Charles Manson & Jolly Jumper", authorsLayoutFormatter.format("Bruce, Bob Croydon and Charles Manson and Jolly Jumper")); } @Test - public void lastName() { + void lastName() { authorsLayoutFormatter.setArgument("LastName"); assertEquals("Bruce, von Manson and Jumper", authorsLayoutFormatter.format("Bruce, Bob Croydon and Charles von Manson and Jolly Jumper")); } @Test - public void middleInitial() { + void middleInitial() { authorsLayoutFormatter.setArgument("MiddleInitial"); assertEquals("Bob C. Bruce, Charles K. von Manson and Jolly Jumper", authorsLayoutFormatter.format("Bruce, Bob Croydon and Charles Kermit von Manson and Jumper, Jolly")); } @Test - public void noPeriod() { + void noPeriod() { authorsLayoutFormatter.setArgument("NoPeriod"); assertEquals("B C Bruce, C K von Manson and J Jumper", authorsLayoutFormatter.format("Bruce, Bob Croydon and Charles Kermit von Manson and Jumper, Jolly")); } @Test - public void etAl() { + void etAl() { authorsLayoutFormatter.setArgument("2,1"); assertEquals("B. C. Bruce et al.", authorsLayoutFormatter.format("Bruce, Bob Croydon and Charles Kermit von Manson and Jumper, Jolly")); } @Test - public void etAlNotEnoughAuthors() { + void etAlNotEnoughAuthors() { authorsLayoutFormatter.setArgument("2,1"); assertEquals("B. C. Bruce and C. K. von Manson", authorsLayoutFormatter.format("Bruce, Bob Croydon and Charles Kermit von Manson")); } @Test - public void emptyEtAl() { + void emptyEtAl() { authorsLayoutFormatter.setArgument("fullname, LastFirst, Comma, 3, etal="); assertEquals("Bruce, Bob Croydon", authorsLayoutFormatter.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper and Chuck Chuckles")); @@ -146,7 +146,7 @@ public void emptyEtAl() { "LastFirst, 'Bruce, B. C., Manson, C., Jumper, J. and Chuckles, C.'", // LastFirst "LastFirstFirstFirst, 'Bruce, B. C., C. Manson, J. Jumper and C. Chuckles'" // LastFirstFirstFirst }) - public void authorOrder(String arg, String expectedResult) { + void authorOrder(String arg, String expectedResult) { authorsLayoutFormatter.setArgument(arg); String formattedStr = authorsLayoutFormatter.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper and Chuck Chuckles"); assertEquals(expectedResult, formattedStr); @@ -161,7 +161,7 @@ public void authorOrder(String arg, String expectedResult) { "LastName, 'Bruce, Manson, Jumper and Chuckles'", // LastName "InitialsNoSpace, 'B.C. Bruce, C. Manson, J. Jumper and C. Chuckles'" // InitialsNoSpace }) - public void authorABRV(String arg, String expectedResult) { + void authorABRV(String arg, String expectedResult) { authorsLayoutFormatter.setArgument(arg); String formattedStr = authorsLayoutFormatter.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper and Chuck Chuckles"); assertEquals(expectedResult, formattedStr); @@ -174,7 +174,7 @@ public void authorABRV(String arg, String expectedResult) { "NoComma, 'B. C. Bruce, C. Manson, J. Jumper and C. Chuckles'", // NoComma "NoPeriod, 'B C Bruce, C Manson, J Jumper and C Chuckles'" // NoPeriod }) - public void authorPUNC(String arg, String expectedResult) { + void authorPUNC(String arg, String expectedResult) { authorsLayoutFormatter.setArgument(arg); String formattedStr = authorsLayoutFormatter.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper and Chuck Chuckles"); assertEquals(expectedResult, formattedStr); @@ -196,7 +196,7 @@ public void authorPUNC(String arg, String expectedResult) { "'Comma, Colon', 'B. C. Bruce, C. Manson, J. Jumper: C. Chuckles'", // Comma Colon "'Comma, Semicolon', 'B. C. Bruce, C. Manson, J. Jumper; C. Chuckles'", // Comma Semicolon }) - public void authorSEPARATORS(String arg, String expectedResult) { + void authorSEPARATORS(String arg, String expectedResult) { authorsLayoutFormatter.setArgument(arg); String formattedStr = authorsLayoutFormatter.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper and Chuck Chuckles"); assertEquals(expectedResult, formattedStr); diff --git a/src/test/java/org/jabref/logic/layout/format/CompositeFormatTest.java b/src/test/java/org/jabref/logic/layout/format/CompositeFormatTest.java index 90b63437464..a682dcbfadd 100644 --- a/src/test/java/org/jabref/logic/layout/format/CompositeFormatTest.java +++ b/src/test/java/org/jabref/logic/layout/format/CompositeFormatTest.java @@ -6,16 +6,16 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class CompositeFormatTest { +class CompositeFormatTest { @Test - public void emptyComposite() { + void emptyComposite() { LayoutFormatter f = new CompositeFormat(); assertEquals("No Change", f.format("No Change")); } @Test - public void arrayComposite() { + void arrayComposite() { LayoutFormatter f = new CompositeFormat(new LayoutFormatter[]{fieldText -> fieldText + fieldText, fieldText -> "A" + fieldText, fieldText -> "B" + fieldText}); @@ -23,7 +23,7 @@ public void arrayComposite() { } @Test - public void doubleComposite() { + void doubleComposite() { LayoutFormatter f = new CompositeFormat(new AuthorOrgSci(), new NoSpaceBetweenAbbreviations()); LayoutFormatter first = new AuthorOrgSci(); LayoutFormatter second = new NoSpaceBetweenAbbreviations(); diff --git a/src/test/java/org/jabref/logic/layout/format/DOICheckTest.java b/src/test/java/org/jabref/logic/layout/format/DOICheckTest.java index f1252c770ea..ab3691c250a 100644 --- a/src/test/java/org/jabref/logic/layout/format/DOICheckTest.java +++ b/src/test/java/org/jabref/logic/layout/format/DOICheckTest.java @@ -14,7 +14,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class DOICheckTest { +class DOICheckTest { private final DOIPreferences doiPreferences = mock(DOIPreferences.class); private final LayoutFormatter layoutFormatter = new DOICheck(doiPreferences); diff --git a/src/test/java/org/jabref/logic/layout/format/DOIStripTest.java b/src/test/java/org/jabref/logic/layout/format/DOIStripTest.java index 938058c6c97..019886ab5a7 100644 --- a/src/test/java/org/jabref/logic/layout/format/DOIStripTest.java +++ b/src/test/java/org/jabref/logic/layout/format/DOIStripTest.java @@ -10,13 +10,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class DOIStripTest { +class DOIStripTest { LayoutFormatter layoutFormatter = new DOIStrip(); - @ParameterizedTest - @MethodSource("provideDOI") - public void formatDOIStrip(String formattedDOI, String originalDOI) { + @ParameterizedTest + @MethodSource("provideDOI") + void formatDOIStrip(String formattedDOI, String originalDOI) { assertEquals(formattedDOI, layoutFormatter.format(originalDOI)); } diff --git a/src/test/java/org/jabref/logic/layout/format/DateFormatterTest.java b/src/test/java/org/jabref/logic/layout/format/DateFormatterTest.java index 97856adc1cc..217c43835e2 100644 --- a/src/test/java/org/jabref/logic/layout/format/DateFormatterTest.java +++ b/src/test/java/org/jabref/logic/layout/format/DateFormatterTest.java @@ -9,22 +9,22 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class DateFormatterTest { +class DateFormatterTest { private ParamLayoutFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new DateFormatter(); } @Test - public void defaultFormat() { + void defaultFormat() { assertEquals("2016-07-15", formatter.format("2016-07-15")); } @Test - public void requestedFormat() { + void requestedFormat() { formatter.setArgument("MM/yyyy"); assertEquals("07/2016", formatter.format("2016-07-15")); } @@ -37,7 +37,7 @@ public void requestedFormat() { "yyyy.MM.dd, 2016-07-15, 2016.07.15", // yyyy.MM.dd "yyyy/MM, 2016-07-15, 2016/07", // yyyy/MM }) - public void otherFormats(String formatArg, String input, String expectedResult) { + void otherFormats(String formatArg, String input, String expectedResult) { formatter.setArgument(formatArg); String formattedStr = formatter.format(input); assertEquals(expectedResult, formattedStr); diff --git a/src/test/java/org/jabref/logic/layout/format/DefaultTest.java b/src/test/java/org/jabref/logic/layout/format/DefaultTest.java index 4414990c4fc..ddaea45c2fb 100644 --- a/src/test/java/org/jabref/logic/layout/format/DefaultTest.java +++ b/src/test/java/org/jabref/logic/layout/format/DefaultTest.java @@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class DefaultTest { +class DefaultTest { ParamLayoutFormatter paramLayoutFormatter = new Default(); diff --git a/src/test/java/org/jabref/logic/layout/format/EntryTypeFormatterTest.java b/src/test/java/org/jabref/logic/layout/format/EntryTypeFormatterTest.java index 28a57e10d0b..e9cfcfc684e 100644 --- a/src/test/java/org/jabref/logic/layout/format/EntryTypeFormatterTest.java +++ b/src/test/java/org/jabref/logic/layout/format/EntryTypeFormatterTest.java @@ -8,7 +8,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class EntryTypeFormatterTest { +class EntryTypeFormatterTest { private EntryTypeFormatter formatter = new EntryTypeFormatter(); diff --git a/src/test/java/org/jabref/logic/layout/format/FileLinkTest.java b/src/test/java/org/jabref/logic/layout/format/FileLinkTest.java index c7cd3c46302..1b58d4a07c7 100644 --- a/src/test/java/org/jabref/logic/layout/format/FileLinkTest.java +++ b/src/test/java/org/jabref/logic/layout/format/FileLinkTest.java @@ -12,12 +12,12 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class FileLinkTest { +class FileLinkTest { private ParamLayoutFormatter fileLinkLayoutFormatter; @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { fileLinkLayoutFormatter = new FileLink(Collections.emptyList(), ""); } diff --git a/src/test/java/org/jabref/logic/layout/format/FirstPageTest.java b/src/test/java/org/jabref/logic/layout/format/FirstPageTest.java index efe7f669151..9326bbd0f5b 100644 --- a/src/test/java/org/jabref/logic/layout/format/FirstPageTest.java +++ b/src/test/java/org/jabref/logic/layout/format/FirstPageTest.java @@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class FirstPageTest { +class FirstPageTest { private LayoutFormatter firstPageLayoutFormatter = new FirstPage(); diff --git a/src/test/java/org/jabref/logic/layout/format/HTMLCharsTest.java b/src/test/java/org/jabref/logic/layout/format/HTMLCharsTest.java index 045ab4b5adf..da6acd50c16 100644 --- a/src/test/java/org/jabref/logic/layout/format/HTMLCharsTest.java +++ b/src/test/java/org/jabref/logic/layout/format/HTMLCharsTest.java @@ -13,13 +13,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class HTMLCharsTest { +class HTMLCharsTest { private LayoutFormatter layout; private ParamLayoutFormatter layoutKeep; @BeforeEach - public void setUp() { + void setUp() { layout = new HTMLChars(); layoutKeep = new HTMLChars(); layoutKeep.setArgument("keepCurlyBraces"); diff --git a/src/test/java/org/jabref/logic/layout/format/HTMLParagraphsTest.java b/src/test/java/org/jabref/logic/layout/format/HTMLParagraphsTest.java index 3fd4fbd9a7c..bd88e13ec57 100644 --- a/src/test/java/org/jabref/logic/layout/format/HTMLParagraphsTest.java +++ b/src/test/java/org/jabref/logic/layout/format/HTMLParagraphsTest.java @@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class HTMLParagraphsTest { +class HTMLParagraphsTest { LayoutFormatter htmlFormatter = new HTMLParagraphs(); diff --git a/src/test/java/org/jabref/logic/layout/format/IfPluralTest.java b/src/test/java/org/jabref/logic/layout/format/IfPluralTest.java index 233b7ce0f4a..00fccb97fb6 100644 --- a/src/test/java/org/jabref/logic/layout/format/IfPluralTest.java +++ b/src/test/java/org/jabref/logic/layout/format/IfPluralTest.java @@ -6,44 +6,44 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class IfPluralTest { +class IfPluralTest { @Test - public void standardUsageOneEditor() { + void standardUsageOneEditor() { ParamLayoutFormatter a = new IfPlural(); a.setArgument("Eds.,Ed."); assertEquals("Ed.", a.format("Bob Bruce")); } @Test - public void standardUsageTwoEditors() { + void standardUsageTwoEditors() { ParamLayoutFormatter a = new IfPlural(); a.setArgument("Eds.,Ed."); assertEquals("Eds.", a.format("Bob Bruce and Jolly Jumper")); } @Test - public void formatNull() { + void formatNull() { ParamLayoutFormatter a = new IfPlural(); a.setArgument("Eds.,Ed."); assertEquals("", a.format(null)); } @Test - public void formatEmpty() { + void formatEmpty() { ParamLayoutFormatter a = new IfPlural(); a.setArgument("Eds.,Ed."); assertEquals("", a.format("")); } @Test - public void noArgumentSet() { + void noArgumentSet() { ParamLayoutFormatter a = new IfPlural(); assertEquals("", a.format("Bob Bruce and Jolly Jumper")); } @Test - public void noProperArgument() { + void noProperArgument() { ParamLayoutFormatter a = new IfPlural(); a.setArgument("Eds."); assertEquals("", a.format("Bob Bruce and Jolly Jumper")); diff --git a/src/test/java/org/jabref/logic/layout/format/LastPageTest.java b/src/test/java/org/jabref/logic/layout/format/LastPageTest.java index c7cf743dc22..84b34eee8f9 100644 --- a/src/test/java/org/jabref/logic/layout/format/LastPageTest.java +++ b/src/test/java/org/jabref/logic/layout/format/LastPageTest.java @@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class LastPageTest { +class LastPageTest { private LayoutFormatter lastPageLayoutFormatter = new LastPage(); diff --git a/src/test/java/org/jabref/logic/layout/format/NameFormatterTest.java b/src/test/java/org/jabref/logic/layout/format/NameFormatterTest.java index 0065ba901fd..a1154cd233e 100644 --- a/src/test/java/org/jabref/logic/layout/format/NameFormatterTest.java +++ b/src/test/java/org/jabref/logic/layout/format/NameFormatterTest.java @@ -4,10 +4,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class NameFormatterTest { +class NameFormatterTest { @Test - public void formatStringStringBibtexEntry() { + void formatStringStringBibtexEntry() { NameFormatter l = new NameFormatter(); assertEquals("Doe", l.format("Joe Doe", "1@*@{ll}")); @@ -30,7 +30,7 @@ public void formatStringStringBibtexEntry() { } @Test - public void format() { + void format() { NameFormatter a = new NameFormatter(); // Empty case diff --git a/src/test/java/org/jabref/logic/layout/format/NoSpaceBetweenAbbreviationsTest.java b/src/test/java/org/jabref/logic/layout/format/NoSpaceBetweenAbbreviationsTest.java index 7c75e579b86..9e9c00463b7 100644 --- a/src/test/java/org/jabref/logic/layout/format/NoSpaceBetweenAbbreviationsTest.java +++ b/src/test/java/org/jabref/logic/layout/format/NoSpaceBetweenAbbreviationsTest.java @@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class NoSpaceBetweenAbbreviationsTest { +class NoSpaceBetweenAbbreviationsTest { private LayoutFormatter nsbaLayoutFormatter = new NoSpaceBetweenAbbreviations(); diff --git a/src/test/java/org/jabref/logic/layout/format/OrdinalTest.java b/src/test/java/org/jabref/logic/layout/format/OrdinalTest.java index 525f99cf554..928928714d0 100644 --- a/src/test/java/org/jabref/logic/layout/format/OrdinalTest.java +++ b/src/test/java/org/jabref/logic/layout/format/OrdinalTest.java @@ -5,20 +5,20 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class OrdinalTest { +class OrdinalTest { @Test - public void empty() { + void empty() { assertEquals("", new Ordinal().format("")); } @Test - public void testNull() { + void testNull() { assertNull(new Ordinal().format(null)); } @Test - public void singleDigit() { + void singleDigit() { assertEquals("1st", new Ordinal().format("1")); assertEquals("2nd", new Ordinal().format("2")); assertEquals("3rd", new Ordinal().format("3")); @@ -26,28 +26,28 @@ public void singleDigit() { } @Test - public void multiDigits() { + void multiDigits() { assertEquals("11th", new Ordinal().format("11")); assertEquals("111th", new Ordinal().format("111")); assertEquals("21st", new Ordinal().format("21")); } @Test - public void alreadyOrdinals() { + void alreadyOrdinals() { assertEquals("1st", new Ordinal().format("1st")); assertEquals("111th", new Ordinal().format("111th")); assertEquals("22nd", new Ordinal().format("22nd")); } @Test - public void fullSentence() { + void fullSentence() { assertEquals("1st edn.", new Ordinal().format("1 edn.")); assertEquals("1st edition", new Ordinal().format("1st edition")); assertEquals("The 2nd conference on 3rd.14th", new Ordinal().format("The 2 conference on 3.14")); } @Test - public void letters() { + void letters() { assertEquals("abCD eFg", new Ordinal().format("abCD eFg")); } } diff --git a/src/test/java/org/jabref/logic/layout/format/RTFCharsTest.java b/src/test/java/org/jabref/logic/layout/format/RTFCharsTest.java index b3af415daa7..554a97ff9ad 100644 --- a/src/test/java/org/jabref/logic/layout/format/RTFCharsTest.java +++ b/src/test/java/org/jabref/logic/layout/format/RTFCharsTest.java @@ -180,7 +180,7 @@ void specialCharacters() { "ß, \\u223ss", // ss "¡, \\u161!" // ! }) - public void moreSpecialCharacters(String specialChar, String expectedResult) { + void moreSpecialCharacters(String specialChar, String expectedResult) { String formattedStr = formatter.format(specialChar); assertEquals(expectedResult, formattedStr); } diff --git a/src/test/java/org/jabref/logic/layout/format/RemoveBracketsAddCommaTest.java b/src/test/java/org/jabref/logic/layout/format/RemoveBracketsAddCommaTest.java index 666958bb44a..f2dce2085ac 100644 --- a/src/test/java/org/jabref/logic/layout/format/RemoveBracketsAddCommaTest.java +++ b/src/test/java/org/jabref/logic/layout/format/RemoveBracketsAddCommaTest.java @@ -11,11 +11,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class RemoveBracketsAddCommaTest { +class RemoveBracketsAddCommaTest { private LayoutFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new RemoveBracketsAddComma(); } diff --git a/src/test/java/org/jabref/logic/layout/format/RemoveBracketsTest.java b/src/test/java/org/jabref/logic/layout/format/RemoveBracketsTest.java index 000cc393d32..589f45427f0 100644 --- a/src/test/java/org/jabref/logic/layout/format/RemoveBracketsTest.java +++ b/src/test/java/org/jabref/logic/layout/format/RemoveBracketsTest.java @@ -7,36 +7,36 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class RemoveBracketsTest { +class RemoveBracketsTest { private LayoutFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new RemoveBrackets(); } @Test - public void bracePairCorrectlyRemoved() throws Exception { + void bracePairCorrectlyRemoved() throws Exception { assertEquals("some text", formatter.format("{some text}")); } @Test - public void singleOpeningBraceCorrectlyRemoved() throws Exception { + void singleOpeningBraceCorrectlyRemoved() throws Exception { assertEquals("some text", formatter.format("{some text")); } @Test - public void singleClosingBraceCorrectlyRemoved() throws Exception { + void singleClosingBraceCorrectlyRemoved() throws Exception { assertEquals("some text", formatter.format("some text}")); } @Test - public void bracePairWithEscapedBackslashCorrectlyRemoved() throws Exception { + void bracePairWithEscapedBackslashCorrectlyRemoved() throws Exception { assertEquals("\\some text\\", formatter.format("\\{some text\\}")); } @Test - public void withoutBracketsUnmodified() throws Exception { + void withoutBracketsUnmodified() throws Exception { assertEquals("some text", formatter.format("some text")); } } diff --git a/src/test/java/org/jabref/logic/layout/format/RemoveLatexCommandsFormatterTest.java b/src/test/java/org/jabref/logic/layout/format/RemoveLatexCommandsFormatterTest.java index 9eab6df5985..a3915f83d43 100644 --- a/src/test/java/org/jabref/logic/layout/format/RemoveLatexCommandsFormatterTest.java +++ b/src/test/java/org/jabref/logic/layout/format/RemoveLatexCommandsFormatterTest.java @@ -10,52 +10,52 @@ class RemoveLatexCommandsFormatterTest { private RemoveLatexCommandsFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new RemoveLatexCommandsFormatter(); } @Test - public void withoutLatexCommandsUnmodified() { + void withoutLatexCommandsUnmodified() { assertEquals("some text", formatter.format("some text")); } @Test - public void singleCommandWiped() { + void singleCommandWiped() { assertEquals("", formatter.format("\\sometext")); } @Test - public void singleSpaceAfterCommandRemoved() { + void singleSpaceAfterCommandRemoved() { assertEquals("text", formatter.format("\\some text")); } @Test - public void multipleSpacesAfterCommandRemoved() { + void multipleSpacesAfterCommandRemoved() { assertEquals("text", formatter.format("\\some text")); } @Test - public void escapedBackslashBecomesBackslash() { + void escapedBackslashBecomesBackslash() { assertEquals("\\", formatter.format("\\\\")); } @Test - public void escapedBackslashFollowedByTextBecomesBackslashFollowedByText() { + void escapedBackslashFollowedByTextBecomesBackslashFollowedByText() { assertEquals("\\some text", formatter.format("\\\\some text")); } @Test - public void escapedBackslashKept() { + void escapedBackslashKept() { assertEquals("\\some text\\", formatter.format("\\\\some text\\\\")); } @Test - public void escapedUnderscoreReplaces() { + void escapedUnderscoreReplaces() { assertEquals("some_text", formatter.format("some\\_text")); } @Test - public void exampleUrlCorrectlyCleaned() { + void exampleUrlCorrectlyCleaned() { assertEquals("http://pi.informatik.uni-siegen.de/stt/36_2/./03_Technische_Beitraege/ZEUS2016/beitrag_2.pdf", formatter.format("http://pi.informatik.uni-siegen.de/stt/36\\_2/./03\\_Technische\\_Beitraege/ZEUS2016/beitrag\\_2.pdf")); } } diff --git a/src/test/java/org/jabref/logic/layout/format/RemoveTildeTest.java b/src/test/java/org/jabref/logic/layout/format/RemoveTildeTest.java index 17635c2b723..ae832ef7316 100644 --- a/src/test/java/org/jabref/logic/layout/format/RemoveTildeTest.java +++ b/src/test/java/org/jabref/logic/layout/format/RemoveTildeTest.java @@ -11,11 +11,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class RemoveTildeTest { +class RemoveTildeTest { private LayoutFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new RemoveTilde(); } diff --git a/src/test/java/org/jabref/logic/layout/format/RemoveWhitespaceTest.java b/src/test/java/org/jabref/logic/layout/format/RemoveWhitespaceTest.java index 66b76d65f07..bb4a61bdba1 100644 --- a/src/test/java/org/jabref/logic/layout/format/RemoveWhitespaceTest.java +++ b/src/test/java/org/jabref/logic/layout/format/RemoveWhitespaceTest.java @@ -5,30 +5,30 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class RemoveWhitespaceTest { +class RemoveWhitespaceTest { @Test - public void emptyExpectEmpty() { + void emptyExpectEmpty() { assertEquals("", new RemoveWhitespace().format("")); } @Test - public void nullExpectNull() { + void nullExpectNull() { assertNull(new RemoveWhitespace().format(null)); } @Test - public void normal() { + void normal() { assertEquals("abcd EFG", new RemoveWhitespace().format("abcd EFG")); } @Test - public void tab() { + void tab() { assertEquals("abcd EFG", new RemoveWhitespace().format("abcd\t EFG")); } @Test - public void newLineCombo() { + void newLineCombo() { assertEquals("abcd EFG", new RemoveWhitespace().format("abcd\r E\nFG\r\n")); } } diff --git a/src/test/java/org/jabref/logic/layout/format/ReplaceTest.java b/src/test/java/org/jabref/logic/layout/format/ReplaceTest.java index 4f605f9b15a..4dfd366cc79 100644 --- a/src/test/java/org/jabref/logic/layout/format/ReplaceTest.java +++ b/src/test/java/org/jabref/logic/layout/format/ReplaceTest.java @@ -7,44 +7,44 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class ReplaceTest { +class ReplaceTest { @Test - public void simpleText() { + void simpleText() { ParamLayoutFormatter a = new Replace(); a.setArgument("Bob,Ben"); assertEquals("Ben Bruce", a.format("Bob Bruce")); } @Test - public void simpleTextNoHit() { + void simpleTextNoHit() { ParamLayoutFormatter a = new Replace(); a.setArgument("Bob,Ben"); assertEquals("Jolly Jumper", a.format("Jolly Jumper")); } @Test - public void formatNull() { + void formatNull() { ParamLayoutFormatter a = new Replace(); a.setArgument("Eds.,Ed."); assertNull(a.format(null)); } @Test - public void formatEmpty() { + void formatEmpty() { ParamLayoutFormatter a = new Replace(); a.setArgument("Eds.,Ed."); assertEquals("", a.format("")); } @Test - public void noArgumentSet() { + void noArgumentSet() { ParamLayoutFormatter a = new Replace(); assertEquals("Bob Bruce and Jolly Jumper", a.format("Bob Bruce and Jolly Jumper")); } @Test - public void noProperArgument() { + void noProperArgument() { ParamLayoutFormatter a = new Replace(); a.setArgument("Eds."); assertEquals("Bob Bruce and Jolly Jumper", a.format("Bob Bruce and Jolly Jumper")); diff --git a/src/test/java/org/jabref/logic/layout/format/ReplaceUnicodeLigaturesFormatterTest.java b/src/test/java/org/jabref/logic/layout/format/ReplaceUnicodeLigaturesFormatterTest.java index 8f971c65c1e..f3391ea974e 100644 --- a/src/test/java/org/jabref/logic/layout/format/ReplaceUnicodeLigaturesFormatterTest.java +++ b/src/test/java/org/jabref/logic/layout/format/ReplaceUnicodeLigaturesFormatterTest.java @@ -5,34 +5,34 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class ReplaceUnicodeLigaturesFormatterTest { +class ReplaceUnicodeLigaturesFormatterTest { private ReplaceUnicodeLigaturesFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new ReplaceUnicodeLigaturesFormatter(); } @Test - public void plainFormat() { + void plainFormat() { assertEquals("lorem ipsum", formatter.format("lorem ipsum")); } @Test - public void singleLigatures() { + void singleLigatures() { assertEquals("AA", formatter.format("\uA732")); assertEquals("fi", formatter.format("fi")); assertEquals("et", formatter.format("\uD83D\uDE70")); } @Test - public void ligatureSequence() { + void ligatureSequence() { assertEquals("aefffflstue", formatter.format("æfffflstᵫ")); } @Test - public void sampleInput() { + void sampleInput() { assertEquals("AEneas", formatter.format("Æneas")); } } diff --git a/src/test/java/org/jabref/logic/layout/format/RisKeywordsTest.java b/src/test/java/org/jabref/logic/layout/format/RisKeywordsTest.java index 55f9dc5bfff..6079cc76439 100644 --- a/src/test/java/org/jabref/logic/layout/format/RisKeywordsTest.java +++ b/src/test/java/org/jabref/logic/layout/format/RisKeywordsTest.java @@ -6,30 +6,30 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class RisKeywordsTest { +class RisKeywordsTest { @Test - public void empty() { + void empty() { assertEquals("", new RisKeywords().format("")); } @Test - public void testNull() { + void testNull() { assertEquals("", new RisKeywords().format(null)); } @Test - public void singleKeyword() { + void singleKeyword() { assertEquals("KW - abcd", new RisKeywords().format("abcd")); } @Test - public void twoKeywords() { + void twoKeywords() { assertEquals("KW - abcd" + OS.NEWLINE + "KW - efg", new RisKeywords().format("abcd, efg")); } @Test - public void multipleKeywords() { + void multipleKeywords() { assertEquals("KW - abcd" + OS.NEWLINE + "KW - efg" + OS.NEWLINE + "KW - hij" + OS.NEWLINE + "KW - klm", new RisKeywords().format("abcd, efg, hij, klm")); } diff --git a/src/test/java/org/jabref/logic/layout/format/RisMonthTest.java b/src/test/java/org/jabref/logic/layout/format/RisMonthTest.java index 49299e5c5a6..bba8f10e1be 100644 --- a/src/test/java/org/jabref/logic/layout/format/RisMonthTest.java +++ b/src/test/java/org/jabref/logic/layout/format/RisMonthTest.java @@ -6,15 +6,15 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class RisMonthTest { +class RisMonthTest { @Test - public void empty() { + void empty() { assertEquals("", new RisMonth().format("")); } @Test - public void testNull() { + void testNull() { assertEquals("", new RisMonth().format(null)); } @@ -33,13 +33,13 @@ public void testNull() { "nov, 11", // nov "dec, 12", // dec }) - public void validMonth(String input, String expectedResult) { + void validMonth(String input, String expectedResult) { String formattedStr = new RisMonth().format(input); assertEquals(expectedResult, formattedStr); } @Test - public void invalidMonth() { + void invalidMonth() { assertEquals("abcd", new RisMonth().format("abcd")); } } diff --git a/src/test/java/org/jabref/logic/layout/format/ShortMonthFormatterTest.java b/src/test/java/org/jabref/logic/layout/format/ShortMonthFormatterTest.java index 2b8ee803be5..6091f3ea481 100644 --- a/src/test/java/org/jabref/logic/layout/format/ShortMonthFormatterTest.java +++ b/src/test/java/org/jabref/logic/layout/format/ShortMonthFormatterTest.java @@ -12,23 +12,23 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class ShortMonthFormatterTest { +class ShortMonthFormatterTest { private LayoutFormatter formatter; @BeforeEach - public void setUp() { + void setUp() { formatter = new ShortMonthFormatter(); } @Test - public void formatNullInput() { + void formatNullInput() { assertEquals("", formatter.format(null)); } @ParameterizedTest @MethodSource("provideArguments") - public void formatDifferentInputs(String formattedString, String originalString) { + void formatDifferentInputs(String formattedString, String originalString) { assertEquals(formattedString, formatter.format(originalString)); } diff --git a/src/test/java/org/jabref/logic/layout/format/ToLowerCaseTest.java b/src/test/java/org/jabref/logic/layout/format/ToLowerCaseTest.java index 1ab1455925c..522154d6233 100644 --- a/src/test/java/org/jabref/logic/layout/format/ToLowerCaseTest.java +++ b/src/test/java/org/jabref/logic/layout/format/ToLowerCaseTest.java @@ -10,16 +10,16 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class ToLowerCaseTest { +class ToLowerCaseTest { @Test - public void testNull() { + void testNull() { assertNull(new ToLowerCase().format(null)); } @ParameterizedTest @MethodSource("provideArguments") - public void toLowerCaseWithDifferentInputs(String expectedString, String originalString) { + void toLowerCaseWithDifferentInputs(String expectedString, String originalString) { assertEquals(expectedString, new ToLowerCase().format(originalString)); } diff --git a/src/test/java/org/jabref/logic/layout/format/ToUpperCaseTest.java b/src/test/java/org/jabref/logic/layout/format/ToUpperCaseTest.java index 4611ed276ed..62235429eea 100644 --- a/src/test/java/org/jabref/logic/layout/format/ToUpperCaseTest.java +++ b/src/test/java/org/jabref/logic/layout/format/ToUpperCaseTest.java @@ -8,7 +8,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class ToUpperCaseTest { +class ToUpperCaseTest { ToUpperCase upperCase = new ToUpperCase(); diff --git a/src/test/java/org/jabref/logic/layout/format/WrapContentTest.java b/src/test/java/org/jabref/logic/layout/format/WrapContentTest.java index bb933c44b5c..7146ff172d4 100644 --- a/src/test/java/org/jabref/logic/layout/format/WrapContentTest.java +++ b/src/test/java/org/jabref/logic/layout/format/WrapContentTest.java @@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class WrapContentTest { +class WrapContentTest { private ParamLayoutFormatter wrapContentParamLayoutFormatter = new WrapContent(); diff --git a/src/test/java/org/jabref/logic/msbib/MsBibAuthorTest.java b/src/test/java/org/jabref/logic/msbib/MsBibAuthorTest.java index cbf128bf6da..66fc347dd5a 100644 --- a/src/test/java/org/jabref/logic/msbib/MsBibAuthorTest.java +++ b/src/test/java/org/jabref/logic/msbib/MsBibAuthorTest.java @@ -7,45 +7,45 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class MsBibAuthorTest { +class MsBibAuthorTest { @Test - public void getGivenNameName() { + void getGivenNameName() { Author author = new Author("Gustav Peter Johann", null, null, "Bach", null); MsBibAuthor msBibAuthor = new MsBibAuthor(author); assertEquals("Gustav", msBibAuthor.getFirstName()); } @Test - public void getMiddleName() { + void getMiddleName() { Author author = new Author("Gustav Peter Johann", null, null, "Bach", null); MsBibAuthor msBibAuthor = new MsBibAuthor(author); assertEquals("Peter Johann", msBibAuthor.getMiddleName()); } @Test - public void getNoMiddleName() { + void getNoMiddleName() { Author author = new Author("Gustav", null, null, "Bach", null); MsBibAuthor msBibAuthor = new MsBibAuthor(author); assertNull(msBibAuthor.getMiddleName()); } @Test - public void getNoFirstName() { + void getNoFirstName() { Author author = new Author(null, null, null, "Bach", null); MsBibAuthor msBibAuthor = new MsBibAuthor(author); assertNull(msBibAuthor.getMiddleName()); } @Test - public void getFamilyNameName() { + void getFamilyNameName() { Author author = new Author("Gustav Peter Johann", null, null, "Bach", null); MsBibAuthor msBibAuthor = new MsBibAuthor(author); assertEquals("Bach", msBibAuthor.getLastName()); } @Test - public void getNamePrefixAndLastName() { + void getNamePrefixAndLastName() { Author author = new Author("John", null, "von", "Neumann", null); MsBibAuthor msBibAuthor = new MsBibAuthor(author); assertEquals("von Neumann", msBibAuthor.getLastName()); diff --git a/src/test/java/org/jabref/logic/msbib/MsBibMappingTest.java b/src/test/java/org/jabref/logic/msbib/MsBibMappingTest.java index bb2462bbbdf..5dd63ec8287 100644 --- a/src/test/java/org/jabref/logic/msbib/MsBibMappingTest.java +++ b/src/test/java/org/jabref/logic/msbib/MsBibMappingTest.java @@ -4,27 +4,27 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class MsBibMappingTest { +class MsBibMappingTest { @Test - public void getLanguage() { + void getLanguage() { String lang = MSBibMapping.getLanguage(1609); assertEquals("basque", lang); } @Test - public void getLCID() { + void getLCID() { int lcid = MSBibMapping.getLCID("basque"); assertEquals(1609, lcid); } @Test - public void getInvalidLanguage() { + void getInvalidLanguage() { String lang = MSBibMapping.getLanguage(1234567); assertEquals("english", lang); } @Test - public void invalidLCID() { + void invalidLCID() { int lcid = MSBibMapping.getLCID("not a language"); assertEquals(1033, lcid); } diff --git a/src/test/java/org/jabref/logic/net/ProxyTest.java b/src/test/java/org/jabref/logic/net/ProxyTest.java index 800cd40e8e5..36a8869ff49 100644 --- a/src/test/java/org/jabref/logic/net/ProxyTest.java +++ b/src/test/java/org/jabref/logic/net/ProxyTest.java @@ -5,13 +5,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -public class ProxyTest { - /** - * The test checks if ProxyPreference class is still able to store password and use it from memory, - * even though it's no longer stored in register. - */ - @Test - public void proxyPreferencesStorePassword() { +class ProxyTest { + /** + * The test checks if ProxyPreference class is still able to store password and use it from memory, + * even though it's no longer stored in register. + */ + @Test + void proxyPreferencesStorePassword() { // mock data boolean useProxy = true; String hostname = "testName"; diff --git a/src/test/java/org/jabref/logic/net/URLDownloadTest.java b/src/test/java/org/jabref/logic/net/URLDownloadTest.java index 38b0846d8a5..ff0c221efc1 100644 --- a/src/test/java/org/jabref/logic/net/URLDownloadTest.java +++ b/src/test/java/org/jabref/logic/net/URLDownloadTest.java @@ -21,26 +21,26 @@ import static org.junit.jupiter.api.Assertions.assertTrue; @FetcherTest -public class URLDownloadTest { +class URLDownloadTest { private static final Logger LOGGER = LoggerFactory.getLogger(URLDownloadTest.class); @Test - public void stringDownloadWithSetEncoding() throws Exception { + void stringDownloadWithSetEncoding() throws Exception { URLDownload dl = new URLDownload(new URL("http://www.google.com")); assertTrue(dl.asString().contains("Google"), "google.com should contain google"); } @Test - public void stringDownload() throws Exception { + void stringDownload() throws Exception { URLDownload dl = new URLDownload(new URL("http://www.google.com")); assertTrue(dl.asString(StandardCharsets.UTF_8).contains("Google"), "google.com should contain google"); } @Test - public void fileDownload() throws Exception { + void fileDownload() throws Exception { File destination = File.createTempFile("jabref-test", ".html"); try { URLDownload dl = new URLDownload(new URL("http://www.google.com")); @@ -55,14 +55,14 @@ public void fileDownload() throws Exception { } @Test - public void determineMimeType() throws Exception { + void determineMimeType() throws Exception { URLDownload dl = new URLDownload(new URL("http://www.google.com")); assertTrue(dl.getMimeType().startsWith("text/html")); } @Test - public void downloadToTemporaryFilePathWithoutFileSavesAsTmpFile() throws Exception { + void downloadToTemporaryFilePathWithoutFileSavesAsTmpFile() throws Exception { URLDownload google = new URLDownload(new URL("http://www.google.com")); String path = google.toTemporaryFile().toString(); @@ -70,7 +70,7 @@ public void downloadToTemporaryFilePathWithoutFileSavesAsTmpFile() throws Except } @Test - public void downloadToTemporaryFileKeepsName() throws Exception { + void downloadToTemporaryFileKeepsName() throws Exception { URLDownload google = new URLDownload(new URL("https://github.com/JabRef/jabref/blob/main/LICENSE")); String path = google.toTemporaryFile().toString(); @@ -79,7 +79,7 @@ public void downloadToTemporaryFileKeepsName() throws Exception { @Test @DisabledOnCIServer("CI Server is apparently blocked") - public void downloadOfFTPSucceeds() throws Exception { + void downloadOfFTPSucceeds() throws Exception { URLDownload ftp = new URLDownload(new URL("ftp://ftp.informatik.uni-stuttgart.de/pub/library/ncstrl.ustuttgart_fi/INPROC-2016-15/INPROC-2016-15.pdf")); Path path = ftp.toTemporaryFile(); @@ -87,7 +87,7 @@ public void downloadOfFTPSucceeds() throws Exception { } @Test - public void downloadOfHttpSucceeds() throws Exception { + void downloadOfHttpSucceeds() throws Exception { URLDownload ftp = new URLDownload(new URL("http://www.jabref.org")); Path path = ftp.toTemporaryFile(); @@ -95,7 +95,7 @@ public void downloadOfHttpSucceeds() throws Exception { } @Test - public void downloadOfHttpsSucceeds() throws Exception { + void downloadOfHttpsSucceeds() throws Exception { URLDownload ftp = new URLDownload(new URL("https://www.jabref.org")); Path path = ftp.toTemporaryFile(); @@ -103,21 +103,21 @@ public void downloadOfHttpsSucceeds() throws Exception { } @Test - public void checkConnectionSuccess() throws MalformedURLException { + void checkConnectionSuccess() throws MalformedURLException { URLDownload google = new URLDownload(new URL("http://www.google.com")); assertTrue(google.canBeReached()); } @Test - public void checkConnectionFail() throws MalformedURLException { + void checkConnectionFail() throws MalformedURLException { URLDownload nonsense = new URLDownload(new URL("http://nonsenseadddress")); assertThrows(UnirestException.class, nonsense::canBeReached); } @Test - public void connectTimeoutIsNeverNull() throws MalformedURLException { + void connectTimeoutIsNeverNull() throws MalformedURLException { URLDownload urlDownload = new URLDownload(new URL("http://www.example.com")); assertNotNull(urlDownload.getConnectTimeout(), "there's a non-null default by the constructor"); @@ -126,13 +126,13 @@ public void connectTimeoutIsNeverNull() throws MalformedURLException { } @Test - public void test503ErrorThrowsFetcherServerException() throws Exception { + void test503ErrorThrowsFetcherServerException() throws Exception { URLDownload urlDownload = new URLDownload(new URL("http://httpstat.us/503")); assertThrows(FetcherServerException.class, urlDownload::asString); } @Test - public void test429ErrorThrowsFetcherClientException() throws Exception { + void test429ErrorThrowsFetcherClientException() throws Exception { URLDownload urlDownload = new URLDownload(new URL("http://httpstat.us/429")); Exception exception = assertThrows(FetcherClientException.class, urlDownload::asString); } diff --git a/src/test/java/org/jabref/logic/openoffice/style/OOPreFormatterTest.java b/src/test/java/org/jabref/logic/openoffice/style/OOPreFormatterTest.java index 790483fd57c..2b49ccc73f8 100644 --- a/src/test/java/org/jabref/logic/openoffice/style/OOPreFormatterTest.java +++ b/src/test/java/org/jabref/logic/openoffice/style/OOPreFormatterTest.java @@ -4,10 +4,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class OOPreFormatterTest { +class OOPreFormatterTest { @Test - public void plainFormat() { + void plainFormat() { assertEquals("aaa", new OOPreFormatter().format("aaa")); assertEquals("$", new OOPreFormatter().format("\\$")); assertEquals("%", new OOPreFormatter().format("\\%")); @@ -15,19 +15,19 @@ public void plainFormat() { } @Test - public void removeBraces() { + void removeBraces() { assertEquals("aaa", new OOPreFormatter().format("{aaa}")); } @Test - public void formatAccents() { + void formatAccents() { assertEquals("ä", new OOPreFormatter().format("{\\\"{a}}")); assertEquals("Ä", new OOPreFormatter().format("{\\\"{A}}")); assertEquals("Ç", new OOPreFormatter().format("{\\c{C}}")); } @Test - public void specialCommands() { + void specialCommands() { assertEquals("å", new OOPreFormatter().format("{\\aa}")); assertEquals("bb", new OOPreFormatter().format("{\\bb}")); assertEquals("å a", new OOPreFormatter().format("\\aa a")); @@ -37,24 +37,24 @@ public void specialCommands() { } @Test - public void unsupportedSpecialCommands() { + void unsupportedSpecialCommands() { assertEquals("ftmch", new OOPreFormatter().format("\\ftmch")); assertEquals("ftmch", new OOPreFormatter().format("{\\ftmch}")); assertEquals("ftmchaaa", new OOPreFormatter().format("{\\ftmch\\aaa}")); } @Test - public void equations() { + void equations() { assertEquals("Σ", new OOPreFormatter().format("$\\Sigma$")); } @Test - public void formatStripLatexCommands() { + void formatStripLatexCommands() { assertEquals("-", new OOPreFormatter().format("\\mbox{-}")); } @Test - public void formatting() { + void formatting() { assertEquals("kkk", new OOPreFormatter().format("\\textit{kkk}")); assertEquals("kkk", new OOPreFormatter().format("{\\it kkk}")); assertEquals("kkk", new OOPreFormatter().format("\\emph{kkk}")); diff --git a/src/test/java/org/jabref/logic/openoffice/style/StyleLoaderTest.java b/src/test/java/org/jabref/logic/openoffice/style/StyleLoaderTest.java index 8d54461e34b..008a61f3afd 100644 --- a/src/test/java/org/jabref/logic/openoffice/style/StyleLoaderTest.java +++ b/src/test/java/org/jabref/logic/openoffice/style/StyleLoaderTest.java @@ -23,7 +23,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class StyleLoaderTest { +class StyleLoaderTest { private static final int NUMBER_OF_INTERNAL_STYLES = 2; private StyleLoader loader; @@ -33,29 +33,29 @@ public class StyleLoaderTest { private JournalAbbreviationRepository abbreviationRepository; @BeforeEach - public void setUp() { + void setUp() { preferences = mock(OpenOfficePreferences.class, Answers.RETURNS_DEEP_STUBS); layoutPreferences = mock(LayoutFormatterPreferences.class, Answers.RETURNS_DEEP_STUBS); abbreviationRepository = mock(JournalAbbreviationRepository.class); } @Test - public void throwNPEWithNullPreferences() { + void throwNPEWithNullPreferences() { assertThrows(NullPointerException.class, () -> loader = new StyleLoader(null, layoutPreferences, abbreviationRepository)); } @Test - public void throwNPEWithNullLayoutPreferences() { + void throwNPEWithNullLayoutPreferences() { assertThrows(NullPointerException.class, () -> loader = new StyleLoader(mock(OpenOfficePreferences.class), null, abbreviationRepository)); } @Test - public void throwNPEWithNullAbbreviationRepository() { + void throwNPEWithNullAbbreviationRepository() { assertThrows(NullPointerException.class, () -> loader = new StyleLoader(mock(OpenOfficePreferences.class), layoutPreferences, null)); } @Test - public void getStylesWithEmptyExternal() { + void getStylesWithEmptyExternal() { preferences.setExternalStyles(Collections.emptyList()); loader = new StyleLoader(preferences, layoutPreferences, abbreviationRepository); @@ -63,7 +63,7 @@ public void getStylesWithEmptyExternal() { } @Test - public void addStyleLeadsToOneMoreStyle() throws URISyntaxException { + void addStyleLeadsToOneMoreStyle() throws URISyntaxException { preferences.setExternalStyles(Collections.emptyList()); loader = new StyleLoader(preferences, layoutPreferences, abbreviationRepository); @@ -74,7 +74,7 @@ public void addStyleLeadsToOneMoreStyle() throws URISyntaxException { } @Test - public void addInvalidStyleLeadsToNoMoreStyle() { + void addInvalidStyleLeadsToNoMoreStyle() { preferences.setExternalStyles(Collections.emptyList()); loader = new StyleLoader(preferences, layoutPreferences, abbreviationRepository); int beforeAdding = loader.getStyles().size(); @@ -83,7 +83,7 @@ public void addInvalidStyleLeadsToNoMoreStyle() { } @Test - public void initalizeWithOneExternalFile() throws URISyntaxException { + void initalizeWithOneExternalFile() throws URISyntaxException { String filename = Path.of(StyleLoader.class.getResource(StyleLoader.DEFAULT_AUTHORYEAR_STYLE_PATH).toURI()) .toFile().getPath(); when(preferences.getExternalStyles()).thenReturn(FXCollections.singletonObservableList(filename)); @@ -92,7 +92,7 @@ public void initalizeWithOneExternalFile() throws URISyntaxException { } @Test - public void initalizeWithIncorrectExternalFile() { + void initalizeWithIncorrectExternalFile() { preferences.setExternalStyles(Collections.singletonList("DefinitelyNotAValidFileNameOrWeAreExtremelyUnlucky")); loader = new StyleLoader(preferences, layoutPreferences, abbreviationRepository); @@ -100,7 +100,7 @@ public void initalizeWithIncorrectExternalFile() { } @Test - public void initalizeWithOneExternalFileRemoveStyle() throws URISyntaxException { + void initalizeWithOneExternalFileRemoveStyle() throws URISyntaxException { String filename = Path.of(StyleLoader.class.getResource(StyleLoader.DEFAULT_AUTHORYEAR_STYLE_PATH).toURI()) .toFile().getPath(); when(preferences.getExternalStyles()).thenReturn(FXCollections.singletonObservableList(filename)); @@ -121,7 +121,7 @@ public void initalizeWithOneExternalFileRemoveStyle() throws URISyntaxException } @Test - public void initalizeWithOneExternalFileRemoveStyleUpdatesPreferences() throws URISyntaxException { + void initalizeWithOneExternalFileRemoveStyleUpdatesPreferences() throws URISyntaxException { String filename = Path.of(StyleLoader.class.getResource(StyleLoader.DEFAULT_AUTHORYEAR_STYLE_PATH).toURI()) .toFile().getPath(); when(preferences.getExternalStyles()).thenReturn(FXCollections.singletonObservableList(filename)); @@ -142,7 +142,7 @@ public void initalizeWithOneExternalFileRemoveStyleUpdatesPreferences() throws U } @Test - public void addSameStyleTwiceLeadsToOneMoreStyle() throws URISyntaxException { + void addSameStyleTwiceLeadsToOneMoreStyle() throws URISyntaxException { preferences.setExternalStyles(Collections.emptyList()); loader = new StyleLoader(preferences, layoutPreferences, abbreviationRepository); int beforeAdding = loader.getStyles().size(); @@ -154,13 +154,13 @@ public void addSameStyleTwiceLeadsToOneMoreStyle() throws URISyntaxException { } @Test - public void addNullStyleThrowsNPE() { + void addNullStyleThrowsNPE() { loader = new StyleLoader(preferences, layoutPreferences, abbreviationRepository); assertThrows(NullPointerException.class, () -> loader.addStyleIfValid(null)); } @Test - public void getDefaultUsedStyleWhenEmpty() { + void getDefaultUsedStyleWhenEmpty() { when(preferences.getCurrentJStyle()).thenReturn(StyleLoader.DEFAULT_AUTHORYEAR_STYLE_PATH); preferences.clearCurrentJStyle(); loader = new StyleLoader(preferences, layoutPreferences, abbreviationRepository); @@ -171,7 +171,7 @@ public void getDefaultUsedStyleWhenEmpty() { } @Test - public void getStoredUsedStyle() { + void getStoredUsedStyle() { when(preferences.getCurrentJStyle()).thenReturn(StyleLoader.DEFAULT_NUMERICAL_STYLE_PATH); loader = new StyleLoader(preferences, layoutPreferences, abbreviationRepository); JStyle style = loader.getUsedJstyle(); @@ -181,7 +181,7 @@ public void getStoredUsedStyle() { } @Test - public void getDefaultUsedStyleWhenIncorrect() { + void getDefaultUsedStyleWhenIncorrect() { when(preferences.getCurrentJStyle()).thenReturn("ljlkjlkjnljnvdlsjniuhwelfhuewfhlkuewhfuwhelu"); loader = new StyleLoader(preferences, layoutPreferences, abbreviationRepository); JStyle style = loader.getUsedJstyle(); @@ -190,7 +190,7 @@ public void getDefaultUsedStyleWhenIncorrect() { } @Test - public void removeInternalStyleReturnsFalseAndDoNotRemove() { + void removeInternalStyleReturnsFalseAndDoNotRemove() { preferences.setExternalStyles(Collections.emptyList()); loader = new StyleLoader(preferences, layoutPreferences, abbreviationRepository); diff --git a/src/test/java/org/jabref/logic/pdf/EntryAnnotationImporterTest.java b/src/test/java/org/jabref/logic/pdf/EntryAnnotationImporterTest.java index d48982b4f53..eaef05673e7 100644 --- a/src/test/java/org/jabref/logic/pdf/EntryAnnotationImporterTest.java +++ b/src/test/java/org/jabref/logic/pdf/EntryAnnotationImporterTest.java @@ -19,19 +19,19 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class EntryAnnotationImporterTest { +class EntryAnnotationImporterTest { private final BibDatabaseContext databaseContext = mock(BibDatabaseContext.class); private BibEntry entry; @BeforeEach - public void setUp() { + void setUp() { entry = new BibEntry(); when(databaseContext.getFileDirectories(any())).thenReturn(Collections.singletonList(Path.of("src/test/resources/pdfs/"))); } @Test - public void readEntryExampleThesis() { + void readEntryExampleThesis() { // given entry.setField(StandardField.FILE, ":thesis-example.pdf:PDF"); EntryAnnotationImporter entryAnnotationImporter = new EntryAnnotationImporter(entry); diff --git a/src/test/java/org/jabref/logic/pdf/PdfAnnotationImporterTest.java b/src/test/java/org/jabref/logic/pdf/PdfAnnotationImporterTest.java index 7606bed8caf..df4d76b4195 100644 --- a/src/test/java/org/jabref/logic/pdf/PdfAnnotationImporterTest.java +++ b/src/test/java/org/jabref/logic/pdf/PdfAnnotationImporterTest.java @@ -12,47 +12,47 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class PdfAnnotationImporterTest { +class PdfAnnotationImporterTest { private final AnnotationImporter importer = new PdfAnnotationImporter(); @Test - public void invalidPath() { + void invalidPath() { assertEquals(Collections.emptyList(), importer.importAnnotations(Path.of("/asdf/does/not/exist.pdf"))); } @Test - public void invalidDirectory() { + void invalidDirectory() { assertEquals(Collections.emptyList(), importer.importAnnotations(Path.of("src/test/resources/pdfs"))); } @Test - public void invalidDocumentType() { + void invalidDocumentType() { assertEquals(Collections.emptyList(), importer.importAnnotations(Path.of("src/test/resources/pdfs/write-protected.docx"))); } @Test - public void noAnnotationsWriteProtected() { + void noAnnotationsWriteProtected() { assertEquals(Collections.emptyList(), importer.importAnnotations(Path.of("src/test/resources/pdfs/write-protected.pdf"))); } @Test - public void noAnnotationsEncrypted() { + void noAnnotationsEncrypted() { assertEquals(Collections.emptyList(), importer.importAnnotations(Path.of("src/test/resources/pdfs/encrypted.pdf"))); } @Test - public void twoAnnotationsThesisExample() { + void twoAnnotationsThesisExample() { assertEquals(2, importer.importAnnotations(Path.of("src/test/resources/pdfs/thesis-example.pdf")).size()); } @Test - public void noAnnotationsMinimal() { + void noAnnotationsMinimal() { assertEquals(Collections.emptyList(), importer.importAnnotations(Path.of("src/test/resources/pdfs/minimal.pdf"))); } @Test - public void inlineNoteMinimal() { + void inlineNoteMinimal() { final FileAnnotation expected = new FileAnnotation("Linus Dietz", LocalDateTime.of(2017, 3, 12, 20, 25), 1, "inline note annotation", FileAnnotationType.FREETEXT, Optional.empty()); @@ -61,7 +61,7 @@ public void inlineNoteMinimal() { } @Test - public void popupNoteMinimal() { + void popupNoteMinimal() { final FileAnnotation expected = new FileAnnotation("Linus Dietz", LocalDateTime.of(2017, 3, 12, 20, 17, 24), 1, "A simple pop-up note", FileAnnotationType.TEXT, Optional.empty()); @@ -70,7 +70,7 @@ public void popupNoteMinimal() { } @Test - public void highlightMinimalFoxit() { + void highlightMinimalFoxit() { final FileAnnotation expectedLinkedAnnotation = new FileAnnotation("lynyus", LocalDateTime.of(2017, 5, 31, 15, 16, 1), 1, "this is a foxit highlight", FileAnnotationType.HIGHLIGHT, Optional.empty()); final FileAnnotation expected = new FileAnnotation("lynyus", LocalDateTime.of(2017, 5, 31, 15, 16, 1), 1, @@ -80,7 +80,7 @@ public void highlightMinimalFoxit() { } @Test - public void highlightNoNoteMinimal() { + void highlightNoNoteMinimal() { final FileAnnotation expectedLinkedAnnotation = new FileAnnotation("Linus Dietz", LocalDateTime.of(2017, 3, 12, 20, 28, 39), 1, "", FileAnnotationType.HIGHLIGHT, Optional.empty()); final FileAnnotation expected = new FileAnnotation("Linus Dietz", LocalDateTime.of(2017, 3, 12, 20, 28, 39), 1, @@ -91,7 +91,7 @@ public void highlightNoNoteMinimal() { } @Test - public void squigglyWithNoteMinimal() { + void squigglyWithNoteMinimal() { final FileAnnotation expectedLinkedAnnotation = new FileAnnotation("lynyus", LocalDateTime.of(2017, 6, 1, 2, 40, 25), 1, "Squiggly note", FileAnnotationType.SQUIGGLY, Optional.empty()); final FileAnnotation expected = new FileAnnotation("lynyus", LocalDateTime.of(2017, 6, 1, 2, 40, 25), 1, @@ -102,7 +102,7 @@ public void squigglyWithNoteMinimal() { } @Test - public void strikeoutWithNoteMinimal() { + void strikeoutWithNoteMinimal() { final FileAnnotation expectedLinkedAnnotation = new FileAnnotation("lynyus", LocalDateTime.of(2017, 6, 1, 13, 2, 3), 1, "striked out", FileAnnotationType.STRIKEOUT, Optional.empty()); final FileAnnotation expected = new FileAnnotation("lynyus", LocalDateTime.of(2017, 6, 1, 13, 2, 3), 1, @@ -113,7 +113,7 @@ public void strikeoutWithNoteMinimal() { } @Test - public void highlightWithNoteMinimal() { + void highlightWithNoteMinimal() { final FileAnnotation expectedLinkedAnnotation = new FileAnnotation("Linus Dietz", LocalDateTime.of(2017, 3, 12, 20, 32, 2), 1, "linked note to highlight", FileAnnotationType.HIGHLIGHT, Optional.empty()); final FileAnnotation expected = new FileAnnotation("Linus Dietz", LocalDateTime.of(2017, 3, 12, 20, 32, 2), 1, @@ -124,7 +124,7 @@ public void highlightWithNoteMinimal() { } @Test - public void underlineWithNoteMinimal() { + void underlineWithNoteMinimal() { final FileAnnotation expectedLinkedAnnotation = new FileAnnotation("Linus Dietz", LocalDateTime.of(2017, 3, 12, 20, 36, 9), 1, "underlined", FileAnnotationType.UNDERLINE, Optional.empty()); final FileAnnotation expected = new FileAnnotation("Linus Dietz", LocalDateTime.of(2017, 3, 12, 20, 36, 9), 1, @@ -135,7 +135,7 @@ public void underlineWithNoteMinimal() { } @Test - public void polygonNoNoteMinimal() { + void polygonNoNoteMinimal() { final FileAnnotation expected = new FileAnnotation("Linus Dietz", LocalDateTime.of(2017, 3, 16, 9, 21, 1), 1, "polygon annotation", FileAnnotationType.POLYGON, Optional.empty()); diff --git a/src/test/java/org/jabref/logic/pdf/search/DocumentReaderTest.java b/src/test/java/org/jabref/logic/pdf/search/DocumentReaderTest.java index 135944c722c..14acedd607a 100644 --- a/src/test/java/org/jabref/logic/pdf/search/DocumentReaderTest.java +++ b/src/test/java/org/jabref/logic/pdf/search/DocumentReaderTest.java @@ -23,13 +23,13 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class DocumentReaderTest { +class DocumentReaderTest { private BibDatabaseContext databaseContext; private FilePreferences filePreferences; @BeforeEach - public void setup() { + void setup() { this.databaseContext = mock(BibDatabaseContext.class); when(databaseContext.getFileDirectories(Mockito.any())).thenReturn(Collections.singletonList(Path.of("src/test/resources/pdfs"))); this.filePreferences = mock(FilePreferences.class); @@ -39,7 +39,7 @@ public void setup() { } @Test - public void unknownFileTestShouldReturnEmptyList() { + void unknownFileTestShouldReturnEmptyList() { // given BibEntry entry = new BibEntry(); entry.setFiles(Collections.singletonList(new LinkedFile("Wrong path", "NOT_PRESENT.pdf", "Type"))); @@ -62,7 +62,7 @@ private static Stream getLinesToMerge() { @ParameterizedTest @MethodSource("getLinesToMerge") - public void mergeLinesTest(String expected, String linesToMerge) { + void mergeLinesTest(String expected, String linesToMerge) { String result = DocumentReader.mergeLines(linesToMerge); assertEquals(expected, result); } diff --git a/src/test/java/org/jabref/logic/pdf/search/PdfIndexerTest.java b/src/test/java/org/jabref/logic/pdf/search/PdfIndexerTest.java index 187f01ce656..e05d91ac104 100644 --- a/src/test/java/org/jabref/logic/pdf/search/PdfIndexerTest.java +++ b/src/test/java/org/jabref/logic/pdf/search/PdfIndexerTest.java @@ -25,14 +25,14 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class PdfIndexerTest { +class PdfIndexerTest { private PdfIndexer indexer; private BibDatabase database; private BibDatabaseContext context = mock(BibDatabaseContext.class); @BeforeEach - public void setUp(@TempDir Path indexDir) throws IOException { + void setUp(@TempDir Path indexDir) throws IOException { FilePreferences filePreferences = mock(FilePreferences.class); this.database = new BibDatabase(); @@ -46,7 +46,7 @@ public void setUp(@TempDir Path indexDir) throws IOException { } @Test - public void exampleThesisIndex() throws IOException { + void exampleThesisIndex() throws IOException { // given BibEntry entry = new BibEntry(StandardEntryType.PhdThesis); entry.setFiles(Collections.singletonList(new LinkedFile("Example Thesis", "thesis-example.pdf", StandardFileType.PDF.getName()))); @@ -62,7 +62,7 @@ public void exampleThesisIndex() throws IOException { } @Test - public void doNotIndexNonPdf() throws IOException { + void doNotIndexNonPdf() throws IOException { // given BibEntry entry = new BibEntry(StandardEntryType.PhdThesis) .withFiles(Collections.singletonList(new LinkedFile("Example Thesis", "thesis-example.aux", StandardFileType.AUX.getName()))); @@ -78,7 +78,7 @@ public void doNotIndexNonPdf() throws IOException { } @Test - public void dontIndexOnlineLinks() throws IOException { + void dontIndexOnlineLinks() throws IOException { // given BibEntry entry = new BibEntry(StandardEntryType.PhdThesis); entry.setFiles(Collections.singletonList(new LinkedFile("Example Thesis", "https://raw.githubusercontent.com/JabRef/jabref/main/src/test/resources/pdfs/thesis-example.pdf", StandardFileType.PDF.getName()))); @@ -94,7 +94,7 @@ public void dontIndexOnlineLinks() throws IOException { } @Test - public void exampleThesisIndexWithKey() throws IOException { + void exampleThesisIndexWithKey() throws IOException { // given BibEntry entry = new BibEntry(StandardEntryType.PhdThesis); entry.setCitationKey("Example2017"); @@ -111,7 +111,7 @@ public void exampleThesisIndexWithKey() throws IOException { } @Test - public void metaDataIndex() throws IOException { + void metaDataIndex() throws IOException { // given BibEntry entry = new BibEntry(StandardEntryType.Article); entry.setFiles(Collections.singletonList(new LinkedFile("Example Thesis", "metaData.pdf", StandardFileType.PDF.getName()))); @@ -128,7 +128,7 @@ public void metaDataIndex() throws IOException { } @Test - public void exampleThesisIndexAppendMetaData() throws IOException { + void exampleThesisIndexAppendMetaData() throws IOException { // given BibEntry exampleThesis = new BibEntry(StandardEntryType.PhdThesis); exampleThesis.setCitationKey("ExampleThesis2017"); diff --git a/src/test/java/org/jabref/logic/pdf/search/PdfSearcherTest.java b/src/test/java/org/jabref/logic/pdf/search/PdfSearcherTest.java index 721724b9a00..3428074c192 100644 --- a/src/test/java/org/jabref/logic/pdf/search/PdfSearcherTest.java +++ b/src/test/java/org/jabref/logic/pdf/search/PdfSearcherTest.java @@ -26,12 +26,12 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class PdfSearcherTest { +class PdfSearcherTest { private PdfSearcher search; @BeforeEach - public void setUp(@TempDir Path indexDir) throws IOException { + void setUp(@TempDir Path indexDir) throws IOException { FilePreferences filePreferences = mock(FilePreferences.class); BibDatabase database = new BibDatabase(); @@ -63,13 +63,13 @@ public void setUp(@TempDir Path indexDir) throws IOException { } @Test - public void searchForTest() throws IOException, ParseException { + void searchForTest() throws IOException, ParseException { PdfSearchResults result = search.search("test", 10); assertEquals(10, result.numSearchResults()); } @Test - public void searchForUniversity() throws IOException, ParseException { + void searchForUniversity() throws IOException, ParseException { PdfSearchResults result = search.search("University", 10); assertEquals(2, result.numSearchResults()); List searchResults = result.getSearchResults(); @@ -78,36 +78,36 @@ public void searchForUniversity() throws IOException, ParseException { } @Test - public void searchForStopWord() throws IOException, ParseException { + void searchForStopWord() throws IOException, ParseException { PdfSearchResults result = search.search("and", 10); assertEquals(0, result.numSearchResults()); } @Test - public void searchForSecond() throws IOException, ParseException { + void searchForSecond() throws IOException, ParseException { PdfSearchResults result = search.search("second", 10); assertEquals(4, result.numSearchResults()); } @Test - public void searchForAnnotation() throws IOException, ParseException { + void searchForAnnotation() throws IOException, ParseException { PdfSearchResults result = search.search("annotation", 10); assertEquals(2, result.numSearchResults()); } @Test - public void searchForEmptyString() throws IOException { + void searchForEmptyString() throws IOException { PdfSearchResults result = search.search("", 10); assertEquals(0, result.numSearchResults()); } @Test - public void searchWithNullString() throws IOException { + void searchWithNullString() throws IOException { assertThrows(NullPointerException.class, () -> search.search(null, 10)); } @Test - public void searchForZeroResults() throws IOException { + void searchForZeroResults() throws IOException { assertThrows(IllegalArgumentException.class, () -> search.search("test", 0)); } } diff --git a/src/test/java/org/jabref/logic/protectedterms/ProtectedTermsListTest.java b/src/test/java/org/jabref/logic/protectedterms/ProtectedTermsListTest.java index 1637ae4e874..0e256ee25c5 100644 --- a/src/test/java/org/jabref/logic/protectedterms/ProtectedTermsListTest.java +++ b/src/test/java/org/jabref/logic/protectedterms/ProtectedTermsListTest.java @@ -14,13 +14,13 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class ProtectedTermsListTest { +class ProtectedTermsListTest { private ProtectedTermsList internalList; private ProtectedTermsList externalList; @BeforeEach - public void setUp(@TempDir Path temporaryFolder) throws IOException { + void setUp(@TempDir Path temporaryFolder) throws IOException { Path path = temporaryFolder.resolve("ThisIsARandomlyNamedFile"); Files.createFile(path); String tempFileName = path.toString(); @@ -30,70 +30,70 @@ public void setUp(@TempDir Path temporaryFolder) throws IOException { } @Test - public void protectedTermsListStringListOfStringStringBoolean() { + void protectedTermsListStringListOfStringStringBoolean() { assertTrue(internalList.isInternalList()); } @Test - public void protectedTermsListStringListOfStringString() { + void protectedTermsListStringListOfStringString() { assertFalse(externalList.isInternalList()); } @Test - public void getDescription() { + void getDescription() { assertEquals("Name", internalList.getDescription()); } @Test - public void getTermList() { + void getTermList() { assertEquals(Arrays.asList("AAA", "BBB"), internalList.getTermList()); } @Test - public void getLocation() { + void getLocation() { assertEquals("location", internalList.getLocation()); } @Test - public void getTermListing() { + void getTermListing() { assertEquals("AAA\nBBB", internalList.getTermListing()); } @Test - public void compareTo() { + void compareTo() { assertEquals(-2, internalList.compareTo(externalList)); } @Test - public void setEnabledIsEnabled() { + void setEnabledIsEnabled() { assertFalse(internalList.isEnabled()); internalList.setEnabled(true); assertTrue(internalList.isEnabled()); } @Test - public void notEnabledByDefault() { + void notEnabledByDefault() { assertFalse(internalList.isEnabled()); } @Test - public void canNotAddTermToInternalList() { + void canNotAddTermToInternalList() { assertFalse(internalList.addProtectedTerm("CCC")); } @Test - public void termNotAddedToInternalList() { + void termNotAddedToInternalList() { internalList.addProtectedTerm("CCC"); assertFalse(internalList.getTermList().contains("CCC")); } @Test - public void canAddTermToExternalList() { + void canAddTermToExternalList() { assertTrue(externalList.addProtectedTerm("CCC")); } @Test - public void termAddedToExternalList() { + void termAddedToExternalList() { externalList.addProtectedTerm("CCC"); assertTrue(externalList.getTermList().contains("CCC")); } diff --git a/src/test/java/org/jabref/logic/pseudonymization/PseudonymizationTest.java b/src/test/java/org/jabref/logic/pseudonymization/PseudonymizationTest.java index 14afeb499ac..0f2fb51decf 100644 --- a/src/test/java/org/jabref/logic/pseudonymization/PseudonymizationTest.java +++ b/src/test/java/org/jabref/logic/pseudonymization/PseudonymizationTest.java @@ -46,7 +46,7 @@ class PseudonymizationTest { private BibEntryTypesManager entryTypesManager; @BeforeEach - public void setUp() { + void setUp() { importer = new BibtexImporter(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS), new DummyFileUpdateMonitor()); stringWriter = new StringWriter(); diff --git a/src/test/java/org/jabref/logic/remote/RemotePreferencesTest.java b/src/test/java/org/jabref/logic/remote/RemotePreferencesTest.java index 079c09eb79a..29d092cebcd 100644 --- a/src/test/java/org/jabref/logic/remote/RemotePreferencesTest.java +++ b/src/test/java/org/jabref/logic/remote/RemotePreferencesTest.java @@ -7,44 +7,44 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class RemotePreferencesTest { +class RemotePreferencesTest { private RemotePreferences preferences; @BeforeEach - public void setUp() { + void setUp() { preferences = new RemotePreferences(1000, true); } @Test - public void getPort() { + void getPort() { assertEquals(1000, preferences.getPort()); } @Test - public void setPort() { + void setPort() { preferences.setPort(2000); assertEquals(2000, preferences.getPort()); } @Test - public void useRemoteServer() { + void useRemoteServer() { assertTrue(preferences.useRemoteServer()); } @Test - public void setUseRemoteServer() { + void setUseRemoteServer() { preferences.setUseRemoteServer(false); assertFalse(preferences.useRemoteServer()); } @Test - public void isDifferentPortTrue() { + void isDifferentPortTrue() { assertTrue(preferences.isDifferentPort(2000)); } @Test - public void isDifferentPortFalse() { + void isDifferentPortFalse() { assertFalse(preferences.isDifferentPort(1000)); } } diff --git a/src/test/java/org/jabref/logic/remote/RemoteUtilTest.java b/src/test/java/org/jabref/logic/remote/RemoteUtilTest.java index 963d2755e47..0a3b8c0b145 100644 --- a/src/test/java/org/jabref/logic/remote/RemoteUtilTest.java +++ b/src/test/java/org/jabref/logic/remote/RemoteUtilTest.java @@ -5,27 +5,27 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class RemoteUtilTest { +class RemoteUtilTest { @Test - public void rejectPortNumberBelowZero() { + void rejectPortNumberBelowZero() { assertFalse(RemoteUtil.isUserPort(-55), "Port number must be non negative."); } @Test - public void rejectReservedSystemPorts() { + void rejectReservedSystemPorts() { assertFalse(RemoteUtil.isUserPort(0), "Port number must be outside reserved system range (0-1023)."); assertFalse(RemoteUtil.isUserPort(1023), "Port number must be outside reserved system range (0-1023)."); } @Test - public void rejectPortsAbove16Bits() { + void rejectPortsAbove16Bits() { // 2 ^ 16 - 1 => 65535 assertFalse(RemoteUtil.isUserPort(65536), "Port number should be below 65535."); } @Test - public void acceptPortsAboveSystemPorts() { + void acceptPortsAboveSystemPorts() { // ports 1024 -> 65535 assertTrue(RemoteUtil.isUserPort(1024), "Port number in between 1024 and 65535 should be valid."); assertTrue(RemoteUtil.isUserPort(65535), "Port number in between 1024 and 65535 should be valid."); diff --git a/src/test/java/org/jabref/logic/search/DatabaseSearcherTest.java b/src/test/java/org/jabref/logic/search/DatabaseSearcherTest.java index 4c5856c15b4..a589f6fee62 100644 --- a/src/test/java/org/jabref/logic/search/DatabaseSearcherTest.java +++ b/src/test/java/org/jabref/logic/search/DatabaseSearcherTest.java @@ -22,31 +22,31 @@ public class DatabaseSearcherTest { private BibDatabase database; @BeforeEach - public void setUp() { + void setUp() { database = new BibDatabase(); } @Test - public void noMatchesFromEmptyDatabase() { + void noMatchesFromEmptyDatabase() { List matches = new DatabaseSearcher(new SearchQuery("whatever", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE, SearchRules.SearchFlags.REGULAR_EXPRESSION)), database).getMatches(); assertEquals(Collections.emptyList(), matches); } @Test - public void noMatchesFromEmptyDatabaseWithInvalidSearchExpression() { + void noMatchesFromEmptyDatabaseWithInvalidSearchExpression() { List matches = new DatabaseSearcher(INVALID_SEARCH_QUERY, database).getMatches(); assertEquals(Collections.emptyList(), matches); } @Test - public void getDatabaseFromMatchesDatabaseWithEmptyEntries() { + void getDatabaseFromMatchesDatabaseWithEmptyEntries() { database.insertEntry(new BibEntry()); List matches = new DatabaseSearcher(new SearchQuery("whatever", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE, SearchRules.SearchFlags.REGULAR_EXPRESSION)), database).getMatches(); assertEquals(Collections.emptyList(), matches); } @Test - public void noMatchesFromDatabaseWithArticleTypeEntry() { + void noMatchesFromDatabaseWithArticleTypeEntry() { BibEntry entry = new BibEntry(StandardEntryType.Article); entry.setField(StandardField.AUTHOR, "harrer"); database.insertEntry(entry); @@ -55,7 +55,7 @@ public void noMatchesFromDatabaseWithArticleTypeEntry() { } @Test - public void correctMatchFromDatabaseWithArticleTypeEntry() { + void correctMatchFromDatabaseWithArticleTypeEntry() { BibEntry entry = new BibEntry(StandardEntryType.Article); entry.setField(StandardField.AUTHOR, "harrer"); database.insertEntry(entry); @@ -64,14 +64,14 @@ public void correctMatchFromDatabaseWithArticleTypeEntry() { } @Test - public void noMatchesFromEmptyDatabaseWithInvalidQuery() { + void noMatchesFromEmptyDatabaseWithInvalidQuery() { SearchQuery query = new SearchQuery("asdf[", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE, SearchRules.SearchFlags.REGULAR_EXPRESSION)); DatabaseSearcher databaseSearcher = new DatabaseSearcher(query, database); assertEquals(Collections.emptyList(), databaseSearcher.getMatches()); } @Test - public void correctMatchFromDatabaseWithIncollectionTypeEntry() { + void correctMatchFromDatabaseWithIncollectionTypeEntry() { BibEntry entry = new BibEntry(StandardEntryType.InCollection); entry.setField(StandardField.AUTHOR, "tonho"); database.insertEntry(entry); @@ -83,7 +83,7 @@ public void correctMatchFromDatabaseWithIncollectionTypeEntry() { } @Test - public void noMatchesFromDatabaseWithTwoEntries() { + void noMatchesFromDatabaseWithTwoEntries() { BibEntry entry = new BibEntry(); database.insertEntry(entry); @@ -98,7 +98,7 @@ public void noMatchesFromDatabaseWithTwoEntries() { } @Test - public void noMatchesFromDabaseWithIncollectionTypeEntry() { + void noMatchesFromDabaseWithIncollectionTypeEntry() { BibEntry entry = new BibEntry(StandardEntryType.InCollection); entry.setField(StandardField.AUTHOR, "tonho"); database.insertEntry(entry); @@ -110,7 +110,7 @@ public void noMatchesFromDabaseWithIncollectionTypeEntry() { } @Test - public void noMatchFromDatabaseWithEmptyEntry() { + void noMatchFromDatabaseWithEmptyEntry() { BibEntry entry = new BibEntry(); database.insertEntry(entry); diff --git a/src/test/java/org/jabref/logic/search/DatabaseSearcherWithBibFilesTest.java b/src/test/java/org/jabref/logic/search/DatabaseSearcherWithBibFilesTest.java index 0a2b3f1f746..4151adaec52 100644 --- a/src/test/java/org/jabref/logic/search/DatabaseSearcherWithBibFilesTest.java +++ b/src/test/java/org/jabref/logic/search/DatabaseSearcherWithBibFilesTest.java @@ -38,7 +38,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class DatabaseSearcherWithBibFilesTest { +class DatabaseSearcherWithBibFilesTest { private static BibEntry titleSentenceCased = new BibEntry(StandardEntryType.Misc) .withCitationKey("title-sentence-cased") @@ -109,7 +109,7 @@ private BibDatabase initializeDatabaseFromPath(Path testFile) throws Exception { } @AfterEach - public void tearDown() throws Exception { + void tearDown() throws Exception { pdfIndexer.close(); } @@ -166,7 +166,7 @@ private static Stream searchLibrary() { @ParameterizedTest(name = "{index} => query={2}, searchFlags={3}, testFile={1}, expected={0}") @MethodSource - public void searchLibrary(List expected, String testFile, String query, EnumSet searchFlags) throws Exception { + void searchLibrary(List expected, String testFile, String query, EnumSet searchFlags) throws Exception { BibDatabase database = initializeDatabaseFromPath(testFile); List matches = new DatabaseSearcher(new SearchQuery(query, searchFlags), database).getMatches(); assertEquals(expected, matches); diff --git a/src/test/java/org/jabref/logic/search/SearchQueryTest.java b/src/test/java/org/jabref/logic/search/SearchQueryTest.java index 3461ebc76b8..2827ae729d4 100644 --- a/src/test/java/org/jabref/logic/search/SearchQueryTest.java +++ b/src/test/java/org/jabref/logic/search/SearchQueryTest.java @@ -16,30 +16,30 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class SearchQueryTest { +class SearchQueryTest { @Test - public void testToString() { + void testToString() { assertEquals("\"asdf\" (case sensitive, regular expression) [CASE_SENSITIVE, REGULAR_EXPRESSION]", new SearchQuery("asdf", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE, SearchRules.SearchFlags.REGULAR_EXPRESSION)).toString()); assertEquals("\"asdf\" (case insensitive, plain text) []", new SearchQuery("asdf", EnumSet.noneOf(SearchFlags.class)).toString()); } @Test - public void isContainsBasedSearch() { + void isContainsBasedSearch() { assertTrue(new SearchQuery("asdf", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE)).isContainsBasedSearch()); assertTrue(new SearchQuery("asdf", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE, SearchRules.SearchFlags.REGULAR_EXPRESSION)).isContainsBasedSearch()); assertFalse(new SearchQuery("author=asdf", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE)).isContainsBasedSearch()); } @Test - public void isGrammarBasedSearch() { + void isGrammarBasedSearch() { assertFalse(new SearchQuery("asdf", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE)).isGrammarBasedSearch()); assertFalse(new SearchQuery("asdf", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE, SearchRules.SearchFlags.REGULAR_EXPRESSION)).isGrammarBasedSearch()); assertTrue(new SearchQuery("author=asdf", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE)).isGrammarBasedSearch()); } @Test - public void grammarSearch() { + void grammarSearch() { BibEntry entry = new BibEntry(); entry.addKeyword("one two", ','); SearchQuery searchQuery = new SearchQuery("keywords=\"one two\"", EnumSet.noneOf(SearchFlags.class)); @@ -47,7 +47,7 @@ public void grammarSearch() { } @Test - public void grammarSearchFullEntryLastCharMissing() { + void grammarSearchFullEntryLastCharMissing() { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "systematic revie"); SearchQuery searchQuery = new SearchQuery("title=\"systematic review\"", EnumSet.noneOf(SearchFlags.class)); @@ -55,7 +55,7 @@ public void grammarSearchFullEntryLastCharMissing() { } @Test - public void grammarSearchFullEntry() { + void grammarSearchFullEntry() { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "systematic review"); SearchQuery searchQuery = new SearchQuery("title=\"systematic review\"", EnumSet.noneOf(SearchFlags.class)); @@ -63,7 +63,7 @@ public void grammarSearchFullEntry() { } @Test - public void searchingForOpenBraketInBooktitle() { + void searchingForOpenBraketInBooktitle() { BibEntry e = new BibEntry(StandardEntryType.InProceedings); e.setField(StandardField.BOOKTITLE, "Super Conference (SC)"); @@ -72,7 +72,7 @@ public void searchingForOpenBraketInBooktitle() { } @Test - public void searchMatchesSingleKeywordNotPart() { + void searchMatchesSingleKeywordNotPart() { BibEntry e = new BibEntry(StandardEntryType.InProceedings); e.setField(StandardField.KEYWORDS, "banana, pineapple, orange"); @@ -81,7 +81,7 @@ public void searchMatchesSingleKeywordNotPart() { } @Test - public void searchMatchesSingleKeyword() { + void searchMatchesSingleKeyword() { BibEntry e = new BibEntry(StandardEntryType.InProceedings); e.setField(StandardField.KEYWORDS, "banana, pineapple, orange"); @@ -90,7 +90,7 @@ public void searchMatchesSingleKeyword() { } @Test - public void searchAllFields() { + void searchAllFields() { BibEntry e = new BibEntry(StandardEntryType.InProceedings); e.setField(StandardField.TITLE, "Fruity features"); e.setField(StandardField.KEYWORDS, "banana, pineapple, orange"); @@ -100,7 +100,7 @@ public void searchAllFields() { } @Test - public void searchAllFieldsNotForSpecificField() { + void searchAllFieldsNotForSpecificField() { BibEntry e = new BibEntry(StandardEntryType.InProceedings); e.setField(StandardField.TITLE, "Fruity features"); e.setField(StandardField.KEYWORDS, "banana, pineapple, orange"); @@ -110,7 +110,7 @@ public void searchAllFieldsNotForSpecificField() { } @Test - public void searchAllFieldsAndSpecificField() { + void searchAllFieldsAndSpecificField() { BibEntry e = new BibEntry(StandardEntryType.InProceedings); e.setField(StandardField.TITLE, "Fruity features"); e.setField(StandardField.KEYWORDS, "banana, pineapple, orange"); @@ -120,7 +120,7 @@ public void searchAllFieldsAndSpecificField() { } @Test - public void isMatch() { + void isMatch() { BibEntry entry = new BibEntry(); entry.setType(StandardEntryType.Article); entry.setField(StandardField.AUTHOR, "asdf"); @@ -131,57 +131,57 @@ public void isMatch() { } @Test - public void isValidQueryNotAsRegEx() { + void isValidQueryNotAsRegEx() { assertTrue(new SearchQuery("asdf", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE)).isValid()); } @Test - public void isValidQueryContainsBracketNotAsRegEx() { + void isValidQueryContainsBracketNotAsRegEx() { assertTrue(new SearchQuery("asdf[", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE)).isValid()); } @Test - public void isNotValidQueryContainsBracketNotAsRegEx() { + void isNotValidQueryContainsBracketNotAsRegEx() { assertTrue(new SearchQuery("asdf[", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE, SearchRules.SearchFlags.REGULAR_EXPRESSION)).isValid()); } @Test - public void isValidQueryAsRegEx() { + void isValidQueryAsRegEx() { assertTrue(new SearchQuery("asdf", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE, SearchRules.SearchFlags.REGULAR_EXPRESSION)).isValid()); } @Test - public void isValidQueryWithNumbersAsRegEx() { + void isValidQueryWithNumbersAsRegEx() { assertTrue(new SearchQuery("123", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE, SearchRules.SearchFlags.REGULAR_EXPRESSION)).isValid()); } @Test - public void isValidQueryContainsBracketAsRegEx() { + void isValidQueryContainsBracketAsRegEx() { assertTrue(new SearchQuery("asdf[", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE, SearchRules.SearchFlags.REGULAR_EXPRESSION)).isValid()); } @Test - public void isValidQueryWithEqualSignAsRegEx() { + void isValidQueryWithEqualSignAsRegEx() { assertTrue(new SearchQuery("author=asdf", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE, SearchRules.SearchFlags.REGULAR_EXPRESSION)).isValid()); } @Test - public void isValidQueryWithNumbersAndEqualSignAsRegEx() { + void isValidQueryWithNumbersAndEqualSignAsRegEx() { assertTrue(new SearchQuery("author=123", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE, SearchRules.SearchFlags.REGULAR_EXPRESSION)).isValid()); } @Test - public void isValidQueryWithEqualSignNotAsRegEx() { + void isValidQueryWithEqualSignNotAsRegEx() { assertTrue(new SearchQuery("author=asdf", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE)).isValid()); } @Test - public void isValidQueryWithNumbersAndEqualSignNotAsRegEx() { + void isValidQueryWithNumbersAndEqualSignNotAsRegEx() { assertTrue(new SearchQuery("author=123", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE)).isValid()); } @Test - public void isMatchedForNormalAndFieldBasedSearchMixed() { + void isMatchedForNormalAndFieldBasedSearchMixed() { BibEntry entry = new BibEntry(); entry.setType(StandardEntryType.Article); entry.setField(StandardField.AUTHOR, "asdf"); @@ -191,7 +191,7 @@ public void isMatchedForNormalAndFieldBasedSearchMixed() { } @Test - public void simpleTerm() { + void simpleTerm() { String query = "progress"; SearchQuery result = new SearchQuery(query, EnumSet.noneOf(SearchFlags.class)); @@ -199,7 +199,7 @@ public void simpleTerm() { } @Test - public void getPattern() { + void getPattern() { String query = "progress"; SearchQuery result = new SearchQuery(query, EnumSet.noneOf(SearchFlags.class)); Pattern pattern = Pattern.compile("(\\Qprogress\\E)"); @@ -208,7 +208,7 @@ public void getPattern() { } @Test - public void getRegexpPattern() { + void getRegexpPattern() { String queryText = "[a-c]\\d* \\d*"; SearchQuery regexQuery = new SearchQuery(queryText, EnumSet.of(SearchRules.SearchFlags.REGULAR_EXPRESSION)); Pattern pattern = Pattern.compile("([a-c]\\d* \\d*)"); @@ -216,7 +216,7 @@ public void getRegexpPattern() { } @Test - public void getRegexpJavascriptPattern() { + void getRegexpJavascriptPattern() { String queryText = "[a-c]\\d* \\d*"; SearchQuery regexQuery = new SearchQuery(queryText, EnumSet.of(SearchRules.SearchFlags.REGULAR_EXPRESSION)); Pattern pattern = Pattern.compile("([a-c]\\d* \\d*)"); @@ -224,7 +224,7 @@ public void getRegexpJavascriptPattern() { } @Test - public void escapingInPattern() { + void escapingInPattern() { // first word contain all java special regex characters String queryText = "<([{\\\\^-=$!|]})?*+.> word1 word2."; SearchQuery textQueryWithSpecialChars = new SearchQuery(queryText, EnumSet.noneOf(SearchFlags.class)); @@ -233,7 +233,7 @@ public void escapingInPattern() { } @Test - public void escapingInJavascriptPattern() { + void escapingInJavascriptPattern() { // first word contain all javascript special regex characters that should be escaped individually in text based search String queryText = "([{\\\\^$|]})?*+./ word1 word2."; SearchQuery textQueryWithSpecialChars = new SearchQuery(queryText, EnumSet.noneOf(SearchFlags.class)); diff --git a/src/test/java/org/jabref/logic/shared/DBMSConnectionTest.java b/src/test/java/org/jabref/logic/shared/DBMSConnectionTest.java index 208efc65334..717403a9960 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSConnectionTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSConnectionTest.java @@ -10,11 +10,11 @@ import static org.junit.jupiter.api.Assertions.assertThrows; @DatabaseTest -public class DBMSConnectionTest { +class DBMSConnectionTest { @ParameterizedTest @EnumSource(DBMSType.class) - public void getConnectionFailsWhenconnectingToInvalidHost(DBMSType dbmsType) { + void getConnectionFailsWhenconnectingToInvalidHost(DBMSType dbmsType) { assertThrows(SQLException.class, () -> new DBMSConnection( new DBMSConnectionPropertiesBuilder() diff --git a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java b/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java index db423c31de9..8f0b4625daa 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java @@ -20,12 +20,12 @@ import org.jabref.testutils.category.DatabaseTest; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.parallel.Execution; import org.junit.jupiter.api.parallel.ExecutionMode; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -41,7 +41,7 @@ class DBMSProcessorTest { private DBMSType dbmsType; @BeforeEach - public void setup() throws Exception { + void setup() throws Exception { this.dbmsType = TestManager.getDBMSTypeTestParameter(); this.dbmsConnection = ConnectorTest.getTestDBMSConnection(dbmsType); this.dbmsProcessor = DBMSProcessor.getProcessorInstance(ConnectorTest.getTestDBMSConnection(dbmsType)); @@ -50,7 +50,7 @@ public void setup() throws Exception { } @AfterEach - public void closeDbmsConnection() throws SQLException { + void closeDbmsConnection() throws SQLException { this.dbmsConnection.getConnection().close(); } @@ -436,7 +436,7 @@ private ResultSet selectFrom(String table, DBMSConnection dbmsConnection, DBMSPr // Oracle does not support multiple tuple insertion in one INSERT INTO command. // Therefore this function was defined to improve the readability and to keep the code short. private void insertMetaData(String key, String value, DBMSConnection dbmsConnection, DBMSProcessor dbmsProcessor) { - Assertions.assertDoesNotThrow(() -> { + assertDoesNotThrow(() -> { dbmsConnection.getConnection().createStatement().executeUpdate("INSERT INTO " + escape_Table("METADATA", dbmsProcessor) + "(" + escape("KEY", dbmsProcessor) + ", " + escape("VALUE", dbmsProcessor) + ") VALUES(" + escapeValue(key) + ", " + escapeValue(value) + ")"); diff --git a/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java b/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java index 787c926b131..5983b345ade 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java @@ -38,7 +38,7 @@ @DatabaseTest @Execution(ExecutionMode.SAME_THREAD) -public class DBMSSynchronizerTest { +class DBMSSynchronizerTest { private DBMSSynchronizer dbmsSynchronizer; private BibDatabase bibDatabase; @@ -56,7 +56,7 @@ private BibEntry createExampleBibEntry(int index) { } @BeforeEach - public void setup() throws Exception { + void setup() throws Exception { this.dbmsType = TestManager.getDBMSTypeTestParameter(); this.dbmsConnection = ConnectorTest.getTestDBMSConnection(dbmsType); this.dbmsProcessor = DBMSProcessor.getProcessorInstance(this.dbmsConnection); @@ -76,12 +76,12 @@ public void setup() throws Exception { } @AfterEach - public void clear() { + void clear() { dbmsSynchronizer.closeSharedDatabase(); } @Test - public void entryAddedEventListener() throws Exception { + void entryAddedEventListener() throws Exception { BibEntry expectedEntry = createExampleBibEntry(1); BibEntry furtherEntry = createExampleBibEntry(1); @@ -95,7 +95,7 @@ public void entryAddedEventListener() throws Exception { } @Test - public void twoLocalFieldChangesAreSynchronizedCorrectly() throws Exception { + void twoLocalFieldChangesAreSynchronizedCorrectly() throws Exception { BibEntry expectedEntry = createExampleBibEntry(1); expectedEntry.registerListener(dbmsSynchronizer); @@ -108,7 +108,7 @@ public void twoLocalFieldChangesAreSynchronizedCorrectly() throws Exception { } @Test - public void oneLocalAndOneSharedFieldChangeIsSynchronizedCorrectly() throws Exception { + void oneLocalAndOneSharedFieldChangeIsSynchronizedCorrectly() throws Exception { BibEntry exampleBibEntry = createExampleBibEntry(1); exampleBibEntry.registerListener(dbmsSynchronizer); @@ -126,7 +126,7 @@ public void oneLocalAndOneSharedFieldChangeIsSynchronizedCorrectly() throws Exce } @Test - public void entriesRemovedEventListener() throws Exception { + void entriesRemovedEventListener() throws Exception { BibEntry bibEntry = createExampleBibEntry(1); bibDatabase.insertEntry(bibEntry); @@ -148,7 +148,7 @@ public void entriesRemovedEventListener() throws Exception { } @Test - public void metaDataChangedEventListener() throws Exception { + void metaDataChangedEventListener() throws Exception { MetaData testMetaData = new MetaData(); testMetaData.registerListener(dbmsSynchronizer); dbmsSynchronizer.setMetaData(testMetaData); @@ -162,7 +162,7 @@ public void metaDataChangedEventListener() throws Exception { } @Test - public void initializeDatabases() throws Exception { + void initializeDatabases() throws Exception { dbmsSynchronizer.initializeDatabases(); assertTrue(dbmsProcessor.checkBaseIntegrity()); dbmsSynchronizer.initializeDatabases(); @@ -170,7 +170,7 @@ public void initializeDatabases() throws Exception { } @Test - public void synchronizeLocalDatabaseWithEntryRemoval() throws Exception { + void synchronizeLocalDatabaseWithEntryRemoval() throws Exception { List expectedBibEntries = Arrays.asList(createExampleBibEntry(1), createExampleBibEntry(2)); dbmsProcessor.insertEntry(expectedBibEntries.getFirst()); @@ -192,7 +192,7 @@ public void synchronizeLocalDatabaseWithEntryRemoval() throws Exception { } @Test - public void synchronizeLocalDatabaseWithEntryUpdate() throws Exception { + void synchronizeLocalDatabaseWithEntryUpdate() throws Exception { BibEntry bibEntry = createExampleBibEntry(1); bibDatabase.insertEntry(bibEntry); assertEquals(List.of(bibEntry), bibDatabase.getEntries()); @@ -211,7 +211,7 @@ public void synchronizeLocalDatabaseWithEntryUpdate() throws Exception { } @Test - public void updateEntryDoesNotModifyLocalDatabase() throws Exception { + void updateEntryDoesNotModifyLocalDatabase() throws Exception { BibEntry bibEntry = createExampleBibEntry(1); bibDatabase.insertEntry(bibEntry); assertEquals(List.of(bibEntry), bibDatabase.getEntries()); @@ -228,7 +228,7 @@ public void updateEntryDoesNotModifyLocalDatabase() throws Exception { } @Test - public void applyMetaData() throws Exception { + void applyMetaData() throws Exception { BibEntry bibEntry = createExampleBibEntry(1); bibDatabase.insertEntry(bibEntry); diff --git a/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java b/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java index 9b087519da1..04abaf58939 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java +++ b/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java @@ -10,110 +10,110 @@ import static org.junit.jupiter.api.Assertions.assertFalse; @DatabaseTest -public class DBMSTypeTest { +class DBMSTypeTest { @Test - public void toStringCorrectForMysql() { + void toStringCorrectForMysql() { assertEquals("MySQL", DBMSType.MYSQL.toString()); } @Test - public void toStringCorrectForOracle() { + void toStringCorrectForOracle() { assertEquals("Oracle", DBMSType.ORACLE.toString()); } @Test - public void toStringCorrectForPostgres() { + void toStringCorrectForPostgres() { assertEquals("PostgreSQL", DBMSType.POSTGRESQL.toString()); } @Test - public void fromStringWorksForMySQL() { + void fromStringWorksForMySQL() { assertEquals(Optional.of(DBMSType.MYSQL), DBMSType.fromString("MySQL")); } @Test - public void fromStringWorksForPostgreSQL() { + void fromStringWorksForPostgreSQL() { assertEquals(Optional.of(DBMSType.POSTGRESQL), DBMSType.fromString("PostgreSQL")); } @Test - public void fromStringWorksForNullString() { + void fromStringWorksForNullString() { assertEquals(Optional.empty(), DBMSType.fromString(null)); } @Test - public void fromStringWorksForEmptyString() { + void fromStringWorksForEmptyString() { assertEquals(Optional.empty(), DBMSType.fromString("")); } @Test - public void fromStringWorksForUnkownString() { + void fromStringWorksForUnkownString() { assertEquals(Optional.empty(), DBMSType.fromString("unknown")); } @Test - public void driverClassForMysqlIsCorrect() { + void driverClassForMysqlIsCorrect() { assertEquals("org.mariadb.jdbc.Driver", DBMSType.MYSQL.getDriverClassPath()); } @Test - public void driverClassForOracleIsCorrect() { + void driverClassForOracleIsCorrect() { assertEquals("oracle.jdbc.driver.OracleDriver", DBMSType.ORACLE.getDriverClassPath()); } @Test - public void driverClassForPostgresIsCorrect() { + void driverClassForPostgresIsCorrect() { assertEquals("org.postgresql.Driver", DBMSType.POSTGRESQL.getDriverClassPath()); } @Test - public void fromStringForMysqlReturnsCorrectValue() { + void fromStringForMysqlReturnsCorrectValue() { assertEquals(DBMSType.MYSQL, DBMSType.fromString("MySQL").get()); } @Test - public void fromStringForOracleRturnsCorrectValue() { + void fromStringForOracleRturnsCorrectValue() { assertEquals(DBMSType.ORACLE, DBMSType.fromString("Oracle").get()); } @Test - public void fromStringForPostgresReturnsCorrectValue() { + void fromStringForPostgresReturnsCorrectValue() { assertEquals(DBMSType.POSTGRESQL, DBMSType.fromString("PostgreSQL").get()); } @Test - public void fromStringFromInvalidStringReturnsOptionalEmpty() { + void fromStringFromInvalidStringReturnsOptionalEmpty() { assertFalse(DBMSType.fromString("XXX").isPresent()); } @Test - public void getUrlForMysqlHasCorrectFormat() { + void getUrlForMysqlHasCorrectFormat() { assertEquals("jdbc:mariadb://localhost:3306/xe", DBMSType.MYSQL.getUrl("localhost", 3306, "xe")); } @Test - public void getUrlForOracleHasCorrectFormat() { + void getUrlForOracleHasCorrectFormat() { assertEquals("jdbc:oracle:thin:@localhost:1521/xe", DBMSType.ORACLE.getUrl("localhost", 1521, "xe")); } @Test - public void getUrlForPostgresHasCorrectFormat() { + void getUrlForPostgresHasCorrectFormat() { assertEquals("jdbc:postgresql://localhost:5432/xe", DBMSType.POSTGRESQL.getUrl("localhost", 5432, "xe")); } @Test - public void getDefaultPortForMysqlHasCorrectValue() { + void getDefaultPortForMysqlHasCorrectValue() { assertEquals(3306, DBMSType.MYSQL.getDefaultPort()); } @Test - public void getDefaultPortForOracleHasCorrectValue() { + void getDefaultPortForOracleHasCorrectValue() { assertEquals(1521, DBMSType.ORACLE.getDefaultPort()); } @Test - public void getDefaultPortForPostgresHasCorrectValue() { + void getDefaultPortForPostgresHasCorrectValue() { assertEquals(5432, DBMSType.POSTGRESQL.getDefaultPort()); } } diff --git a/src/test/java/org/jabref/logic/shared/SynchronizationSimulatorTest.java b/src/test/java/org/jabref/logic/shared/SynchronizationSimulatorTest.java index 7ef73ad9a76..2558cbdb85f 100644 --- a/src/test/java/org/jabref/logic/shared/SynchronizationSimulatorTest.java +++ b/src/test/java/org/jabref/logic/shared/SynchronizationSimulatorTest.java @@ -31,7 +31,7 @@ @DatabaseTest @Execution(ExecutionMode.SAME_THREAD) -public class SynchronizationSimulatorTest { +class SynchronizationSimulatorTest { private BibDatabaseContext clientContextA; private BibDatabaseContext clientContextB; @@ -48,7 +48,7 @@ private BibEntry getBibEntryExample(int index) { } @BeforeEach - public void setup() throws Exception { + void setup() throws Exception { DBMSConnection dbmsConnection = ConnectorTest.getTestDBMSConnection(TestManager.getDBMSTypeTestParameter()); TestManager.clearTables(dbmsConnection); @@ -70,13 +70,13 @@ public void setup() throws Exception { } @AfterEach - public void clear() throws SQLException { + void clear() throws SQLException { clientContextA.getDBMSSynchronizer().closeSharedDatabase(); clientContextB.getDBMSSynchronizer().closeSharedDatabase(); } @Test - public void simulateEntryInsertionAndManualPull() throws Exception { + void simulateEntryInsertionAndManualPull() throws Exception { // client A inserts an entry clientContextA.getDatabase().insertEntry(getBibEntryExample(1)); // client A inserts another entry @@ -88,7 +88,7 @@ public void simulateEntryInsertionAndManualPull() throws Exception { } @Test - public void simulateEntryUpdateAndManualPull() throws Exception { + void simulateEntryUpdateAndManualPull() throws Exception { BibEntry bibEntry = getBibEntryExample(1); // client A inserts an entry clientContextA.getDatabase().insertEntry(bibEntry); @@ -103,7 +103,7 @@ public void simulateEntryUpdateAndManualPull() throws Exception { } @Test - public void simulateEntryDelitionAndManualPull() throws Exception { + void simulateEntryDelitionAndManualPull() throws Exception { BibEntry bibEntry = getBibEntryExample(1); // client A inserts an entry clientContextA.getDatabase().insertEntry(bibEntry); @@ -124,7 +124,7 @@ public void simulateEntryDelitionAndManualPull() throws Exception { } @Test - public void simulateUpdateOnNoLongerExistingEntry() throws Exception { + void simulateUpdateOnNoLongerExistingEntry() throws Exception { BibEntry bibEntryOfClientA = getBibEntryExample(1); // client A inserts an entry clientContextA.getDatabase().insertEntry(bibEntryOfClientA); @@ -150,7 +150,7 @@ public void simulateUpdateOnNoLongerExistingEntry() throws Exception { } @Test - public void simulateEntryChangeConflicts() { + void simulateEntryChangeConflicts() { BibEntry bibEntryOfClientA = getBibEntryExample(1); // client A inserts an entry clientContextA.getDatabase().insertEntry(bibEntryOfClientA); diff --git a/src/test/java/org/jabref/logic/texparser/DefaultTexParserTest.java b/src/test/java/org/jabref/logic/texparser/DefaultTexParserTest.java index 72cdab07c44..e59dc54f20e 100644 --- a/src/test/java/org/jabref/logic/texparser/DefaultTexParserTest.java +++ b/src/test/java/org/jabref/logic/texparser/DefaultTexParserTest.java @@ -12,7 +12,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class DefaultTexParserTest { +class DefaultTexParserTest { private final static String DARWIN = "Darwin1888"; private final static String EINSTEIN = "Einstein1920"; @@ -40,7 +40,7 @@ private void testNonMatchCite(String citeString) { } @Test - public void citeCommands() { + void citeCommands() { testMatchCite(UNRESOLVED, "\\cite[pre][post]{UnresolvedKey}"); testMatchCite(UNRESOLVED, "\\cite*{UnresolvedKey}"); testMatchCite(UNRESOLVED, "\\parencite[post]{UnresolvedKey}"); @@ -58,7 +58,7 @@ public void citeCommands() { } @Test - public void twoCitationsSameLine() { + void twoCitationsSameLine() { Path path = Path.of(""); String citeString = "\\citep{Einstein1920c} and \\citep{Einstein1920a}"; @@ -72,7 +72,7 @@ public void twoCitationsSameLine() { } @Test - public void fileEncodingUtf8() throws URISyntaxException { + void fileEncodingUtf8() throws URISyntaxException { Path texFile = Path.of(DefaultTexParserTest.class.getResource("utf-8.tex").toURI()); LatexParserResult parserResult = new DefaultLatexParser().parse(texFile).get(); @@ -84,7 +84,7 @@ public void fileEncodingUtf8() throws URISyntaxException { } @Test - public void fileEncodingIso88591() throws URISyntaxException { + void fileEncodingIso88591() throws URISyntaxException { Path texFile = Path.of(DefaultTexParserTest.class.getResource("iso-8859-1.tex").toURI()); LatexParserResult parserResult = new DefaultLatexParser().parse(texFile).get(); @@ -97,7 +97,7 @@ public void fileEncodingIso88591() throws URISyntaxException { } @Test - public void fileEncodingIso885915() throws URISyntaxException { + void fileEncodingIso885915() throws URISyntaxException { Path texFile = Path.of(DefaultTexParserTest.class.getResource("iso-8859-15.tex").toURI()); LatexParserResult parserResult = new DefaultLatexParser().parse(texFile).get(); @@ -110,7 +110,7 @@ public void fileEncodingIso885915() throws URISyntaxException { } @Test - public void fileEncodingForThreeFiles() throws URISyntaxException { + void fileEncodingForThreeFiles() throws URISyntaxException { Path texFile = Path.of(DefaultTexParserTest.class.getResource("utf-8.tex").toURI()); Path texFile2 = Path.of(DefaultTexParserTest.class.getResource("iso-8859-1.tex").toURI()); Path texFile3 = Path.of(DefaultTexParserTest.class.getResource("iso-8859-15.tex").toURI()); @@ -130,7 +130,7 @@ public void fileEncodingForThreeFiles() throws URISyntaxException { } @Test - public void singleFile() throws URISyntaxException { + void singleFile() throws URISyntaxException { Path texFile = Path.of(DefaultTexParserTest.class.getResource("paper.tex").toURI()); LatexParserResult parserResult = new DefaultLatexParser().parse(texFile).get(); @@ -146,7 +146,7 @@ public void singleFile() throws URISyntaxException { } @Test - public void twoFiles() throws URISyntaxException { + void twoFiles() throws URISyntaxException { Path texFile = Path.of(DefaultTexParserTest.class.getResource("paper.tex").toURI()); Path texFile2 = Path.of(DefaultTexParserTest.class.getResource("paper2.tex").toURI()); @@ -171,7 +171,7 @@ public void twoFiles() throws URISyntaxException { } @Test - public void duplicateFiles() throws URISyntaxException { + void duplicateFiles() throws URISyntaxException { Path texFile = Path.of(DefaultTexParserTest.class.getResource("paper.tex").toURI()); LatexParserResults parserResults = new DefaultLatexParser().parse(List.of(texFile, texFile)); @@ -190,7 +190,7 @@ public void duplicateFiles() throws URISyntaxException { } @Test - public void unknownKey() throws URISyntaxException { + void unknownKey() throws URISyntaxException { Path texFile = Path.of(DefaultTexParserTest.class.getResource("unknown_key.tex").toURI()); LatexParserResult parserResult = new DefaultLatexParser().parse(texFile).get(); @@ -205,14 +205,14 @@ public void unknownKey() throws URISyntaxException { } @Test - public void fileNotFound() { + void fileNotFound() { Path texFile = Path.of("file_not_found.tex"); Optional parserResult = new DefaultLatexParser().parse(texFile); assertEquals(Optional.empty(), parserResult); } @Test - public void nestedFiles() throws URISyntaxException { + void nestedFiles() throws URISyntaxException { Path texFile = Path.of(DefaultTexParserTest.class.getResource("nested.tex").toURI()); LatexParserResult parserResult = new DefaultLatexParser().parse(texFile).get(); diff --git a/src/test/java/org/jabref/logic/texparser/LatexParserTest.java b/src/test/java/org/jabref/logic/texparser/LatexParserTest.java index 1a03356cc93..60ec5779d8f 100644 --- a/src/test/java/org/jabref/logic/texparser/LatexParserTest.java +++ b/src/test/java/org/jabref/logic/texparser/LatexParserTest.java @@ -22,7 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; -public class LatexParserTest { +class LatexParserTest { private final static String DARWIN = "Darwin1888"; private final static String EINSTEIN = "Einstein1920"; private final static String NEWTON = "Newton1999"; @@ -87,7 +87,7 @@ void setUp() { } @Test - public void sameFileDifferentDatabases() throws URISyntaxException { + void sameFileDifferentDatabases() throws URISyntaxException { Path texFile = Path.of(LatexParserTest.class.getResource("paper.tex").toURI()); LatexParserResult parserResult = new DefaultLatexParser().parse(texFile).get(); @@ -114,7 +114,7 @@ public void sameFileDifferentDatabases() throws URISyntaxException { } @Test - public void twoFilesDifferentDatabases() throws URISyntaxException { + void twoFilesDifferentDatabases() throws URISyntaxException { Path texFile = Path.of(LatexParserTest.class.getResource("paper.tex").toURI()); Path texFile2 = Path.of(LatexParserTest.class.getResource("paper2.tex").toURI()); diff --git a/src/test/java/org/jabref/logic/texparser/TexBibEntriesResolverTest.java b/src/test/java/org/jabref/logic/texparser/TexBibEntriesResolverTest.java index a6258ff4d04..2367a47e68f 100644 --- a/src/test/java/org/jabref/logic/texparser/TexBibEntriesResolverTest.java +++ b/src/test/java/org/jabref/logic/texparser/TexBibEntriesResolverTest.java @@ -21,7 +21,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; -public class TexBibEntriesResolverTest { +class TexBibEntriesResolverTest { private final static String DARWIN = "Darwin1888"; private final static String EINSTEIN = "Einstein1920"; private final static String NEWTON = "Newton1999"; @@ -87,7 +87,7 @@ void setUp() { } @Test - public void singleFile() throws URISyntaxException { + void singleFile() throws URISyntaxException { Path texFile = Path.of(TexBibEntriesResolverTest.class.getResource("paper.tex").toURI()); LatexParserResults latexParserResults = new DefaultLatexParser().parse(List.of(texFile)); @@ -99,7 +99,7 @@ public void singleFile() throws URISyntaxException { } @Test - public void twoFiles() throws URISyntaxException { + void twoFiles() throws URISyntaxException { Path texFile = Path.of(TexBibEntriesResolverTest.class.getResource("paper.tex").toURI()); Path texFile2 = Path.of(TexBibEntriesResolverTest.class.getResource("paper2.tex").toURI()); LatexParserResults latexParserResults = new DefaultLatexParser().parse(List.of(texFile, texFile2)); @@ -111,7 +111,7 @@ public void twoFiles() throws URISyntaxException { } @Test - public void duplicateFiles() throws URISyntaxException { + void duplicateFiles() throws URISyntaxException { Path texFile = Path.of(TexBibEntriesResolverTest.class.getResource("paper.tex").toURI()); LatexParserResults parserResults = new DefaultLatexParser().parse(List.of(texFile)); @@ -122,7 +122,7 @@ public void duplicateFiles() throws URISyntaxException { } @Test - public void unknownKey() throws URISyntaxException { + void unknownKey() throws URISyntaxException { Path texFile = Path.of(TexBibEntriesResolverTest.class.getResource("unknown_key.tex").toURI()); LatexParserResults parserResults = new DefaultLatexParser().parse(List.of(texFile)); @@ -133,7 +133,7 @@ public void unknownKey() throws URISyntaxException { } @Test - public void nestedFiles() throws URISyntaxException { + void nestedFiles() throws URISyntaxException { Path texFile = Path.of(TexBibEntriesResolverTest.class.getResource("nested.tex").toURI()); LatexParserResults parserResults = new DefaultLatexParser().parse(List.of(texFile)); @@ -144,7 +144,7 @@ public void nestedFiles() throws URISyntaxException { } @Test - public void crossRef() throws URISyntaxException { + void crossRef() throws URISyntaxException { Path texFile = Path.of(TexBibEntriesResolverTest.class.getResource("crossref.tex").toURI()); LatexParserResults parserResults = new DefaultLatexParser().parse(List.of(texFile)); diff --git a/src/test/java/org/jabref/logic/util/BuildInfoTest.java b/src/test/java/org/jabref/logic/util/BuildInfoTest.java index 148c27b9863..ceabe9e2657 100644 --- a/src/test/java/org/jabref/logic/util/BuildInfoTest.java +++ b/src/test/java/org/jabref/logic/util/BuildInfoTest.java @@ -5,22 +5,22 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class BuildInfoTest { +class BuildInfoTest { @Test - public void defaults() { + void defaults() { BuildInfo buildInfo = new BuildInfo("asdf"); assertEquals("UNKNOWN", buildInfo.version.getFullVersion()); } @Test - public void fileImport() { + void fileImport() { BuildInfo buildInfo = new BuildInfo("/org/jabref/util/build.properties"); assertEquals("42", buildInfo.version.getFullVersion()); } @Test - public void azureInstrumentationKeyIsNotEmpty() { + void azureInstrumentationKeyIsNotEmpty() { BuildInfo buildInfo = new BuildInfo(); assertNotNull(buildInfo.azureInstrumentationKey); } diff --git a/src/test/java/org/jabref/logic/util/DevelopmentStageTest.java b/src/test/java/org/jabref/logic/util/DevelopmentStageTest.java index b2d33d2eed7..192423b126f 100644 --- a/src/test/java/org/jabref/logic/util/DevelopmentStageTest.java +++ b/src/test/java/org/jabref/logic/util/DevelopmentStageTest.java @@ -5,10 +5,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -public class DevelopmentStageTest { +class DevelopmentStageTest { @Test - public void checkStabilityOrder() { + void checkStabilityOrder() { assertTrue(Version.DevelopmentStage.ALPHA.isMoreStableThan(Version.DevelopmentStage.UNKNOWN)); assertTrue(Version.DevelopmentStage.BETA.isMoreStableThan(Version.DevelopmentStage.ALPHA)); assertTrue(Version.DevelopmentStage.STABLE.isMoreStableThan(Version.DevelopmentStage.BETA)); @@ -17,19 +17,19 @@ public void checkStabilityOrder() { } @Test - public void parseStages() { + void parseStages() { assertEquals(Version.DevelopmentStage.ALPHA, Version.DevelopmentStage.parse("-alpha")); assertEquals(Version.DevelopmentStage.BETA, Version.DevelopmentStage.parse("-beta")); assertEquals(Version.DevelopmentStage.STABLE, Version.DevelopmentStage.parse("")); } @Test - public void parseNull() { + void parseNull() { assertEquals(Version.DevelopmentStage.UNKNOWN, Version.DevelopmentStage.parse(null)); } @Test - public void parseUnknownString() { + void parseUnknownString() { assertEquals(Version.DevelopmentStage.UNKNOWN, Version.DevelopmentStage.parse("asdf")); } } diff --git a/src/test/java/org/jabref/logic/util/FileNameCleanerTest.java b/src/test/java/org/jabref/logic/util/FileNameCleanerTest.java index a77ae65cda8..d4ae98057b2 100644 --- a/src/test/java/org/jabref/logic/util/FileNameCleanerTest.java +++ b/src/test/java/org/jabref/logic/util/FileNameCleanerTest.java @@ -6,31 +6,31 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class FileNameCleanerTest { +class FileNameCleanerTest { @Test - public void cleanFileName() { + void cleanFileName() { assertEquals("legalFilename.txt", FileNameCleaner.cleanFileName("legalFilename.txt")); assertEquals("illegalFilename______.txt", FileNameCleaner.cleanFileName("illegalFilename/?*<>|.txt")); assertEquals("illegalFileName_.txt", FileNameCleaner.cleanFileName("illegalFileName{.txt")); } @Test - public void cleanDirectoryName() { + void cleanDirectoryName() { assertEquals("legalFilename.txt", FileNameCleaner.cleanDirectoryName("legalFilename.txt")); assertEquals("subdir/legalFilename.txt", FileNameCleaner.cleanDirectoryName("subdir/legalFilename.txt")); assertEquals("illegalFilename/_____.txt", FileNameCleaner.cleanDirectoryName("illegalFilename/?*<>|.txt")); } @Test - public void cleanDirectoryNameForWindows() { + void cleanDirectoryNameForWindows() { assertEquals("legalFilename.txt", FileNameCleaner.cleanDirectoryName("legalFilename.txt")); assertEquals("subdir\\legalFilename.txt", FileNameCleaner.cleanDirectoryName("subdir\\legalFilename.txt")); assertEquals("illegalFilename\\_____.txt", FileNameCleaner.cleanDirectoryName("illegalFilename\\?*<>|.txt")); } @Test - public void cleanCurlyBracesAsWell() { + void cleanCurlyBracesAsWell() { assertEquals("The Evolution of Sentiment_ Analysis_A Review of Research Topics, Venues, and Top Cited Papers.PDF", FileNameCleaner.cleanFileName("The Evolution of Sentiment} Analysis}A Review of Research Topics, Venues, and Top Cited Papers.PDF")); } } diff --git a/src/test/java/org/jabref/logic/util/UpdateFieldTest.java b/src/test/java/org/jabref/logic/util/UpdateFieldTest.java index bd23b4cee01..d9804b126ce 100644 --- a/src/test/java/org/jabref/logic/util/UpdateFieldTest.java +++ b/src/test/java/org/jabref/logic/util/UpdateFieldTest.java @@ -20,45 +20,45 @@ import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; -public class UpdateFieldTest { +class UpdateFieldTest { private BibEntry entry; @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { entry = new BibEntry(); entry.setChanged(false); } @Test - public void updateFieldWorksEmptyField() { + void updateFieldWorksEmptyField() { assertFalse(entry.hasField(StandardField.YEAR)); UpdateField.updateField(entry, StandardField.YEAR, "2016"); assertEquals(Optional.of("2016"), entry.getField(StandardField.YEAR)); } @Test - public void updateFieldWorksNonEmptyField() { + void updateFieldWorksNonEmptyField() { entry.setField(StandardField.YEAR, "2015"); UpdateField.updateField(entry, StandardField.YEAR, "2016"); assertEquals(Optional.of("2016"), entry.getField(StandardField.YEAR)); } @Test - public void updateFieldHasChanged() { + void updateFieldHasChanged() { assertFalse(entry.hasChanged()); UpdateField.updateField(entry, StandardField.YEAR, "2016"); assertTrue(entry.hasChanged()); } @Test - public void updateFieldValidFieldChange() { + void updateFieldValidFieldChange() { Optional change = UpdateField.updateField(entry, StandardField.YEAR, "2016"); assertTrue(change.isPresent()); } @Test - public void updateFieldCorrectFieldChangeContentsEmptyField() { + void updateFieldCorrectFieldChangeContentsEmptyField() { Optional change = UpdateField.updateField(entry, StandardField.YEAR, "2016"); assertNull(change.get().getOldValue()); assertEquals(StandardField.YEAR, change.get().getField()); @@ -67,7 +67,7 @@ public void updateFieldCorrectFieldChangeContentsEmptyField() { } @Test - public void updateFieldCorrectFieldChangeContentsNonEmptyField() { + void updateFieldCorrectFieldChangeContentsNonEmptyField() { entry.setField(StandardField.YEAR, "2015"); Optional change = UpdateField.updateField(entry, StandardField.YEAR, "2016"); assertEquals("2015", change.get().getOldValue()); @@ -77,14 +77,14 @@ public void updateFieldCorrectFieldChangeContentsNonEmptyField() { } @Test - public void updateFieldSameValueNoChange() { + void updateFieldSameValueNoChange() { entry.setField(StandardField.YEAR, "2016"); Optional change = UpdateField.updateField(entry, StandardField.YEAR, "2016"); assertFalse(change.isPresent()); } @Test - public void updateFieldSameValueNotChange() { + void updateFieldSameValueNotChange() { entry.setField(StandardField.YEAR, "2016"); entry.setChanged(false); UpdateField.updateField(entry, StandardField.YEAR, "2016"); @@ -92,33 +92,33 @@ public void updateFieldSameValueNotChange() { } @Test - public void updateFieldSetToNullClears() { + void updateFieldSetToNullClears() { entry.setField(StandardField.YEAR, "2016"); UpdateField.updateField(entry, StandardField.YEAR, null); assertFalse(entry.hasField(StandardField.YEAR)); } @Test - public void updateFieldSetEmptyToNullClears() { + void updateFieldSetEmptyToNullClears() { UpdateField.updateField(entry, StandardField.YEAR, null); assertFalse(entry.hasField(StandardField.YEAR)); } @Test - public void updateFieldSetToNullHasFieldChangeContents() { + void updateFieldSetToNullHasFieldChangeContents() { entry.setField(StandardField.YEAR, "2016"); Optional change = UpdateField.updateField(entry, StandardField.YEAR, null); assertTrue(change.isPresent()); } @Test - public void updateFieldSetRmptyToNullHasNoFieldChangeContents() { + void updateFieldSetRmptyToNullHasNoFieldChangeContents() { Optional change = UpdateField.updateField(entry, StandardField.YEAR, null); assertFalse(change.isPresent()); } @Test - public void updateFieldSetToNullCorrectFieldChangeContents() { + void updateFieldSetToNullCorrectFieldChangeContents() { entry.setField(StandardField.YEAR, "2016"); Optional change = UpdateField.updateField(entry, StandardField.YEAR, null); assertNull(change.get().getNewValue()); @@ -128,14 +128,14 @@ public void updateFieldSetToNullCorrectFieldChangeContents() { } @Test - public void updateFieldSameContentClears() { + void updateFieldSameContentClears() { entry.setField(StandardField.YEAR, "2016"); UpdateField.updateField(entry, StandardField.YEAR, "2016", true); assertFalse(entry.hasField(StandardField.YEAR)); } @Test - public void updateFieldSameContentHasChanged() { + void updateFieldSameContentHasChanged() { entry.setField(StandardField.YEAR, "2016"); entry.setChanged(false); UpdateField.updateField(entry, StandardField.YEAR, "2016", true); @@ -143,14 +143,14 @@ public void updateFieldSameContentHasChanged() { } @Test - public void updateFieldSameContentHasFieldChange() { + void updateFieldSameContentHasFieldChange() { entry.setField(StandardField.YEAR, "2016"); Optional change = UpdateField.updateField(entry, StandardField.YEAR, "2016", true); assertTrue(change.isPresent()); } @Test - public void updateFieldSameContentHasCorrectFieldChange() { + void updateFieldSameContentHasCorrectFieldChange() { entry.setField(StandardField.YEAR, "2016"); Optional change = UpdateField.updateField(entry, StandardField.YEAR, "2016", true); assertNull(change.get().getNewValue()); @@ -160,7 +160,7 @@ public void updateFieldSameContentHasCorrectFieldChange() { } @Test - public void updateNonDisplayableFieldUpdates() { + void updateNonDisplayableFieldUpdates() { assertFalse(entry.hasField(StandardField.YEAR)); UpdateField.updateNonDisplayableField(entry, StandardField.YEAR, "2016"); assertTrue(entry.hasField(StandardField.YEAR)); @@ -168,14 +168,14 @@ public void updateNonDisplayableFieldUpdates() { } @Test - public void updateNonDisplayableFieldHasNotChanged() { + void updateNonDisplayableFieldHasNotChanged() { assertFalse(entry.hasChanged()); UpdateField.updateNonDisplayableField(entry, StandardField.YEAR, "2016"); assertFalse(entry.hasChanged()); } @Test - public void emptyOwnerFieldNowPresentAfterAutomaticSet() { + void emptyOwnerFieldNowPresentAfterAutomaticSet() { assertEquals(Optional.empty(), entry.getField(StandardField.OWNER), "Owner is present"); OwnerPreferences ownerPreferences = createOwnerPreference(true, true); @@ -186,7 +186,7 @@ public void emptyOwnerFieldNowPresentAfterAutomaticSet() { } @Test - public void ownerAssignedCorrectlyAfterAutomaticSet() { + void ownerAssignedCorrectlyAfterAutomaticSet() { OwnerPreferences ownerPreferences = createOwnerPreference(true, true); TimestampPreferences timestampPreferences = createTimestampPreference(); UpdateField.setAutomaticFields(List.of(entry), ownerPreferences, timestampPreferences); @@ -195,7 +195,7 @@ public void ownerAssignedCorrectlyAfterAutomaticSet() { } @Test - public void ownerIsNotResetAfterAutomaticSetIfOverwriteOwnerFalse() { + void ownerIsNotResetAfterAutomaticSetIfOverwriteOwnerFalse() { String alreadySetOwner = "alreadySetOwner"; entry.setField(StandardField.OWNER, alreadySetOwner); @@ -210,7 +210,7 @@ public void ownerIsNotResetAfterAutomaticSetIfOverwriteOwnerFalse() { } @Test - public void emptyCreationDateFieldNowPresentAfterAutomaticSet() { + void emptyCreationDateFieldNowPresentAfterAutomaticSet() { assertEquals(Optional.empty(), entry.getField(StandardField.CREATIONDATE), "CreationDate is present"); OwnerPreferences ownerPreferences = createOwnerPreference(true, true); @@ -223,7 +223,7 @@ public void emptyCreationDateFieldNowPresentAfterAutomaticSet() { } @Test - public void creationDateAssignedCorrectlyAfterAutomaticSet() { + void creationDateAssignedCorrectlyAfterAutomaticSet() { OwnerPreferences ownerPreferences = createOwnerPreference(true, true); TimestampPreferences timestampPreferences = createTimestampPreference(); UpdateField.setAutomaticFields(List.of(entry), ownerPreferences, timestampPreferences); @@ -234,7 +234,7 @@ public void creationDateAssignedCorrectlyAfterAutomaticSet() { } @Test - public void ownerSetToDefaultValueForCollectionOfBibEntries() { + void ownerSetToDefaultValueForCollectionOfBibEntries() { BibEntry entry2 = new BibEntry(); BibEntry entry3 = new BibEntry(); @@ -256,7 +256,7 @@ public void ownerSetToDefaultValueForCollectionOfBibEntries() { } @Test - public void ownerNotChangedForCollectionOfBibEntriesIfOptionsDisabled() { + void ownerNotChangedForCollectionOfBibEntriesIfOptionsDisabled() { String initialOwner = "initialOwner"; entry.setField(StandardField.OWNER, initialOwner); diff --git a/src/test/java/org/jabref/logic/util/VersionTest.java b/src/test/java/org/jabref/logic/util/VersionTest.java index 5e04e7d234a..2193784b7c6 100644 --- a/src/test/java/org/jabref/logic/util/VersionTest.java +++ b/src/test/java/org/jabref/logic/util/VersionTest.java @@ -15,34 +15,34 @@ import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -public class VersionTest { +class VersionTest { @Test - public void unknownVersionAsString() { + void unknownVersionAsString() { Version version = Version.parse(BuildInfo.UNKNOWN_VERSION); assertEquals(BuildInfo.UNKNOWN_VERSION, version.getFullVersion()); } @Test - public void unknownVersionAsNull() { + void unknownVersionAsNull() { Version version = Version.parse(null); assertEquals(BuildInfo.UNKNOWN_VERSION, version.getFullVersion()); } @Test - public void unknownVersionAsEmptyString() { + void unknownVersionAsEmptyString() { Version version = Version.parse(""); assertEquals(BuildInfo.UNKNOWN_VERSION, version.getFullVersion()); } @Test - public void initVersionFromWrongStringResultsInUnknownVersion() { + void initVersionFromWrongStringResultsInUnknownVersion() { Version version = Version.parse("${version}"); assertEquals(BuildInfo.UNKNOWN_VERSION, version.getFullVersion()); } @Test - public void versionOneDigit() { + void versionOneDigit() { String versionText = "1"; Version version = Version.parse(versionText); assertEquals(versionText, version.getFullVersion()); @@ -53,7 +53,7 @@ public void versionOneDigit() { } @Test - public void versionTwoDigits() { + void versionTwoDigits() { String versionText = "1.2"; Version version = Version.parse(versionText); assertEquals(versionText, version.getFullVersion()); @@ -64,7 +64,7 @@ public void versionTwoDigits() { } @Test - public void versionThreeDigits() { + void versionThreeDigits() { String versionText = "1.2.3"; Version version = Version.parse(versionText); assertEquals(versionText, version.getFullVersion()); @@ -75,7 +75,7 @@ public void versionThreeDigits() { } @Test - public void versionOneDigitDevVersion() { + void versionOneDigitDevVersion() { String versionText = "1dev"; Version version = Version.parse(versionText); assertEquals(versionText, version.getFullVersion()); @@ -86,7 +86,7 @@ public void versionOneDigitDevVersion() { } @Test - public void versionTwoDigitDevVersion() { + void versionTwoDigitDevVersion() { String versionText = "1.2dev"; Version version = Version.parse(versionText); assertEquals(versionText, version.getFullVersion()); @@ -97,7 +97,7 @@ public void versionTwoDigitDevVersion() { } @Test - public void versionThreeDigitDevVersion() { + void versionThreeDigitDevVersion() { String versionText = "1.2.3dev"; Version version = Version.parse(versionText); assertEquals(versionText, version.getFullVersion()); @@ -108,7 +108,7 @@ public void versionThreeDigitDevVersion() { } @Test - public void validVersionIsNotNewerThanUnknownVersion() { + void validVersionIsNotNewerThanUnknownVersion() { // Reason: unknown version should only happen for developer builds where we don't want an update notification Version unknownVersion = Version.parse(BuildInfo.UNKNOWN_VERSION); Version validVersion = Version.parse("4.2"); @@ -116,42 +116,42 @@ public void validVersionIsNotNewerThanUnknownVersion() { } @Test - public void unknownVersionIsNotNewerThanValidVersion() { + void unknownVersionIsNotNewerThanValidVersion() { Version unknownVersion = Version.parse(BuildInfo.UNKNOWN_VERSION); Version validVersion = Version.parse("4.2"); assertFalse(unknownVersion.isNewerThan(validVersion)); } @Test - public void versionNewerThan() { + void versionNewerThan() { Version olderVersion = Version.parse("2.4"); Version newerVersion = Version.parse("4.2"); assertTrue(newerVersion.isNewerThan(olderVersion)); } @Test - public void versionNotNewerThan() { + void versionNotNewerThan() { Version olderVersion = Version.parse("2.4"); Version newerVersion = Version.parse("4.2"); assertFalse(olderVersion.isNewerThan(newerVersion)); } @Test - public void versionNotNewerThanSameVersion() { + void versionNotNewerThanSameVersion() { Version version1 = Version.parse("4.2"); Version version2 = Version.parse("4.2"); assertFalse(version1.isNewerThan(version2)); } @Test - public void versionNewerThanDevTwoDigits() { + void versionNewerThanDevTwoDigits() { Version older = Version.parse("4.2"); Version newer = Version.parse("4.3dev"); assertTrue(newer.isNewerThan(older)); } @Test - public void versionNewerThanDevVersion() { + void versionNewerThanDevVersion() { Version older = Version.parse("1.2dev"); Version newer = Version.parse("1.2"); assertTrue(newer.isNewerThan(older)); @@ -159,75 +159,75 @@ public void versionNewerThanDevVersion() { } @Test - public void versionNewerThanDevThreeDigits() { + void versionNewerThanDevThreeDigits() { Version older = Version.parse("4.2.1"); Version newer = Version.parse("4.3dev"); assertTrue(newer.isNewerThan(older)); } @Test - public void versionNewerMinor() { + void versionNewerMinor() { Version older = Version.parse("4.1"); Version newer = Version.parse("4.2.1"); assertTrue(newer.isNewerThan(older)); } @Test - public void versionNotNewerMinor() { + void versionNotNewerMinor() { Version older = Version.parse("4.1"); Version newer = Version.parse("4.2.1"); assertFalse(older.isNewerThan(newer)); } @Test - public void versionNewerPatch() { + void versionNewerPatch() { Version older = Version.parse("4.2.1"); Version newer = Version.parse("4.2.2"); assertTrue(newer.isNewerThan(older)); } @Test - public void versionNotNewerPatch() { + void versionNotNewerPatch() { Version older = Version.parse("4.2.1"); Version newer = Version.parse("4.2.2"); assertFalse(older.isNewerThan(newer)); } @Test - public void versionNewerDevelopmentNumber() { + void versionNewerDevelopmentNumber() { Version older = Version.parse("4.2-beta1"); Version newer = Version.parse("4.2-beta2"); assertFalse(older.isNewerThan(newer)); } @Test - public void versionNotNewerThanSameVersionWithBeta() { + void versionNotNewerThanSameVersionWithBeta() { Version version1 = Version.parse("4.2-beta2"); Version version2 = Version.parse("4.2-beta2"); assertFalse(version2.isNewerThan(version1)); } @Test - public void equalVersionsNotNewer() { + void equalVersionsNotNewer() { Version version1 = Version.parse("4.2.2"); Version version2 = Version.parse("4.2.2"); assertFalse(version1.isNewerThan(version2)); } @Test - public void changelogOfDevelopmentVersionWithDash() { + void changelogOfDevelopmentVersionWithDash() { Version version = Version.parse("4.0-dev"); assertEquals("https://github.com/JabRef/jabref/blob/main/CHANGELOG.md#unreleased", version.getChangelogUrl()); } @Test - public void changelogOfDevelopmentVersionWithoutDash() { + void changelogOfDevelopmentVersionWithoutDash() { Version version = Version.parse("3.7dev"); assertEquals("https://github.com/JabRef/jabref/blob/main/CHANGELOG.md#unreleased", version.getChangelogUrl()); } @Test - public void changelogOfDevelopmentStageSubNumber() { + void changelogOfDevelopmentStageSubNumber() { Version version1 = Version.parse("4.0"); Version version2 = Version.parse("4.0-beta"); Version version3 = Version.parse("4.0-beta2"); @@ -239,75 +239,75 @@ public void changelogOfDevelopmentStageSubNumber() { } @Test - public void changelogWithTwoDigits() { + void changelogWithTwoDigits() { Version version = Version.parse("3.4"); assertEquals("https://github.com/JabRef/jabref/blob/v3.4/CHANGELOG.md", version.getChangelogUrl()); } @Test - public void changelogWithThreeDigits() { + void changelogWithThreeDigits() { Version version = Version.parse("3.4.1"); assertEquals("https://github.com/JabRef/jabref/blob/v3.4.1/CHANGELOG.md", version.getChangelogUrl()); } @Test - public void versionNull() { + void versionNull() { String versionText = null; Version version = Version.parse(versionText); assertEquals(BuildInfo.UNKNOWN_VERSION, version.getFullVersion()); } @Test - public void versionEmpty() { + void versionEmpty() { String versionText = ""; Version version = Version.parse(versionText); assertEquals(BuildInfo.UNKNOWN_VERSION, version.getFullVersion()); } @Test - public void betaNewerThanAlpha() { + void betaNewerThanAlpha() { Version older = Version.parse("2.7-alpha"); Version newer = Version.parse("2.7-beta"); assertTrue(newer.isNewerThan(older)); } @Test - public void stableNewerThanBeta() { + void stableNewerThanBeta() { Version older = Version.parse("2.8-alpha"); Version newer = Version.parse("2.8"); assertTrue(newer.isNewerThan(older)); } @Test - public void alphaShouldBeUpdatedToBeta() { + void alphaShouldBeUpdatedToBeta() { Version alpha = Version.parse("2.8-alpha"); Version beta = Version.parse("2.8-beta"); assertTrue(alpha.shouldBeUpdatedTo(beta)); } @Test - public void betaShouldBeUpdatedToStable() { + void betaShouldBeUpdatedToStable() { Version beta = Version.parse("2.8-beta"); Version stable = Version.parse("2.8"); assertTrue(beta.shouldBeUpdatedTo(stable)); } @Test - public void stableShouldNotBeUpdatedToAlpha() { + void stableShouldNotBeUpdatedToAlpha() { Version stable = Version.parse("2.8"); Version alpha = Version.parse("2.9-alpha"); assertFalse(stable.shouldBeUpdatedTo(alpha)); } @Test - public void stableShouldNotBeUpdatedToBeta() { + void stableShouldNotBeUpdatedToBeta() { Version stable = Version.parse("3.8.2"); Version beta = Version.parse("4.0-beta"); assertFalse(stable.shouldBeUpdatedTo(beta)); } @Test - public void alphaShouldBeUpdatedToStables() { + void alphaShouldBeUpdatedToStables() { Version alpha = Version.parse("2.8-alpha"); Version stable = Version.parse("2.8"); List availableVersions = Arrays.asList(Version.parse("2.8-beta"), stable); @@ -315,13 +315,13 @@ public void alphaShouldBeUpdatedToStables() { } @Test - public void ciSuffixShouldBeRemoved() { + void ciSuffixShouldBeRemoved() { Version v50ci = Version.parse("5.0-ci.1"); assertEquals("5.0", v50ci.getFullVersion()); } @Test - public void ciSuffixShouldBeRemovedIfDateIsPresent() { + void ciSuffixShouldBeRemovedIfDateIsPresent() { Version v50ci = Version.parse("5.0-ci.1--2020-03-06--289142f"); assertEquals("5.0--2020-03-06--289142f", v50ci.getFullVersion()); } @@ -329,7 +329,7 @@ public void ciSuffixShouldBeRemovedIfDateIsPresent() { @Test @FetcherTest @DisabledOnCIServer("GitHub puts a low rate limit on unauthenticated calls") - public void getAllAvailableVersionsReturnsSomething() throws Exception { + void getAllAvailableVersionsReturnsSomething() throws Exception { assertNotEquals(Collections.emptyList(), Version.getAllAvailableVersions()); } } diff --git a/src/test/java/org/jabref/logic/util/io/BackupFileUtilTest.java b/src/test/java/org/jabref/logic/util/io/BackupFileUtilTest.java index a5ad81b76d9..3e53bd231c7 100644 --- a/src/test/java/org/jabref/logic/util/io/BackupFileUtilTest.java +++ b/src/test/java/org/jabref/logic/util/io/BackupFileUtilTest.java @@ -17,7 +17,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; -public class BackupFileUtilTest { +class BackupFileUtilTest { Path backupDir; diff --git a/src/test/java/org/jabref/logic/util/io/FileNameUniquenessTest.java b/src/test/java/org/jabref/logic/util/io/FileNameUniquenessTest.java index 6b888754323..a0035e52a4a 100644 --- a/src/test/java/org/jabref/logic/util/io/FileNameUniquenessTest.java +++ b/src/test/java/org/jabref/logic/util/io/FileNameUniquenessTest.java @@ -14,13 +14,13 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; -public class FileNameUniquenessTest { +class FileNameUniquenessTest { @TempDir protected Path tempDir; @Test - public void getNonOverWritingFileNameReturnsSameName() throws IOException { + void getNonOverWritingFileNameReturnsSameName() throws IOException { assertFalse(Files.exists(tempDir.resolve("sameFile.txt"))); String outputFileName = FileNameUniqueness.getNonOverWritingFileName(tempDir, "sameFile.txt"); @@ -28,7 +28,7 @@ public void getNonOverWritingFileNameReturnsSameName() throws IOException { } @Test - public void getNonOverWritingFileNameReturnsUniqueNameOver1Conflict() throws IOException { + void getNonOverWritingFileNameReturnsUniqueNameOver1Conflict() throws IOException { Path dummyFilePath1 = tempDir.resolve("differentFile.txt"); Files.createFile(dummyFilePath1); @@ -38,7 +38,7 @@ public void getNonOverWritingFileNameReturnsUniqueNameOver1Conflict() throws IOE } @Test - public void getNonOverWritingFileNameReturnsUniqueNameOverNConflicts() throws IOException { + void getNonOverWritingFileNameReturnsUniqueNameOverNConflicts() throws IOException { Path dummyFilePath1 = tempDir.resolve("manyfiles.txt"); Path dummyFilePath2 = tempDir.resolve("manyfiles (1).txt"); @@ -50,7 +50,7 @@ public void getNonOverWritingFileNameReturnsUniqueNameOverNConflicts() throws IO } @Test - public void isDuplicatedFileWithNoSimilarNames() throws IOException { + void isDuplicatedFileWithNoSimilarNames() throws IOException { DialogService dialogService = mock(DialogService.class); String filename1 = "file1.txt"; Path filePath1 = tempDir.resolve(filename1); @@ -61,7 +61,7 @@ public void isDuplicatedFileWithNoSimilarNames() throws IOException { } @Test - public void isDuplicatedFileWithOneSimilarNames() throws IOException { + void isDuplicatedFileWithOneSimilarNames() throws IOException { DialogService dialogService = mock(DialogService.class); String filename1 = "file.txt"; String filename2 = "file (1).txt"; @@ -75,28 +75,28 @@ public void isDuplicatedFileWithOneSimilarNames() throws IOException { } @Test - public void taseDuplicateMarksReturnsOrignalFileName1() throws IOException { + void taseDuplicateMarksReturnsOrignalFileName1() throws IOException { String fileName1 = "abc def (1)"; String fileName2 = FileNameUniqueness.eraseDuplicateMarks(fileName1); assertEquals("abc def", fileName2); } @Test - public void taseDuplicateMarksReturnsOrignalFileName2() throws IOException { + void taseDuplicateMarksReturnsOrignalFileName2() throws IOException { String fileName1 = "abc (def) gh (1)"; String fileName2 = FileNameUniqueness.eraseDuplicateMarks(fileName1); assertEquals("abc (def) gh", fileName2); } @Test - public void taseDuplicateMarksReturnsSameName1() throws IOException { + void taseDuplicateMarksReturnsSameName1() throws IOException { String fileName1 = "abc def (g)"; String fileName2 = FileNameUniqueness.eraseDuplicateMarks(fileName1); assertEquals("abc def (g)", fileName2); } @Test - public void taseDuplicateMarksReturnsSameName2() throws IOException { + void taseDuplicateMarksReturnsSameName2() throws IOException { String fileName1 = "abc def"; String fileName2 = FileNameUniqueness.eraseDuplicateMarks(fileName1); assertEquals("abc def", fileName2); diff --git a/src/test/java/org/jabref/logic/util/io/FileUtilTest.java b/src/test/java/org/jabref/logic/util/io/FileUtilTest.java index 5e7f4f56e0c..d1683fd24c0 100644 --- a/src/test/java/org/jabref/logic/util/io/FileUtilTest.java +++ b/src/test/java/org/jabref/logic/util/io/FileUtilTest.java @@ -370,32 +370,32 @@ void findInListOfPath() { } @Test - public void extractFileExtension() { + void extractFileExtension() { final String filePath = FileUtilTest.class.getResource("pdffile.pdf").getPath(); assertEquals(Optional.of("pdf"), FileUtil.getFileExtension(filePath)); } @Test - public void fileExtensionFromUrl() { + void fileExtensionFromUrl() { final String filePath = "https://link.springer.com/content/pdf/10.1007%2Fs40955-018-0121-9.pdf"; assertEquals(Optional.of("pdf"), FileUtil.getFileExtension(filePath)); } @Test - public void fileNameEmpty() { + void fileNameEmpty() { Path path = Path.of("/"); assertEquals(Optional.of(path), FileUtil.find("", path)); } @ParameterizedTest @ValueSource(strings = {"*", "?", ">", "\""}) - public void fileNameIllegal(String fileName) { + void fileNameIllegal(String fileName) { Path path = Path.of("/"); assertEquals(Optional.empty(), FileUtil.find(fileName, path)); } @Test - public void findsFileInDirectory(@TempDir Path temp) throws Exception { + void findsFileInDirectory(@TempDir Path temp) throws Exception { Path firstFilePath = temp.resolve("files"); Files.createDirectories(firstFilePath); Path firstFile = Files.createFile(firstFilePath.resolve("test.pdf")); @@ -404,7 +404,7 @@ public void findsFileInDirectory(@TempDir Path temp) throws Exception { } @Test - public void findsFileStartingWithTheSameDirectory(@TempDir Path temp) throws Exception { + void findsFileStartingWithTheSameDirectory(@TempDir Path temp) throws Exception { Path firstFilePath = temp.resolve("files"); Files.createDirectories(firstFilePath); Path firstFile = Files.createFile(firstFilePath.resolve("test.pdf")); @@ -413,7 +413,7 @@ public void findsFileStartingWithTheSameDirectory(@TempDir Path temp) throws Exc } @Test - public void doesNotFindsFileStartingWithTheSameDirectoryHasASubdirectory(@TempDir Path temp) throws Exception { + void doesNotFindsFileStartingWithTheSameDirectoryHasASubdirectory(@TempDir Path temp) throws Exception { Path firstFilesPath = temp.resolve("files"); Path secondFilesPath = firstFilesPath.resolve("files"); Files.createDirectories(secondFilesPath); @@ -461,20 +461,20 @@ public static Stream relativize() { @ParameterizedTest @MethodSource - public void relativize(List expected, List entries, BibDatabaseContext databaseContext, FilePreferences filePreferences) { + void relativize(List expected, List entries, BibDatabaseContext databaseContext, FilePreferences filePreferences) { List actual = FileUtil.relativize(entries, databaseContext, filePreferences); assertEquals(expected, actual); } @ParameterizedTest @ValueSource(strings = {"/mnt/tmp/test.pdf"}) - public void legalPaths(String fileName) { + void legalPaths(String fileName) { assertFalse(FileUtil.detectBadFileName(fileName)); } @ParameterizedTest @ValueSource(strings = {"te{}mp.pdf"}) - public void illegalPaths(String fileName) { + void illegalPaths(String fileName) { assertTrue(FileUtil.detectBadFileName(fileName)); } } diff --git a/src/test/java/org/jabref/logic/util/strings/StringLengthComparatorTest.java b/src/test/java/org/jabref/logic/util/strings/StringLengthComparatorTest.java index 174b2de8238..0530c217947 100644 --- a/src/test/java/org/jabref/logic/util/strings/StringLengthComparatorTest.java +++ b/src/test/java/org/jabref/logic/util/strings/StringLengthComparatorTest.java @@ -9,12 +9,12 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class StringLengthComparatorTest { +class StringLengthComparatorTest { private StringLengthComparator slc; @BeforeEach - public void setUp() { + void setUp() { slc = new StringLengthComparator(); } diff --git a/src/test/java/org/jabref/logic/util/strings/StringManipulatorTest.java b/src/test/java/org/jabref/logic/util/strings/StringManipulatorTest.java index c8a749bc149..26d9fd31bdc 100644 --- a/src/test/java/org/jabref/logic/util/strings/StringManipulatorTest.java +++ b/src/test/java/org/jabref/logic/util/strings/StringManipulatorTest.java @@ -11,10 +11,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class StringManipulatorTest { +class StringManipulatorTest { @Test - public void capitalizePreservesNewlines() { + void capitalizePreservesNewlines() { int caretPosition = 5; // Position of the caret, between the two ll in the first hellO" String input = "hello\n\nhELLO"; String expectedResult = "hello\n\nHello"; @@ -23,7 +23,7 @@ public void capitalizePreservesNewlines() { } @Test - public void uppercasePreservesSpace() { + void uppercasePreservesSpace() { int caretPosition = 3; // Position of the caret, between the two ll in the first hello String input = "hello hello"; String expectedResult = "helLO hello"; @@ -32,7 +32,7 @@ public void uppercasePreservesSpace() { } @Test - public void uppercasePreservesNewlines() { + void uppercasePreservesNewlines() { int caretPosition = 3; // Position of the caret, between the two ll in the first hello String input = "hello\nhello"; String expectedResult = "helLO\nhello"; @@ -41,7 +41,7 @@ public void uppercasePreservesNewlines() { } @Test - public void uppercasePreservesTab() { + void uppercasePreservesTab() { int caretPosition = 3; // Position of the caret, between the two ll in the first hello String input = "hello\thello"; String expectedResult = "helLO\thello"; @@ -50,7 +50,7 @@ public void uppercasePreservesTab() { } @Test - public void uppercasePreservesDoubleSpace() { + void uppercasePreservesDoubleSpace() { int caretPosition = 5; // Position of the caret, at the first space String input = "hello hello"; String expectedResult = "hello HELLO"; @@ -59,7 +59,7 @@ public void uppercasePreservesDoubleSpace() { } @Test - public void uppercaseIgnoresTrailingWhitespace() { + void uppercaseIgnoresTrailingWhitespace() { int caretPosition = 5; // First space String input = "hello "; String expectedResult = "hello "; @@ -70,7 +70,7 @@ public void uppercaseIgnoresTrailingWhitespace() { } @Test - public void killWordTrimsTrailingWhitespace() { + void killWordTrimsTrailingWhitespace() { int caretPosition = 5; // First space String input = "hello "; String expectedResult = "hello"; @@ -80,7 +80,7 @@ public void killWordTrimsTrailingWhitespace() { } @Test - public void backwardsKillWordTrimsPreceedingWhitespace() { + void backwardsKillWordTrimsPreceedingWhitespace() { int caretPosition = 1; // Second space String input = " hello"; // One space should be preserved since we are deleting everything preceding the second space. @@ -92,7 +92,7 @@ public void backwardsKillWordTrimsPreceedingWhitespace() { } @Test - public void uppercasePreservesMixedSpaceNewLineTab() { + void uppercasePreservesMixedSpaceNewLineTab() { int caretPosition = 5; // Position of the caret, after first hello String input = "hello \n\thello"; String expectedResult = "hello \n\tHELLO"; @@ -101,7 +101,7 @@ public void uppercasePreservesMixedSpaceNewLineTab() { } @Test - public void lowercaseEditsTheNextWord() { + void lowercaseEditsTheNextWord() { int caretPosition = 5; // Position of the caret, right at the space String input = "hello HELLO"; String expectedResult = "hello hello"; @@ -110,7 +110,7 @@ public void lowercaseEditsTheNextWord() { } @Test - public void killWordRemovesFromPositionUpToNextWord() { + void killWordRemovesFromPositionUpToNextWord() { int caretPosition = 3; // Position of the caret, between the two "ll in the first hello" String input = "hello hello"; String expectedResult = "hel hello"; @@ -119,7 +119,7 @@ public void killWordRemovesFromPositionUpToNextWord() { } @Test - public void killWordRemovesNextWordIfPositionIsInSpace() { + void killWordRemovesNextWordIfPositionIsInSpace() { int caretPosition = 5; // Position of the caret, after the first hello" String input = "hello person"; String expectedResult = "hello"; @@ -128,7 +128,7 @@ public void killWordRemovesNextWordIfPositionIsInSpace() { } @Test - public void killPreviousWord() { + void killPreviousWord() { int caretPosition = 8; int expectedPosition = 6; String input = "hello person"; diff --git a/src/test/java/org/jabref/logic/util/strings/StringSimilarityTest.java b/src/test/java/org/jabref/logic/util/strings/StringSimilarityTest.java index 808f197bfa4..a7d0ba6c4f2 100644 --- a/src/test/java/org/jabref/logic/util/strings/StringSimilarityTest.java +++ b/src/test/java/org/jabref/logic/util/strings/StringSimilarityTest.java @@ -5,7 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class StringSimilarityTest { +class StringSimilarityTest { private StringSimilarity similarityChecker = new StringSimilarity(); @@ -24,7 +24,7 @@ public class StringSimilarityTest { "abcdef, ab, true", // no empty strings and similarity == threshold (4) "abcdef, a, false" // no empty string sand similarity > threshold (4) }) - public void stringSimilarity(String a, String b, String expectedResult) { + void stringSimilarity(String a, String b, String expectedResult) { assertEquals(Boolean.valueOf(expectedResult), similarityChecker.isSimilar(a, b)); } } diff --git a/src/test/java/org/jabref/migrations/MergeReviewIntoCommentActionMigrationTest.java b/src/test/java/org/jabref/migrations/MergeReviewIntoCommentActionMigrationTest.java index 39d94ef7d52..46c3b61a0ed 100644 --- a/src/test/java/org/jabref/migrations/MergeReviewIntoCommentActionMigrationTest.java +++ b/src/test/java/org/jabref/migrations/MergeReviewIntoCommentActionMigrationTest.java @@ -20,14 +20,14 @@ class MergeReviewIntoCommentActionMigrationTest { private BibEntry expectedEntry; @BeforeEach - public void setUp() { + void setUp() { action = new MergeReviewIntoCommentMigration(); entry = createMinimalBibEntry(); expectedEntry = createMinimalBibEntry(); } @Test - public void noFields() { + void noFields() { ParserResult actualParserResult = new ParserResult(Collections.singletonList(entry)); action.performMigration(actualParserResult); @@ -36,7 +36,7 @@ public void noFields() { } @Test - public void reviewField() { + void reviewField() { entry.setField(StandardField.REVIEW, "My Review"); ParserResult actualParserResult = new ParserResult(Collections.singletonList(entry)); @@ -48,7 +48,7 @@ public void reviewField() { } @Test - public void commentField() { + void commentField() { entry.setField(StandardField.COMMENT, "My Comment"); ParserResult actualParserResult = new ParserResult(Collections.singletonList(entry)); @@ -58,7 +58,7 @@ public void commentField() { } @Test - public void multiLineReviewField() { + void multiLineReviewField() { String commentString = "My Review\n\nSecond Paragraph\n\nThird Paragraph"; entry.setField(StandardField.REVIEW, commentString); @@ -73,7 +73,7 @@ public void multiLineReviewField() { @Test @Disabled("Re-enable if the MergeReviewIntoCommentMigration.mergeCommentFieldIfPresent() does not block and wait for user input.") - public void reviewAndCommentField() { + void reviewAndCommentField() { entry.setField(StandardField.REVIEW, "My Review"); entry.setField(StandardField.COMMENT, "My Comment"); diff --git a/src/test/java/org/jabref/migrations/SpecialFieldsToSeparateFieldsTest.java b/src/test/java/org/jabref/migrations/SpecialFieldsToSeparateFieldsTest.java index 3b62d531fe7..11dbc262077 100644 --- a/src/test/java/org/jabref/migrations/SpecialFieldsToSeparateFieldsTest.java +++ b/src/test/java/org/jabref/migrations/SpecialFieldsToSeparateFieldsTest.java @@ -19,7 +19,7 @@ class SpecialFieldsToSeparateFieldsTest { @ParameterizedTest @MethodSource("provideKeywordFieldPairs") - public void migrateToCorrectField(SpecialField field, String fieldInKeyword, BibEntry expected) { + void migrateToCorrectField(SpecialField field, String fieldInKeyword, BibEntry expected) { BibEntry entry = new BibEntry().withField(StandardField.KEYWORDS, fieldInKeyword); new SpecialFieldsToSeparateFields(',').performMigration(new ParserResult(List.of(entry))); @@ -28,7 +28,7 @@ public void migrateToCorrectField(SpecialField field, String fieldInKeyword, Bib } @Test - public void noKewordToMigrate() { + void noKewordToMigrate() { BibEntry entry = new BibEntry().withField(StandardField.AUTHOR, "JabRef") .withField(StandardField.KEYWORDS, "tdd"); BibEntry expected = new BibEntry().withField(StandardField.AUTHOR, "JabRef") @@ -40,7 +40,7 @@ public void noKewordToMigrate() { } @Test - public void noKeywordToMigrateButDuplicateKeywords() { + void noKeywordToMigrateButDuplicateKeywords() { BibEntry entry = new BibEntry().withField(StandardField.AUTHOR, "JabRef") .withField(StandardField.KEYWORDS, "asdf, asdf, asdf"); BibEntry expected = new BibEntry().withField(StandardField.AUTHOR, "JabRef") @@ -52,7 +52,7 @@ public void noKeywordToMigrateButDuplicateKeywords() { } @Test - public void migrateMultipleSpecialFields() { + void migrateMultipleSpecialFields() { BibEntry entry = new BibEntry().withField(StandardField.AUTHOR, "JabRef") .withField(StandardField.KEYWORDS, "printed, prio1"); BibEntry expected = new BibEntry().withField(StandardField.AUTHOR, "JabRef") @@ -65,7 +65,7 @@ public void migrateMultipleSpecialFields() { } @Test - public void migrateSpecialFieldsMixedWithKeyword() { + void migrateSpecialFieldsMixedWithKeyword() { BibEntry entry = new BibEntry().withField(StandardField.AUTHOR, "JabRef") .withField(StandardField.KEYWORDS, "tdd, prio1, SE"); diff --git a/src/test/java/org/jabref/model/TreeNodeTest.java b/src/test/java/org/jabref/model/TreeNodeTest.java index 33057e5e687..7044fa5cc0c 100644 --- a/src/test/java/org/jabref/model/TreeNodeTest.java +++ b/src/test/java/org/jabref/model/TreeNodeTest.java @@ -17,28 +17,28 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; -public class TreeNodeTest { +class TreeNodeTest { Consumer subscriber; @BeforeEach - public void setUp() { + void setUp() { subscriber = mock(Consumer.class); } @Test - public void constructorChecksThatClassImplementsCorrectInterface() { + void constructorChecksThatClassImplementsCorrectInterface() { assertThrows(UnsupportedOperationException.class, WrongTreeNodeImplementation::new); } @Test - public void constructorExceptsCorrectImplementation() { + void constructorExceptsCorrectImplementation() { TreeNodeTestData.TreeNodeMock treeNode = new TreeNodeTestData.TreeNodeMock(); assertNotNull(treeNode); } @Test - public void newTreeNodeHasNoParentOrChildren() { + void newTreeNodeHasNoParentOrChildren() { TreeNodeTestData.TreeNodeMock treeNode = new TreeNodeTestData.TreeNodeMock(); assertEquals(Optional.empty(), treeNode.getParent()); assertEquals(Collections.emptyList(), treeNode.getChildren()); @@ -46,100 +46,100 @@ public void newTreeNodeHasNoParentOrChildren() { } @Test - public void getIndexedPathFromRootReturnsEmptyListForRoot() { + void getIndexedPathFromRootReturnsEmptyListForRoot() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); assertEquals(Collections.emptyList(), root.getIndexedPathFromRoot()); } @Test - public void getIndexedPathFromRootSimplePath() { + void getIndexedPathFromRootSimplePath() { assertEquals(Arrays.asList(1, 0), TreeNodeTestData.getNodeInSimpleTree().getIndexedPathFromRoot()); } @Test - public void getIndexedPathFromRootComplexPath() { + void getIndexedPathFromRootComplexPath() { assertEquals(Arrays.asList(2, 1, 0), TreeNodeTestData.getNodeInComplexTree().getIndexedPathFromRoot()); } @Test - public void getDescendantSimplePath() { + void getDescendantSimplePath() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeInSimpleTree(root); assertEquals(node, root.getDescendant(Arrays.asList(1, 0)).get()); } @Test - public void getDescendantComplexPath() { + void getDescendantComplexPath() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeInComplexTree(root); assertEquals(node, root.getDescendant(Arrays.asList(2, 1, 0)).get()); } @Test - public void getDescendantNonExistentReturnsEmpty() { + void getDescendantNonExistentReturnsEmpty() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.getNodeInComplexTree(root); assertEquals(Optional.empty(), root.getDescendant(Arrays.asList(1, 100, 0))); } @Test - public void getPositionInParentForRootThrowsException() { + void getPositionInParentForRootThrowsException() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); assertThrows(UnsupportedOperationException.class, root::getPositionInParent); } @Test - public void getPositionInParentSimpleTree() { + void getPositionInParentSimpleTree() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeAsChild(root); assertEquals(2, node.getPositionInParent()); } @Test - public void getIndexOfNonExistentChildReturnsEmpty() { + void getIndexOfNonExistentChildReturnsEmpty() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); assertEquals(Optional.empty(), root.getIndexOfChild(new TreeNodeTestData.TreeNodeMock())); } @Test - public void getIndexOfChild() { + void getIndexOfChild() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeAsChild(root); assertEquals((Integer) 2, root.getIndexOfChild(node).get()); } @Test - public void getLevelOfRoot() { + void getLevelOfRoot() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); assertEquals(0, root.getLevel()); } @Test - public void getLevelInSimpleTree() { + void getLevelInSimpleTree() { assertEquals(2, TreeNodeTestData.getNodeInSimpleTree().getLevel()); } @Test - public void getLevelInComplexTree() { + void getLevelInComplexTree() { assertEquals(3, TreeNodeTestData.getNodeInComplexTree().getLevel()); } @Test - public void getChildCountInSimpleTree() { + void getChildCountInSimpleTree() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.getNodeInSimpleTree(root); assertEquals(2, root.getNumberOfChildren()); } @Test - public void getChildCountInComplexTree() { + void getChildCountInComplexTree() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.getNodeInComplexTree(root); assertEquals(4, root.getNumberOfChildren()); } @Test - public void moveToAddsAsLastChildInSimpleTree() { + void moveToAddsAsLastChildInSimpleTree() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeInSimpleTree(root); node.moveTo(root); @@ -147,7 +147,7 @@ public void moveToAddsAsLastChildInSimpleTree() { } @Test - public void moveToAddsAsLastChildInComplexTree() { + void moveToAddsAsLastChildInComplexTree() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeInComplexTree(root); node.moveTo(root); @@ -155,7 +155,7 @@ public void moveToAddsAsLastChildInComplexTree() { } @Test - public void moveToChangesParent() { + void moveToChangesParent() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeInSimpleTree(root); node.moveTo(root); @@ -163,7 +163,7 @@ public void moveToChangesParent() { } @Test - public void moveToInSameLevelAddsAtEnd() { + void moveToInSameLevelAddsAtEnd() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock child1 = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock child2 = new TreeNodeTestData.TreeNodeMock(); @@ -176,7 +176,7 @@ public void moveToInSameLevelAddsAtEnd() { } @Test - public void moveToInSameLevelWhenNodeWasBeforeTargetIndex() { + void moveToInSameLevelWhenNodeWasBeforeTargetIndex() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock child1 = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock child2 = new TreeNodeTestData.TreeNodeMock(); @@ -191,7 +191,7 @@ public void moveToInSameLevelWhenNodeWasBeforeTargetIndex() { } @Test - public void moveToInSameLevelWhenNodeWasAfterTargetIndex() { + void moveToInSameLevelWhenNodeWasAfterTargetIndex() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock child1 = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock child2 = new TreeNodeTestData.TreeNodeMock(); @@ -206,7 +206,7 @@ public void moveToInSameLevelWhenNodeWasAfterTargetIndex() { } @Test - public void getPathFromRootInSimpleTree() { + void getPathFromRootInSimpleTree() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeInSimpleTree(root); @@ -217,7 +217,7 @@ public void getPathFromRootInSimpleTree() { } @Test - public void getPathFromRootInComplexTree() { + void getPathFromRootInComplexTree() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeInComplexTree(root); @@ -228,7 +228,7 @@ public void getPathFromRootInComplexTree() { } @Test - public void getPreviousSiblingReturnsCorrect() { + void getPreviousSiblingReturnsCorrect() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); root.addChild(new TreeNodeTestData.TreeNodeMock()); TreeNodeTestData.TreeNodeMock previous = new TreeNodeTestData.TreeNodeMock(); @@ -241,13 +241,13 @@ public void getPreviousSiblingReturnsCorrect() { } @Test - public void getPreviousSiblingForRootReturnsEmpty() { + void getPreviousSiblingForRootReturnsEmpty() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); assertEquals(Optional.empty(), root.getPreviousSibling()); } @Test - public void getPreviousSiblingForNonexistentReturnsEmpty() { + void getPreviousSiblingForNonexistentReturnsEmpty() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = new TreeNodeTestData.TreeNodeMock(); root.addChild(node); @@ -255,7 +255,7 @@ public void getPreviousSiblingForNonexistentReturnsEmpty() { } @Test - public void getNextSiblingReturnsCorrect() { + void getNextSiblingReturnsCorrect() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); root.addChild(new TreeNodeTestData.TreeNodeMock()); TreeNodeTestData.TreeNodeMock node = new TreeNodeTestData.TreeNodeMock(); @@ -268,13 +268,13 @@ public void getNextSiblingReturnsCorrect() { } @Test - public void getNextSiblingForRootReturnsEmpty() { + void getNextSiblingForRootReturnsEmpty() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); assertEquals(Optional.empty(), root.getNextSibling()); } @Test - public void getNextSiblingForNonexistentReturnsEmpty() { + void getNextSiblingForNonexistentReturnsEmpty() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = new TreeNodeTestData.TreeNodeMock(); root.addChild(node); @@ -282,7 +282,7 @@ public void getNextSiblingForNonexistentReturnsEmpty() { } @Test - public void getParentReturnsCorrect() { + void getParentReturnsCorrect() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeAsChild(root); @@ -290,13 +290,13 @@ public void getParentReturnsCorrect() { } @Test - public void getParentForRootReturnsEmpty() { + void getParentForRootReturnsEmpty() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); assertEquals(Optional.empty(), root.getParent()); } @Test - public void getChildAtReturnsCorrect() { + void getChildAtReturnsCorrect() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeAsChild(root); @@ -304,7 +304,7 @@ public void getChildAtReturnsCorrect() { } @Test - public void getChildAtInvalidIndexReturnsEmpty() { + void getChildAtInvalidIndexReturnsEmpty() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); root.addChild(new TreeNodeTestData.TreeNodeMock()); root.addChild(new TreeNodeTestData.TreeNodeMock()); @@ -312,64 +312,64 @@ public void getChildAtInvalidIndexReturnsEmpty() { } @Test - public void getRootReturnsTrueForRoot() { + void getRootReturnsTrueForRoot() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); assertTrue(root.isRoot()); } @Test - public void getRootReturnsFalseForChild() { + void getRootReturnsFalseForChild() { assertFalse(TreeNodeTestData.getNodeInSimpleTree().isRoot()); } @Test - public void nodeIsAncestorOfItself() { + void nodeIsAncestorOfItself() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); assertTrue(root.isAncestorOf(root)); } @Test - public void isAncestorOfInSimpleTree() { + void isAncestorOfInSimpleTree() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeInSimpleTree(root); assertTrue(root.isAncestorOf(node)); } @Test - public void isAncestorOfInComplexTree() { + void isAncestorOfInComplexTree() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeInComplexTree(root); assertTrue(root.isAncestorOf(node)); } @Test - public void getRootOfSingleNode() { + void getRootOfSingleNode() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); assertEquals(root, root.getRoot()); } @Test - public void getRootInSimpleTree() { + void getRootInSimpleTree() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeInSimpleTree(root); assertEquals(root, node.getRoot()); } @Test - public void getRootInComplexTree() { + void getRootInComplexTree() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeInComplexTree(root); assertEquals(root, node.getRoot()); } @Test - public void isLeafIsCorrectForRootWithoutChildren() { + void isLeafIsCorrectForRootWithoutChildren() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); assertTrue(root.isLeaf()); } @Test - public void removeFromParentSetsParentToEmpty() { + void removeFromParentSetsParentToEmpty() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeAsChild(root); @@ -378,7 +378,7 @@ public void removeFromParentSetsParentToEmpty() { } @Test - public void removeFromParentRemovesNodeFromChildrenCollection() { + void removeFromParentRemovesNodeFromChildrenCollection() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeAsChild(root); @@ -387,7 +387,7 @@ public void removeFromParentRemovesNodeFromChildrenCollection() { } @Test - public void removeAllChildrenSetsParentOfChildToEmpty() { + void removeAllChildrenSetsParentOfChildToEmpty() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeAsChild(root); @@ -396,7 +396,7 @@ public void removeAllChildrenSetsParentOfChildToEmpty() { } @Test - public void removeAllChildrenRemovesAllNodesFromChildrenCollection() { + void removeAllChildrenRemovesAllNodesFromChildrenCollection() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.getNodeAsChild(root); @@ -405,7 +405,7 @@ public void removeAllChildrenRemovesAllNodesFromChildrenCollection() { } @Test - public void getFirstChildAtReturnsCorrect() { + void getFirstChildAtReturnsCorrect() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = new TreeNodeTestData.TreeNodeMock(); root.addChild(node); @@ -414,28 +414,28 @@ public void getFirstChildAtReturnsCorrect() { } @Test - public void getFirstChildAtLeafReturnsEmpty() { + void getFirstChildAtLeafReturnsEmpty() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock leaf = TreeNodeTestData.getNodeAsChild(root); assertEquals(Optional.empty(), leaf.getFirstChild()); } @Test - public void isNodeDescendantInFirstLevel() { + void isNodeDescendantInFirstLevel() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock child = TreeNodeTestData.getNodeAsChild(root); assertTrue(root.isNodeDescendant(child)); } @Test - public void isNodeDescendantInComplex() { + void isNodeDescendantInComplex() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock descendant = TreeNodeTestData.getNodeInComplexTree(root); assertTrue(root.isNodeDescendant(descendant)); } @Test - public void getChildrenReturnsAllChildren() { + void getChildrenReturnsAllChildren() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock child1 = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock child2 = new TreeNodeTestData.TreeNodeMock(); @@ -446,7 +446,7 @@ public void getChildrenReturnsAllChildren() { } @Test - public void removeChildSetsParentToEmpty() { + void removeChildSetsParentToEmpty() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeAsChild(root); @@ -455,7 +455,7 @@ public void removeChildSetsParentToEmpty() { } @Test - public void removeChildRemovesNodeFromChildrenCollection() { + void removeChildRemovesNodeFromChildrenCollection() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeAsChild(root); @@ -464,7 +464,7 @@ public void removeChildRemovesNodeFromChildrenCollection() { } @Test - public void removeChildIndexSetsParentToEmpty() { + void removeChildIndexSetsParentToEmpty() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeAsChild(root); @@ -473,7 +473,7 @@ public void removeChildIndexSetsParentToEmpty() { } @Test - public void removeChildIndexRemovesNodeFromChildrenCollection() { + void removeChildIndexRemovesNodeFromChildrenCollection() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeAsChild(root); @@ -482,14 +482,14 @@ public void removeChildIndexRemovesNodeFromChildrenCollection() { } @Test - public void addThrowsExceptionIfNodeHasParent() { + void addThrowsExceptionIfNodeHasParent() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeAsChild(root); assertThrows(UnsupportedOperationException.class, () -> root.addChild(node)); } @Test - public void moveAllChildrenToAddsAtSpecifiedPosition() { + void moveAllChildrenToAddsAtSpecifiedPosition() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = new TreeNodeTestData.TreeNodeMock(); root.addChild(node); @@ -503,7 +503,7 @@ public void moveAllChildrenToAddsAtSpecifiedPosition() { } @Test - public void moveAllChildrenToChangesParent() { + void moveAllChildrenToChangesParent() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = new TreeNodeTestData.TreeNodeMock(); root.addChild(node); @@ -518,7 +518,7 @@ public void moveAllChildrenToChangesParent() { } @Test - public void moveAllChildrenToDescendantThrowsException() { + void moveAllChildrenToDescendantThrowsException() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeAsChild(root); @@ -526,7 +526,7 @@ public void moveAllChildrenToDescendantThrowsException() { } @Test - public void sortChildrenSortsInFirstLevel() { + void sortChildrenSortsInFirstLevel() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock child1 = new TreeNodeTestData.TreeNodeMock("a"); TreeNodeTestData.TreeNodeMock child2 = new TreeNodeTestData.TreeNodeMock("b"); @@ -540,7 +540,7 @@ public void sortChildrenSortsInFirstLevel() { } @Test - public void sortChildrenRecursiveSortsInDeeperLevel() { + void sortChildrenRecursiveSortsInDeeperLevel() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeInSimpleTree(root); TreeNodeTestData.TreeNodeMock child1 = new TreeNodeTestData.TreeNodeMock("a"); @@ -555,7 +555,7 @@ public void sortChildrenRecursiveSortsInDeeperLevel() { } @Test - public void copySubtreeCopiesChildren() { + void copySubtreeCopiesChildren() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeAsChild(root); @@ -566,7 +566,7 @@ public void copySubtreeCopiesChildren() { } @Test - public void addChildSomewhereInTreeInvokesChangeEvent() { + void addChildSomewhereInTreeInvokesChangeEvent() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeInComplexTree(root); @@ -577,7 +577,7 @@ public void addChildSomewhereInTreeInvokesChangeEvent() { } @Test - public void moveNodeSomewhereInTreeInvokesChangeEvent() { + void moveNodeSomewhereInTreeInvokesChangeEvent() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeInComplexTree(root); TreeNodeTestData.TreeNodeMock oldParent = node.getParent().get(); @@ -590,7 +590,7 @@ public void moveNodeSomewhereInTreeInvokesChangeEvent() { } @Test - public void removeChildSomewhereInTreeInvokesChangeEvent() { + void removeChildSomewhereInTreeInvokesChangeEvent() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeInComplexTree(root); TreeNodeTestData.TreeNodeMock child = node.addChild(new TreeNodeTestData.TreeNodeMock()); @@ -602,7 +602,7 @@ public void removeChildSomewhereInTreeInvokesChangeEvent() { } @Test - public void removeChildIndexSomewhereInTreeInvokesChangeEvent() { + void removeChildIndexSomewhereInTreeInvokesChangeEvent() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); TreeNodeTestData.TreeNodeMock node = TreeNodeTestData.getNodeInComplexTree(root); node.addChild(new TreeNodeTestData.TreeNodeMock()); @@ -614,7 +614,7 @@ public void removeChildIndexSomewhereInTreeInvokesChangeEvent() { } @Test - public void findChildrenWithSameName() throws Exception { + void findChildrenWithSameName() throws Exception { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock("A"); TreeNodeTestData.TreeNodeMock childB = root.addChild(new TreeNodeTestData.TreeNodeMock("B")); TreeNodeTestData.TreeNodeMock node = childB.addChild(new TreeNodeTestData.TreeNodeMock("A")); diff --git a/src/test/java/org/jabref/model/database/BibDatabaseModeDetectionTest.java b/src/test/java/org/jabref/model/database/BibDatabaseModeDetectionTest.java index 30937e8235e..6c204cdf524 100644 --- a/src/test/java/org/jabref/model/database/BibDatabaseModeDetectionTest.java +++ b/src/test/java/org/jabref/model/database/BibDatabaseModeDetectionTest.java @@ -13,19 +13,19 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class BibDatabaseModeDetectionTest { +class BibDatabaseModeDetectionTest { private static final EntryType UNKNOWN_TYPE = new UnknownEntryType("unknowntype"); @Test - public void detectBiblatex() { + void detectBiblatex() { List entries = Arrays.asList(new BibEntry(StandardEntryType.MvBook)); assertEquals(BibDatabaseMode.BIBLATEX, BibDatabaseModeDetection.inferMode(new BibDatabase(entries))); } @Test - public void detectUndistinguishableAsBibtex() { + void detectUndistinguishableAsBibtex() { BibEntry entry = new BibEntry(StandardEntryType.Article); entry.setField(StandardField.TITLE, "My cool paper"); List entries = Arrays.asList(entry); @@ -34,7 +34,7 @@ public void detectUndistinguishableAsBibtex() { } @Test - public void detectMixedModeAsBiblatex() { + void detectMixedModeAsBiblatex() { BibEntry bibtex = new BibEntry(StandardEntryType.Article); bibtex.setField(StandardField.JOURNAL, "IEEE Trans. Services Computing"); BibEntry biblatex = new BibEntry(StandardEntryType.Article); @@ -45,7 +45,7 @@ public void detectMixedModeAsBiblatex() { } @Test - public void detectUnknownTypeAsBibtex() { + void detectUnknownTypeAsBibtex() { BibEntry entry = new BibEntry(UNKNOWN_TYPE); List entries = Arrays.asList(entry); @@ -53,7 +53,7 @@ public void detectUnknownTypeAsBibtex() { } @Test - public void ignoreUnknownTypesForBibtexDecision() { + void ignoreUnknownTypesForBibtexDecision() { BibEntry custom = new BibEntry(UNKNOWN_TYPE); BibEntry bibtex = new BibEntry(StandardEntryType.Article); BibEntry biblatex = new BibEntry(StandardEntryType.Article); @@ -63,7 +63,7 @@ public void ignoreUnknownTypesForBibtexDecision() { } @Test - public void ignoreUnknownTypesForBiblatexDecision() { + void ignoreUnknownTypesForBiblatexDecision() { BibEntry custom = new BibEntry(UNKNOWN_TYPE); BibEntry bibtex = new BibEntry(StandardEntryType.Article); BibEntry biblatex = new BibEntry(StandardEntryType.MvBook); diff --git a/src/test/java/org/jabref/model/database/KeyChangeListenerTest.java b/src/test/java/org/jabref/model/database/KeyChangeListenerTest.java index 1cbe8aaaf9c..3607758901c 100644 --- a/src/test/java/org/jabref/model/database/KeyChangeListenerTest.java +++ b/src/test/java/org/jabref/model/database/KeyChangeListenerTest.java @@ -13,7 +13,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class KeyChangeListenerTest { +class KeyChangeListenerTest { private BibDatabase db; private BibEntry entry1; @@ -22,7 +22,7 @@ public class KeyChangeListenerTest { private BibEntry entry4; @BeforeEach - public void setUp() { + void setUp() { db = new BibDatabase(); entry1 = new BibEntry(); @@ -46,46 +46,46 @@ public void setUp() { } @Test - public void crossrefChanged() { + void crossrefChanged() { assertEquals(Optional.of("Entry4"), entry1.getField(StandardField.CROSSREF)); entry4.setCitationKey("Banana"); assertEquals(Optional.of("Banana"), entry1.getField(StandardField.CROSSREF)); } @Test - public void relatedChanged() { + void relatedChanged() { assertEquals(Optional.of("Entry1,Entry3"), entry2.getField(StandardField.RELATED)); entry1.setCitationKey("Banana"); assertEquals(Optional.of("Banana,Entry3"), entry2.getField(StandardField.RELATED)); } @Test - public void relatedChangedInSameEntry() { + void relatedChangedInSameEntry() { assertEquals(Optional.of("Entry1,Entry2,Entry3"), entry3.getField(StandardField.RELATED)); entry3.setCitationKey("Banana"); assertEquals(Optional.of("Entry1,Entry2,Banana"), entry3.getField(StandardField.RELATED)); } @Test - public void crossrefRemoved() { + void crossrefRemoved() { entry4.clearField(InternalField.KEY_FIELD); assertEquals(Optional.empty(), entry1.getField(StandardField.CROSSREF)); } @Test - public void crossrefEntryRemoved() { + void crossrefEntryRemoved() { db.removeEntry(entry4); assertEquals(Optional.empty(), entry1.getField(StandardField.CROSSREF)); } @Test - public void relatedEntryRemoved() { + void relatedEntryRemoved() { db.removeEntry(entry1); assertEquals(Optional.of("Entry3"), entry2.getField(StandardField.RELATED)); } @Test - public void relatedAllEntriesRemoved() { + void relatedAllEntriesRemoved() { List entries = Arrays.asList(entry1, entry3); db.removeEntries(entries); assertEquals(Optional.empty(), entry2.getField(StandardField.RELATED)); diff --git a/src/test/java/org/jabref/model/entry/AuthorListTest.java b/src/test/java/org/jabref/model/entry/AuthorListTest.java index 3e70d786ccb..90216475e53 100644 --- a/src/test/java/org/jabref/model/entry/AuthorListTest.java +++ b/src/test/java/org/jabref/model/entry/AuthorListTest.java @@ -47,7 +47,7 @@ public static int size(String bibtex) { } @Test - public void fixAuthorNatbib() { + void fixAuthorNatbib() { assertEquals("", AuthorList.fixAuthorNatbib("")); assertEquals("Smith", AuthorList.fixAuthorNatbib("John Smith")); assertEquals("Smith and Black Brown", AuthorList @@ -57,54 +57,54 @@ public void fixAuthorNatbib() { } @Test - public void getAsNatbibLatexFreeEmptyAuthorStringForEmptyInput() { + void getAsNatbibLatexFreeEmptyAuthorStringForEmptyInput() { assertEquals("", EMPTY_AUTHOR.latexFree().getAsNatbib()); } @Test - public void getAsNatbibLatexFreeUnicodeOneAuthorNameFromLatex() { + void getAsNatbibLatexFreeUnicodeOneAuthorNameFromLatex() { assertEquals("al-Khwārizmī", ONE_AUTHOR_WITH_LATEX.latexFree().getAsNatbib()); } @Test - public void getAsNatbibLatexFreeUnicodeTwoAuthorNamesFromLatex() { + void getAsNatbibLatexFreeUnicodeTwoAuthorNamesFromLatex() { assertEquals("al-Khwārizmī and Böhm", TWO_AUTHORS_WITH_LATEX.latexFree().getAsNatbib()); } @Test - public void getAsNatbibLatexFreeUnicodeAuthorEtAlFromLatex() { + void getAsNatbibLatexFreeUnicodeAuthorEtAlFromLatex() { assertEquals("al-Khwārizmī et al.", THREE_AUTHORS_WITH_LATEX.latexFree().getAsNatbib()); } @Test - public void getAsNatbibLatexFreeUnicodeOneInsitutionNameFromLatex() { + void getAsNatbibLatexFreeUnicodeOneInsitutionNameFromLatex() { assertEquals("The Banū Mūsā brothers", ONE_INSTITUTION_WITH_LATEX.latexFree().getAsNatbib()); } @Test - public void getAsNatbibLatexFreeUnicodeTwoInsitutionNameFromLatex() { + void getAsNatbibLatexFreeUnicodeTwoInsitutionNameFromLatex() { assertEquals("The Banū Mūsā brothers and The Banū Mūsā brothers", TWO_INSTITUTIONS_WITH_LATEX.latexFree().getAsNatbib()); } @Test - public void getAsNatbibLatexFreeUnicodeMixedAuthorsFromLatex() { + void getAsNatbibLatexFreeUnicodeMixedAuthorsFromLatex() { assertEquals("The Banū Mūsā brothers and Böhm", MIXED_AUTHOR_AND_INSTITUTION_WITH_LATEX.latexFree().getAsNatbib()); } @Test - public void getAsNatbibLatexFreeOneInstitutionWithParanthesisAtStart() { + void getAsNatbibLatexFreeOneInstitutionWithParanthesisAtStart() { assertEquals("Łukasz Michał", ONE_INSTITUTION_WITH_STARTING_PARANTHESIS.latexFree().getAsNatbib()); } @Test - public void parseCachesOneAuthor() { + void parseCachesOneAuthor() { // Test caching in authorCache. AuthorList authorList = AuthorList.parse("John Smith"); assertSame(authorList, AuthorList.parse("John Smith")); @@ -112,7 +112,7 @@ public void parseCachesOneAuthor() { } @Test - public void parseCachesOneLatexFreeAuthor() { + void parseCachesOneLatexFreeAuthor() { // Test caching in authorCache. AuthorList authorList = AuthorList.parse("John Smith").latexFree(); assertSame(authorList, AuthorList.parse("John Smith").latexFree()); @@ -120,7 +120,7 @@ public void parseCachesOneLatexFreeAuthor() { } @Test - public void fixAuthorFirstNameFirstCommas() { + void fixAuthorFirstNameFirstCommas() { // No Commas assertEquals("", AuthorList.fixAuthorFirstNameFirstCommas("", true, false)); assertEquals("", AuthorList.fixAuthorFirstNameFirstCommas("", false, false)); @@ -184,112 +184,112 @@ public void fixAuthorFirstNameFirstCommas() { } @Test - public void getAsFirstLastNamesLatexFreeEmptyAuthorStringForEmptyInputAbbreviate() { + void getAsFirstLastNamesLatexFreeEmptyAuthorStringForEmptyInputAbbreviate() { assertEquals("", EMPTY_AUTHOR.latexFree().getAsFirstLastNames(true, false)); } @Test - public void getAsFirstLastNamesLatexFreeUnicodeOneAuthorNameFromLatexAbbreviate() { + void getAsFirstLastNamesLatexFreeUnicodeOneAuthorNameFromLatexAbbreviate() { assertEquals("M. al-Khwārizmī", ONE_AUTHOR_WITH_LATEX.latexFree().getAsFirstLastNames(true, false)); } @Test - public void getAsFirstLastNamesLatexFreeUnicodeTwoAuthorNamesFromLatexAbbreviate() { + void getAsFirstLastNamesLatexFreeUnicodeTwoAuthorNamesFromLatexAbbreviate() { assertEquals("M. al-Khwārizmī and C. Böhm", TWO_AUTHORS_WITH_LATEX.latexFree().getAsFirstLastNames(true, false)); } @Test - public void getAsFirstLastNamesLatexFreeUnicodeTwoAuthorNamesFromLatexAbbreviateAndOxfordComma() { + void getAsFirstLastNamesLatexFreeUnicodeTwoAuthorNamesFromLatexAbbreviateAndOxfordComma() { assertEquals("M. al-Khwārizmī and C. Böhm", TWO_AUTHORS_WITH_LATEX.latexFree().getAsFirstLastNames(true, true)); } @Test - public void getAsFirstLastNamesLatexFreeThreeUnicodeAuthorsFromLatexAbbreviate() { + void getAsFirstLastNamesLatexFreeThreeUnicodeAuthorsFromLatexAbbreviate() { assertEquals("M. al-Khwārizmī, C. Böhm and K. Gödel", THREE_AUTHORS_WITH_LATEX.latexFree().getAsFirstLastNames(true, false)); } @Test - public void getAsFirstLastNamesLatexFreeThreeUnicodeAuthorsFromLatexAbbreviateAndOxfordComma() { + void getAsFirstLastNamesLatexFreeThreeUnicodeAuthorsFromLatexAbbreviateAndOxfordComma() { assertEquals("M. al-Khwārizmī, C. Böhm, and K. Gödel", THREE_AUTHORS_WITH_LATEX.latexFree().getAsFirstLastNames(true, true)); } @Test - public void getAsFirstLastNamesLatexFreeUnicodeOneInsitutionNameFromLatexAbbreviate() { + void getAsFirstLastNamesLatexFreeUnicodeOneInsitutionNameFromLatexAbbreviate() { assertEquals("The Banū Mūsā brothers", ONE_INSTITUTION_WITH_LATEX.latexFree().getAsFirstLastNames(true, false)); } @Test - public void getAsFirstLastNamesLatexFreeUnicodeTwoInsitutionNameFromLatexAbbreviate() { + void getAsFirstLastNamesLatexFreeUnicodeTwoInsitutionNameFromLatexAbbreviate() { assertEquals("The Banū Mūsā brothers and The Banū Mūsā brothers", TWO_INSTITUTIONS_WITH_LATEX.latexFree().getAsFirstLastNames(true, false)); } @Test - public void getAsFirstLastNamesLatexFreeUnicodeMixedAuthorsFromLatexAbbreviate() { + void getAsFirstLastNamesLatexFreeUnicodeMixedAuthorsFromLatexAbbreviate() { assertEquals("The Banū Mūsā brothers and C. Böhm", MIXED_AUTHOR_AND_INSTITUTION_WITH_LATEX.latexFree().getAsFirstLastNames(true, false)); } @Test - public void getAsFirstLastNamesLatexFreeOneInstitutionWithParanthesisAtStartAbbreviate() { + void getAsFirstLastNamesLatexFreeOneInstitutionWithParanthesisAtStartAbbreviate() { assertEquals("Łukasz Michał", ONE_INSTITUTION_WITH_STARTING_PARANTHESIS.latexFree().getAsFirstLastNames(true, false)); } @Test - public void getAsFirstLastNamesLatexFreeEmptyAuthorStringForEmptyInput() { + void getAsFirstLastNamesLatexFreeEmptyAuthorStringForEmptyInput() { assertEquals("", EMPTY_AUTHOR.latexFree().getAsFirstLastNames(false, false)); } @Test - public void getAsFirstLastNamesLatexFreeUnicodeOneAuthorNameFromLatex() { + void getAsFirstLastNamesLatexFreeUnicodeOneAuthorNameFromLatex() { assertEquals("Muḥammad al-Khwārizmī", ONE_AUTHOR_WITH_LATEX.latexFree().getAsFirstLastNames(false, false)); } @Test - public void getAsFirstLastNamesLatexFreeUnicodeTwoAuthorNamesFromLatex() { + void getAsFirstLastNamesLatexFreeUnicodeTwoAuthorNamesFromLatex() { assertEquals("Muḥammad al-Khwārizmī and Corrado Böhm", TWO_AUTHORS_WITH_LATEX.latexFree().getAsFirstLastNames(false, false)); } @Test - public void getAsFirstLastNamesLatexFreeThreeUnicodeAuthorsFromLatex() { + void getAsFirstLastNamesLatexFreeThreeUnicodeAuthorsFromLatex() { assertEquals("Muḥammad al-Khwārizmī, Corrado Böhm and Kurt Gödel", THREE_AUTHORS_WITH_LATEX.latexFree().getAsFirstLastNames(false, false)); } @Test - public void getAsFirstLastNamesLatexFreeUnicodeOneInsitutionNameFromLatex() { + void getAsFirstLastNamesLatexFreeUnicodeOneInsitutionNameFromLatex() { assertEquals("The Banū Mūsā brothers", ONE_INSTITUTION_WITH_LATEX.latexFree().getAsFirstLastNames(false, false)); } @Test - public void getAsFirstLastNamesLatexFreeUnicodeTwoInsitutionNameFromLatex() { + void getAsFirstLastNamesLatexFreeUnicodeTwoInsitutionNameFromLatex() { assertEquals("The Banū Mūsā brothers and The Banū Mūsā brothers", TWO_INSTITUTIONS_WITH_LATEX.latexFree().getAsFirstLastNames(false, false)); } @Test - public void getAsFirstLastNamesLatexFreeUnicodeMixedAuthorsFromLatex() { + void getAsFirstLastNamesLatexFreeUnicodeMixedAuthorsFromLatex() { assertEquals("The Banū Mūsā brothers and Corrado Böhm", MIXED_AUTHOR_AND_INSTITUTION_WITH_LATEX.latexFree().getAsFirstLastNames(false, false)); } @Test - public void getAsFirstLastNamesLatexFreeOneInstitutionWithParanthesisAtStart() { + void getAsFirstLastNamesLatexFreeOneInstitutionWithParanthesisAtStart() { assertEquals("Łukasz Michał", ONE_INSTITUTION_WITH_STARTING_PARANTHESIS.latexFree().getAsFirstLastNames(false, false)); } @Test - public void fixAuthorFirstNameFirst() { + void fixAuthorFirstNameFirst() { assertEquals("John Smith", AuthorList.fixAuthorFirstNameFirst("John Smith")); assertEquals("John Smith and Peter Black Brown", AuthorList @@ -308,7 +308,7 @@ public void fixAuthorFirstNameFirst() { } @Test - public void fixAuthorLastNameFirstCommasNoComma() { + void fixAuthorLastNameFirstCommasNoComma() { // No commas before and assertEquals("", AuthorList.fixAuthorLastNameFirstCommas("", true, false)); assertEquals("", AuthorList.fixAuthorLastNameFirstCommas("", false, false)); @@ -339,7 +339,7 @@ public void fixAuthorLastNameFirstCommasNoComma() { } @Test - public void fixAuthorLastNameFirstCommasOxfordComma() { + void fixAuthorLastNameFirstCommasOxfordComma() { // Oxford Commas assertEquals("", AuthorList.fixAuthorLastNameFirstCommas("", true, true)); assertEquals("", AuthorList.fixAuthorLastNameFirstCommas("", false, true)); @@ -374,195 +374,195 @@ public void fixAuthorLastNameFirstCommasOxfordComma() { } @Test - public void getAsLastFirstNamesLatexFreeEmptyAuthorStringForEmptyInputAbbr() { + void getAsLastFirstNamesLatexFreeEmptyAuthorStringForEmptyInputAbbr() { assertEquals("", EMPTY_AUTHOR.latexFree().getAsLastFirstNames(true, false)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeOneAuthorNameFromLatexAbbr() { + void getAsLastFirstNamesLatexFreeUnicodeOneAuthorNameFromLatexAbbr() { assertEquals("al-Khwārizmī, M.", ONE_AUTHOR_WITH_LATEX.latexFree().getAsLastFirstNames(true, false)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeTwoAuthorNamesFromLatexAbbr() { + void getAsLastFirstNamesLatexFreeUnicodeTwoAuthorNamesFromLatexAbbr() { assertEquals("al-Khwārizmī, M. and Böhm, C.", TWO_AUTHORS_WITH_LATEX.latexFree().getAsLastFirstNames(true, false)); } @Test - public void getAsLastFirstNamesLatexFreeThreeUnicodeAuthorsFromLatexAbbr() { + void getAsLastFirstNamesLatexFreeThreeUnicodeAuthorsFromLatexAbbr() { assertEquals("al-Khwārizmī, M., Böhm, C. and Gödel, K.", THREE_AUTHORS_WITH_LATEX.latexFree().getAsLastFirstNames(true, false)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeOneInsitutionNameFromLatexAbbr() { + void getAsLastFirstNamesLatexFreeUnicodeOneInsitutionNameFromLatexAbbr() { assertEquals("The Banū Mūsā brothers", ONE_INSTITUTION_WITH_LATEX.latexFree().getAsLastFirstNames(true, false)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeTwoInsitutionNameFromLatexAbbr() { + void getAsLastFirstNamesLatexFreeUnicodeTwoInsitutionNameFromLatexAbbr() { assertEquals("The Banū Mūsā brothers and The Banū Mūsā brothers", TWO_INSTITUTIONS_WITH_LATEX.latexFree().getAsLastFirstNames(true, false)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeMixedAuthorsFromLatexAbbr() { + void getAsLastFirstNamesLatexFreeUnicodeMixedAuthorsFromLatexAbbr() { assertEquals("The Banū Mūsā brothers and Böhm, C.", MIXED_AUTHOR_AND_INSTITUTION_WITH_LATEX.latexFree().getAsLastFirstNames(true, false)); } @Test - public void getAsLastFirstNamesLatexFreeOneInstitutionWithParanthesisAtStartAbbr() { + void getAsLastFirstNamesLatexFreeOneInstitutionWithParanthesisAtStartAbbr() { assertEquals("Łukasz Michał", ONE_INSTITUTION_WITH_STARTING_PARANTHESIS.latexFree().getAsLastFirstNames(true, false)); } @Test - public void getAsLastFirstNamesLatexFreeEmptyAuthorStringForEmptyInput() { + void getAsLastFirstNamesLatexFreeEmptyAuthorStringForEmptyInput() { assertEquals("", EMPTY_AUTHOR.latexFree().getAsLastFirstNames(false, false)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeOneAuthorNameFromLatex() { + void getAsLastFirstNamesLatexFreeUnicodeOneAuthorNameFromLatex() { assertEquals("al-Khwārizmī, Muḥammad", ONE_AUTHOR_WITH_LATEX.latexFree().getAsLastFirstNames(false, false)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeTwoAuthorNamesFromLatex() { + void getAsLastFirstNamesLatexFreeUnicodeTwoAuthorNamesFromLatex() { assertEquals("al-Khwārizmī, Muḥammad and Böhm, Corrado", TWO_AUTHORS_WITH_LATEX.latexFree().getAsLastFirstNames(false, false)); } @Test - public void getAsLastFirstNamesLatexFreeThreeUnicodeAuthorsFromLatex() { + void getAsLastFirstNamesLatexFreeThreeUnicodeAuthorsFromLatex() { assertEquals("al-Khwārizmī, Muḥammad, Böhm, Corrado and Gödel, Kurt", THREE_AUTHORS_WITH_LATEX.latexFree().getAsLastFirstNames(false, false)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeOneInsitutionNameFromLatex() { + void getAsLastFirstNamesLatexFreeUnicodeOneInsitutionNameFromLatex() { assertEquals("The Banū Mūsā brothers", ONE_INSTITUTION_WITH_LATEX.latexFree().getAsLastFirstNames(false, false)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeTwoInsitutionNameFromLatex() { + void getAsLastFirstNamesLatexFreeUnicodeTwoInsitutionNameFromLatex() { assertEquals("The Banū Mūsā brothers and The Banū Mūsā brothers", TWO_INSTITUTIONS_WITH_LATEX.latexFree().getAsLastFirstNames(false, false)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeMixedAuthorsFromLatex() { + void getAsLastFirstNamesLatexFreeUnicodeMixedAuthorsFromLatex() { assertEquals("The Banū Mūsā brothers and Böhm, Corrado", MIXED_AUTHOR_AND_INSTITUTION_WITH_LATEX.latexFree().getAsLastFirstNames(false, false)); } @Test - public void getAsLastFirstNamesLatexFreeOneInstitutionWithParanthesisAtStart() { + void getAsLastFirstNamesLatexFreeOneInstitutionWithParanthesisAtStart() { assertEquals("Łukasz Michał", ONE_INSTITUTION_WITH_STARTING_PARANTHESIS.latexFree().getAsLastFirstNames(false, false)); } @Test - public void getAsLastFirstNamesLatexFreeEmptyAuthorStringForEmptyInputAbbrOxfordComma() { + void getAsLastFirstNamesLatexFreeEmptyAuthorStringForEmptyInputAbbrOxfordComma() { assertEquals("", EMPTY_AUTHOR.latexFree().getAsLastFirstNames(true, true)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeOneAuthorNameFromLatexAbbrOxfordComma() { + void getAsLastFirstNamesLatexFreeUnicodeOneAuthorNameFromLatexAbbrOxfordComma() { assertEquals("al-Khwārizmī, M.", ONE_AUTHOR_WITH_LATEX.latexFree().getAsLastFirstNames(true, true)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeTwoAuthorNamesFromLatexAbbrOxfordComma() { + void getAsLastFirstNamesLatexFreeUnicodeTwoAuthorNamesFromLatexAbbrOxfordComma() { assertEquals("al-Khwārizmī, M. and Böhm, C.", TWO_AUTHORS_WITH_LATEX.latexFree().getAsLastFirstNames(true, true)); } @Test - public void getAsLastFirstNamesLatexFreeThreeUnicodeAuthorsFromLatexAbbrOxfordComma() { + void getAsLastFirstNamesLatexFreeThreeUnicodeAuthorsFromLatexAbbrOxfordComma() { assertEquals("al-Khwārizmī, M., Böhm, C., and Gödel, K.", THREE_AUTHORS_WITH_LATEX.latexFree().getAsLastFirstNames(true, true)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeOneInsitutionNameFromLatexAbbrOxfordComma() { + void getAsLastFirstNamesLatexFreeUnicodeOneInsitutionNameFromLatexAbbrOxfordComma() { assertEquals("The Banū Mūsā brothers", ONE_INSTITUTION_WITH_LATEX.latexFree().getAsLastFirstNames(true, true)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeTwoInsitutionNameFromLatexAbbrOxfordComma() { + void getAsLastFirstNamesLatexFreeUnicodeTwoInsitutionNameFromLatexAbbrOxfordComma() { assertEquals("The Banū Mūsā brothers and The Banū Mūsā brothers", TWO_INSTITUTIONS_WITH_LATEX.latexFree().getAsLastFirstNames(true, true)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeMixedAuthorsFromLatexAbbrOxfordComma() { + void getAsLastFirstNamesLatexFreeUnicodeMixedAuthorsFromLatexAbbrOxfordComma() { assertEquals("The Banū Mūsā brothers and Böhm, C.", MIXED_AUTHOR_AND_INSTITUTION_WITH_LATEX.latexFree().getAsLastFirstNames(true, true)); } @Test - public void getAsLastFirstNamesLatexFreeOneInstitutionWithParanthesisAtStartAbbrOxfordComma() { + void getAsLastFirstNamesLatexFreeOneInstitutionWithParanthesisAtStartAbbrOxfordComma() { assertEquals("Łukasz Michał", ONE_INSTITUTION_WITH_STARTING_PARANTHESIS.latexFree().getAsLastFirstNames(true, true)); } @Test - public void getAsLastFirstNamesLatexFreeEmptyAuthorStringForEmptyInputOxfordComma() { + void getAsLastFirstNamesLatexFreeEmptyAuthorStringForEmptyInputOxfordComma() { assertEquals("", EMPTY_AUTHOR.latexFree().getAsLastFirstNames(false, true)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeOneAuthorNameFromLatexOxfordComma() { + void getAsLastFirstNamesLatexFreeUnicodeOneAuthorNameFromLatexOxfordComma() { assertEquals("al-Khwārizmī, Muḥammad", ONE_AUTHOR_WITH_LATEX.latexFree().getAsLastFirstNames(false, true)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeTwoAuthorNamesFromLatexOxfordComma() { + void getAsLastFirstNamesLatexFreeUnicodeTwoAuthorNamesFromLatexOxfordComma() { assertEquals("al-Khwārizmī, Muḥammad and Böhm, Corrado", TWO_AUTHORS_WITH_LATEX.latexFree().getAsLastFirstNames(false, true)); } @Test - public void getAsLastFirstNamesLatexFreeThreeUnicodeAuthorsFromLatexOxfordComma() { + void getAsLastFirstNamesLatexFreeThreeUnicodeAuthorsFromLatexOxfordComma() { assertEquals("al-Khwārizmī, Muḥammad, Böhm, Corrado, and Gödel, Kurt", THREE_AUTHORS_WITH_LATEX.latexFree().getAsLastFirstNames(false, true)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeOneInsitutionNameFromLatexOxfordComma() { + void getAsLastFirstNamesLatexFreeUnicodeOneInsitutionNameFromLatexOxfordComma() { assertEquals("The Banū Mūsā brothers", ONE_INSTITUTION_WITH_LATEX.latexFree().getAsLastFirstNames(false, true)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeTwoInsitutionNameFromLatexOxfordComma() { + void getAsLastFirstNamesLatexFreeUnicodeTwoInsitutionNameFromLatexOxfordComma() { assertEquals("The Banū Mūsā brothers and The Banū Mūsā brothers", TWO_INSTITUTIONS_WITH_LATEX.latexFree().getAsLastFirstNames(false, true)); } @Test - public void getAsLastFirstNamesLatexFreeUnicodeMixedAuthorsFromLatexOxfordComma() { + void getAsLastFirstNamesLatexFreeUnicodeMixedAuthorsFromLatexOxfordComma() { assertEquals("The Banū Mūsā brothers and Böhm, Corrado", MIXED_AUTHOR_AND_INSTITUTION_WITH_LATEX.latexFree().getAsLastFirstNames(false, true)); } @Test - public void getAsLastFirstNamesLatexFreeOneInstitutionWithParanthesisAtStartOxfordComma() { + void getAsLastFirstNamesLatexFreeOneInstitutionWithParanthesisAtStartOxfordComma() { assertEquals("Łukasz Michał", ONE_INSTITUTION_WITH_STARTING_PARANTHESIS.latexFree().getAsLastFirstNames(false, true)); } @Test - public void fixAuthorLastNameFirst() { + void fixAuthorLastNameFirst() { // Test helper method assertEquals("Smith, John", AuthorList.fixAuthorLastNameFirst("John Smith")); @@ -616,7 +616,7 @@ public void fixAuthorLastNameFirst() { } @Test - public void fixAuthorLastNameOnlyCommas() { + void fixAuthorLastNameOnlyCommas() { // No comma before and assertEquals("", AuthorList.fixAuthorLastNameOnlyCommas("", false)); assertEquals("Smith", AuthorList.fixAuthorLastNameOnlyCommas("John Smith", false)); @@ -644,55 +644,55 @@ public void fixAuthorLastNameOnlyCommas() { } @Test - public void getAsLastNamesLatexFreeUnicodeOneAuthorNameFromLatex() { + void getAsLastNamesLatexFreeUnicodeOneAuthorNameFromLatex() { assertEquals("al-Khwārizmī", ONE_AUTHOR_WITH_LATEX.latexFree().getAsLastNames(false)); } @Test - public void getAsLastNamesLatexFreeUnicodeTwoAuthorNamesFromLatex() { + void getAsLastNamesLatexFreeUnicodeTwoAuthorNamesFromLatex() { assertEquals("al-Khwārizmī and Böhm", TWO_AUTHORS_WITH_LATEX.latexFree().getAsLastNames(false)); } @Test - public void getAsLastNamesLatexFreeUnicodeTwoAuthorNamesFromLatexUsingOxfordComma() { + void getAsLastNamesLatexFreeUnicodeTwoAuthorNamesFromLatexUsingOxfordComma() { assertEquals("al-Khwārizmī and Böhm", TWO_AUTHORS_WITH_LATEX.latexFree().getAsLastNames(true)); } @Test - public void getAsLastNamesLatexFreeUnicodeThreeAuthorsFromLatex() { + void getAsLastNamesLatexFreeUnicodeThreeAuthorsFromLatex() { assertEquals("al-Khwārizmī, Böhm and Gödel", THREE_AUTHORS_WITH_LATEX.latexFree().getAsLastNames(false)); } @Test - public void getAsLastNamesLatexFreeUnicodeThreeAuthorsFromLatexUsingOxfordComma() { + void getAsLastNamesLatexFreeUnicodeThreeAuthorsFromLatexUsingOxfordComma() { assertEquals("al-Khwārizmī, Böhm, and Gödel", THREE_AUTHORS_WITH_LATEX.latexFree().getAsLastNames(true)); } @Test - public void getAsLastNamesLatexFreeUnicodeOneInsitutionNameFromLatex() { + void getAsLastNamesLatexFreeUnicodeOneInsitutionNameFromLatex() { assertEquals("The Banū Mūsā brothers", ONE_INSTITUTION_WITH_LATEX.latexFree().getAsLastNames(false)); } @Test - public void getAsLastNamesLatexFreeUnicodeTwoInsitutionNameFromLatex() { + void getAsLastNamesLatexFreeUnicodeTwoInsitutionNameFromLatex() { assertEquals("The Banū Mūsā brothers and The Banū Mūsā brothers", TWO_INSTITUTIONS_WITH_LATEX.latexFree().getAsLastNames(false)); } @Test - public void getAsLastNamesLatexFreeUnicodeMixedAuthorsFromLatex() { + void getAsLastNamesLatexFreeUnicodeMixedAuthorsFromLatex() { assertEquals("The Banū Mūsā brothers and Böhm", MIXED_AUTHOR_AND_INSTITUTION_WITH_LATEX.latexFree().getAsLastNames(false)); } @Test - public void getAsLastNamesLatexFreeOneInstitutionWithParanthesisAtStart() { + void getAsLastNamesLatexFreeOneInstitutionWithParanthesisAtStart() { assertEquals("Łukasz Michał", ONE_INSTITUTION_WITH_STARTING_PARANTHESIS.latexFree().getAsLastNames(false)); } @Test - public void fixAuthorForAlphabetization() { + void fixAuthorForAlphabetization() { assertEquals("Smith, J.", AuthorList.fixAuthorForAlphabetization("John Smith")); assertEquals("Neumann, J.", AuthorList.fixAuthorForAlphabetization("John von Neumann")); assertEquals("Neumann, J.", AuthorList.fixAuthorForAlphabetization("J. von Neumann")); @@ -703,7 +703,7 @@ public void fixAuthorForAlphabetization() { } @Test - public void size() { + void size() { assertEquals(0, AuthorListTest.size("")); assertEquals(1, AuthorListTest.size("Bar")); assertEquals(1, AuthorListTest.size("Foo Bar")); @@ -725,18 +725,18 @@ public void size() { } @Test - public void isEmpty() { + void isEmpty() { assertTrue(AuthorList.parse("").isEmpty()); assertFalse(AuthorList.parse("Bar").isEmpty()); } @Test - public void getEmptyAuthor() { + void getEmptyAuthor() { assertThrows(Exception.class, () -> AuthorList.parse("").getAuthor(0)); } @Test - public void getAuthor() { + void getAuthor() { Author author = AuthorList.parse("John Smith and von Neumann, Jr, John").getAuthor(0); assertEquals(Optional.of("John"), author.getGivenName()); assertEquals(Optional.of("J."), author.getGivenNameAbbreviated()); @@ -773,35 +773,35 @@ public void getAuthor() { } @Test - public void companyAuthor() { + void companyAuthor() { Author author = AuthorList.parse("{JabRef Developers}").getAuthor(0); Author expected = new Author(null, null, null, "{JabRef Developers}", null); assertEquals(expected, author); } @Test - public void companyAuthorAndPerson() { + void companyAuthorAndPerson() { Author company = new Author(null, null, null, "{JabRef Developers}", null); Author person = new Author("Stefan", "S.", null, "Kolb", null); assertEquals(Arrays.asList(company, person), AuthorList.parse("{JabRef Developers} and Stefan Kolb").getAuthors()); } @Test - public void companyAuthorWithLowerCaseWord() { + void companyAuthorWithLowerCaseWord() { Author author = AuthorList.parse("{JabRef Developers on Fire}").getAuthor(0); Author expected = new Author(null, null, null, "{JabRef Developers on Fire}", null); assertEquals(expected, author); } @Test - public void abbreviationWithRelax() { + void abbreviationWithRelax() { Author author = AuthorList.parse("{\\relax Ch}ristoph Cholera").getAuthor(0); Author expected = new Author("{\\relax Ch}ristoph", "{\\relax Ch}.", null, "Cholera", null); assertEquals(expected, author); } @Test - public void getAuthorsNatbib() { + void getAuthorsNatbib() { assertEquals("", AuthorList.parse("").getAsNatbib()); assertEquals("Smith", AuthorList.parse("John Smith").getAsNatbib()); assertEquals("Smith and Black Brown", AuthorList.parse( @@ -822,7 +822,7 @@ public void getAuthorsNatbib() { } @Test - public void getAuthorsLastOnly() { + void getAuthorsLastOnly() { // No comma before and assertEquals("", AuthorList.parse("").getAsLastNames(false)); assertEquals("Smith", AuthorList.parse("John Smith").getAsLastNames(false)); @@ -845,7 +845,7 @@ public void getAuthorsLastOnly() { } @Test - public void getAuthorsLastFirstNoComma() { + void getAuthorsLastFirstNoComma() { // No commas before and AuthorList al; @@ -873,7 +873,7 @@ public void getAuthorsLastFirstNoComma() { } @Test - public void getAuthorsLastFirstOxfordComma() { + void getAuthorsLastFirstOxfordComma() { // Oxford comma AuthorList al; @@ -900,7 +900,7 @@ public void getAuthorsLastFirstOxfordComma() { } @Test - public void getAuthorsLastFirstAnds() { + void getAuthorsLastFirstAnds() { assertEquals("Smith, John", AuthorList.parse("John Smith").getAsLastFirstNamesWithAnd( false)); assertEquals("Smith, John and Black Brown, Peter", AuthorList.parse( @@ -922,7 +922,7 @@ public void getAuthorsLastFirstAnds() { } @Test - public void getAuthorsFirstFirst() { + void getAuthorsFirstFirst() { AuthorList al; al = AuthorList.parse(""); @@ -961,7 +961,7 @@ public void getAuthorsFirstFirst() { } @Test - public void getAuthorsFirstFirstAnds() { + void getAuthorsFirstFirstAnds() { assertEquals("John Smith", AuthorList.parse("John Smith") .getAsFirstLastNamesWithAnd()); assertEquals("John Smith and Peter Black Brown", AuthorList.parse( @@ -974,7 +974,7 @@ public void getAuthorsFirstFirstAnds() { } @Test - public void getAuthorsForAlphabetization() { + void getAuthorsForAlphabetization() { assertEquals("Smith, J.", AuthorList.parse("John Smith") .getForAlphabetization()); assertEquals("Neumann, J.", AuthorList.parse("John von Neumann") @@ -987,7 +987,7 @@ public void getAuthorsForAlphabetization() { } @Test - public void removeStartAndEndBraces() { + void removeStartAndEndBraces() { assertEquals("{A}bbb{c}", AuthorList.parse("{A}bbb{c}").getAsLastNames(false)); assertEquals("{Vall{\\'e}e Poussin}", AuthorList.parse("{Vall{\\'e}e Poussin}").getAsLastNames(false)); assertEquals("Poussin", AuthorList.parse("{Vall{\\'e}e} {Poussin}").getAsLastNames(false)); @@ -997,50 +997,50 @@ public void removeStartAndEndBraces() { } @Test - public void createCorrectInitials() { + void createCorrectInitials() { assertEquals(Optional.of("J. G."), AuthorList.parse("Hornberg, Johann Gottfried").getAuthor(0).getGivenNameAbbreviated()); } @Test - public void parseNameWithBracesAroundFirstName() throws Exception { + void parseNameWithBracesAroundFirstName() throws Exception { // TODO: Be more intelligent and abbreviate the first name correctly Author expected = new Author("Tse-tung", "{Tse-tung}.", null, "Mao", null); assertEquals(AuthorList.of(expected), AuthorList.parse("{Tse-tung} Mao")); } @Test - public void parseNameWithBracesAroundLastName() throws Exception { + void parseNameWithBracesAroundLastName() throws Exception { Author expected = new Author("Hans", "H.", null, "van den Bergen", null); assertEquals(AuthorList.of(expected), AuthorList.parse("{van den Bergen}, Hans")); } @Test - public void parseNameWithHyphenInFirstName() throws Exception { + void parseNameWithHyphenInFirstName() throws Exception { Author expected = new Author("Tse-tung", "T.-t.", null, "Mao", null); assertEquals(AuthorList.of(expected), AuthorList.parse("Tse-tung Mao")); } @Test - public void parseNameWithHyphenInLastName() throws Exception { + void parseNameWithHyphenInLastName() throws Exception { Author expected = new Author("Firstname", "F.", null, "Bailey-Jones", null); assertEquals(AuthorList.of(expected), AuthorList.parse("Firstname Bailey-Jones")); } @Test - public void parseNameWithHyphenInLastNameWithInitials() throws Exception { + void parseNameWithHyphenInLastNameWithInitials() throws Exception { Author expected = new Author("E. S.", "E. S.", null, "El-{M}allah", null); assertEquals(AuthorList.of(expected), AuthorList.parse("E. S. El-{M}allah")); } @Test - public void parseNameWithHyphenInLastNameWithEscaped() throws Exception { + void parseNameWithHyphenInLastNameWithEscaped() throws Exception { Author expected = new Author("E. S.", "E. S.", null, "{K}ent-{B}oswell", null); assertEquals(AuthorList.of(expected), AuthorList.parse("E. S. {K}ent-{B}oswell")); } @Test - public void parseNameWithHyphenInLastNameWhenLastNameGivenFirst() throws Exception { + void parseNameWithHyphenInLastNameWhenLastNameGivenFirst() throws Exception { // TODO: Fix abbreviation to be "A." Author expected = new Author("ʿAbdallāh", "ʿ.", null, "al-Ṣāliḥ", null); assertEquals(AuthorList.of(expected), AuthorList.parse("al-Ṣāliḥ, ʿAbdallāh")); @@ -1048,7 +1048,7 @@ public void parseNameWithHyphenInLastNameWhenLastNameGivenFirst() throws Excepti @Test @Disabled("Has issues with space character in W-P.") - public void parseWithDash() throws Exception { + void parseWithDash() throws Exception { assertEquals( AuthorList.of( new Author("Z.", "Z.", null, "Yao", null), @@ -1060,47 +1060,47 @@ public void parseWithDash() throws Exception { } @Test - public void parseNameWithBraces() throws Exception { + void parseNameWithBraces() throws Exception { Author expected = new Author("H{e}lene", "H.", null, "Fiaux", null); assertEquals(AuthorList.of(expected), AuthorList.parse("H{e}lene Fiaux")); } @Test - public void parseFirstNameFromFirstAuthorMultipleAuthorsWithLatexNames() throws Exception { + void parseFirstNameFromFirstAuthorMultipleAuthorsWithLatexNames() throws Exception { assertEquals("Mu{\\d{h}}ammad", AuthorList.parse("Mu{\\d{h}}ammad al-Khw{\\={a}}rizm{\\={i}} and Corrado B{\\\"o}hm") .getAuthor(0).getGivenName().orElse(null)); } @Test - public void parseFirstNameFromSecondAuthorMultipleAuthorsWithLatexNames() throws Exception { + void parseFirstNameFromSecondAuthorMultipleAuthorsWithLatexNames() throws Exception { assertEquals("Corrado", AuthorList.parse("Mu{\\d{h}}ammad al-Khw{\\={a}}rizm{\\={i}} and Corrado B{\\\"o}hm") .getAuthor(1).getGivenName().orElse(null)); } @Test - public void parseLastNameFromFirstAuthorMultipleAuthorsWithLatexNames() throws Exception { + void parseLastNameFromFirstAuthorMultipleAuthorsWithLatexNames() throws Exception { assertEquals("al-Khw{\\={a}}rizm{\\={i}}", AuthorList.parse("Mu{\\d{h}}ammad al-Khw{\\={a}}rizm{\\={i}} and Corrado B{\\\"o}hm") .getAuthor(0).getFamilyName().orElse(null)); } @Test - public void parseLastNameFromSecondAuthorMultipleAuthorsWithLatexNames() throws Exception { + void parseLastNameFromSecondAuthorMultipleAuthorsWithLatexNames() throws Exception { assertEquals("B{\\\"o}hm", AuthorList.parse("Mu{\\d{h}}ammad al-Khw{\\={a}}rizm{\\={i}} and Corrado B{\\\"o}hm") .getAuthor(1).getFamilyName().orElse(null)); } @Test - public void parseInstitutionAuthorWithLatexNames() throws Exception { + void parseInstitutionAuthorWithLatexNames() throws Exception { assertEquals("{The Ban\\={u} M\\={u}s\\={a} brothers}", AuthorList.parse("{The Ban\\={u} M\\={u}s\\={a} brothers}").getAuthor(0).getFamilyName().orElse(null)); } @Test - public void parseRetrieveCachedAuthorListAfterGarbageCollection() throws Exception { + void parseRetrieveCachedAuthorListAfterGarbageCollection() throws Exception { final String uniqueAuthorName = "Osvaldo Iongi"; AuthorList author = AuthorList.parse(uniqueAuthorName); System.gc(); @@ -1108,7 +1108,7 @@ public void parseRetrieveCachedAuthorListAfterGarbageCollection() throws Excepti } @Test - public void parseGarbageCollectAuthorListForUnreachableKey() throws Exception { + void parseGarbageCollectAuthorListForUnreachableKey() throws Exception { final String uniqueAuthorName = "Fleur Hornbach"; // Note that "new String()" is needed, uniqueAuthorName is a reference to a String literal AuthorList uniqueAuthor = AuthorList.parse(new String(uniqueAuthorName)); @@ -1117,7 +1117,7 @@ public void parseGarbageCollectAuthorListForUnreachableKey() throws Exception { } @Test - public void parseGarbageCollectUnreachableInstitution() throws Exception { + void parseGarbageCollectUnreachableInstitution() throws Exception { final String uniqueInstitutionName = "{Unique LLC}"; // Note that "new String()" is needed, uniqueAuthorName is a reference to a String literal AuthorList uniqueInstitution = AuthorList.parse(new String(uniqueInstitutionName)); @@ -1129,7 +1129,7 @@ public void parseGarbageCollectUnreachableInstitution() throws Exception { * This tests an unreachable key issue addressed in [#6552](https://github.com/JabRef/jabref/pull/6552). The test is incorrect BibTeX but is handled by the parser and common in practice. */ @Test - public void parseCacheAuthorsWithTwoOrMoreCommasAndWithSpaceInAllParts() throws Exception { + void parseCacheAuthorsWithTwoOrMoreCommasAndWithSpaceInAllParts() throws Exception { final String uniqueAuthorsNames = "Basil Dankworth, Gianna Birdwhistle, Cosmo Berrycloth"; AuthorList uniqueAuthors = AuthorList.parse(uniqueAuthorsNames); System.gc(); @@ -1140,7 +1140,7 @@ public void parseCacheAuthorsWithTwoOrMoreCommasAndWithSpaceInAllParts() throws * This tests an unreachable key issue addressed in [#6552](https://github.com/JabRef/jabref/pull/6552). */ @Test - public void parseCacheAuthorsWithTwoOrMoreCommasAndWithoutSpaceInAllParts() throws Exception { + void parseCacheAuthorsWithTwoOrMoreCommasAndWithoutSpaceInAllParts() throws Exception { final String uniqueAuthorsNames = "Dankworth, Jr., Braelynn"; AuthorList uniqueAuthors = AuthorList.parse(uniqueAuthorsNames); System.gc(); @@ -1151,7 +1151,7 @@ public void parseCacheAuthorsWithTwoOrMoreCommasAndWithoutSpaceInAllParts() thro * This tests the issue described at https://github.com/JabRef/jabref/pull/2669#issuecomment-288519458 */ @Test - public void correctNamesWithOneComma() throws Exception { + void correctNamesWithOneComma() throws Exception { Author expected = new Author("Alexander der Große", "A. d. G.", null, "Canon der Barbar", null); assertEquals(AuthorList.of(expected), AuthorList.parse("Canon der Barbar, Alexander der Große")); @@ -1166,7 +1166,7 @@ public void correctNamesWithOneComma() throws Exception { } @Test - public void equalsFalseDifferentOrder() { + void equalsFalseDifferentOrder() { Author firstAuthor = new Author("A", null, null, null, null); Author secondAuthor = new Author("B", null, null, null, null); AuthorList firstAuthorList = AuthorList.of(firstAuthor, secondAuthor); @@ -1175,19 +1175,19 @@ public void equalsFalseDifferentOrder() { } @Test - public void equalsFalseWhenNotAuthorList() { + void equalsFalseWhenNotAuthorList() { assertNotEquals(AuthorList.of(new Author(null, null, null, null, null)), new Author(null, null, null, null, null)); } @Test - public void equalsTrueReflexive() { + void equalsTrueReflexive() { AuthorList authorList = AuthorList.of(new Author(null, null, null, null, null)); assertEquals(authorList, authorList); } @Test - public void equalsTrueSymmetric() { + void equalsTrueSymmetric() { AuthorList firstAuthorList = AuthorList.of(new Author("A", null, null, null, null)); AuthorList secondAuthorList = AuthorList.of(new Author("A", null, null, null, null)); assertEquals(firstAuthorList, secondAuthorList); @@ -1195,7 +1195,7 @@ public void equalsTrueSymmetric() { } @Test - public void equalsTrueTransitive() { + void equalsTrueTransitive() { AuthorList firstAuthorList = AuthorList.of(new Author("A", null, null, null, null)); AuthorList secondAuthorList = AuthorList.of(new Author("A", null, null, null, null)); AuthorList thirdAuthorList = AuthorList.of(new Author("A", null, null, null, null)); @@ -1205,7 +1205,7 @@ public void equalsTrueTransitive() { } @Test - public void equalsTrueConsistent() { + void equalsTrueConsistent() { AuthorList firstAuthorList = AuthorList.of(new Author("A", null, null, null, null)); AuthorList secondAuthorList = AuthorList.of(new Author("A", null, null, null, null)); assertEquals(firstAuthorList, secondAuthorList); @@ -1214,31 +1214,31 @@ public void equalsTrueConsistent() { } @Test - public void equalsFalseForNull() { + void equalsFalseForNull() { assertNotEquals(null, AuthorList.of(new Author(null, null, null, null, null))); } @Test - public void hashCodeConsistent() { + void hashCodeConsistent() { AuthorList authorList = AuthorList.of(new Author(null, null, null, null, null)); assertEquals(authorList.hashCode(), authorList.hashCode()); } @Test - public void hashCodeNotConstant() { + void hashCodeNotConstant() { AuthorList firstAuthorList = AuthorList.of(new Author("A", null, null, null, null)); AuthorList secondAuthorList = AuthorList.of(new Author("B", null, null, null, null)); assertNotEquals(firstAuthorList.hashCode(), secondAuthorList.hashCode()); } @Test - public void getAsLastFirstFirstLastNamesWithAndEmptyAuthor() { + void getAsLastFirstFirstLastNamesWithAndEmptyAuthor() { assertEquals("", EMPTY_AUTHOR.getAsLastFirstFirstLastNamesWithAnd(true)); } @Test - public void getAsLastFirstFirstLastNamesWithAndMultipleAuthors() { + void getAsLastFirstFirstLastNamesWithAndMultipleAuthors() { assertEquals("al-Khw{\\={a}}rizm{\\={i}}, M. and C. B{\\\"o}hm and K. G{\\\"{o}}del", THREE_AUTHORS_WITH_LATEX.getAsLastFirstFirstLastNamesWithAnd(true)); } diff --git a/src/test/java/org/jabref/model/entry/BibtexStringTest.java b/src/test/java/org/jabref/model/entry/BibtexStringTest.java index 1d418a13f7b..e16104bd991 100644 --- a/src/test/java/org/jabref/model/entry/BibtexStringTest.java +++ b/src/test/java/org/jabref/model/entry/BibtexStringTest.java @@ -6,10 +6,10 @@ import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class BibtexStringTest { +class BibtexStringTest { @Test - public void initalizationWorksCorrectly() { + void initalizationWorksCorrectly() { // Instantiate BibtexString bs = new BibtexString("AAA", "An alternative action"); assertEquals("AAA", bs.getName()); @@ -18,7 +18,7 @@ public void initalizationWorksCorrectly() { } @Test - public void idIsUpdatedAtSetId() { + void idIsUpdatedAtSetId() { // Instantiate BibtexString bs = new BibtexString("AAA", "An alternative action"); bs.setId("ID"); @@ -26,7 +26,7 @@ public void idIsUpdatedAtSetId() { } @Test - public void cloningDoesNotChangeContents() { + void cloningDoesNotChangeContents() { BibtexString bs = new BibtexString("AAA", "An alternative action"); bs.setId("ID"); @@ -39,7 +39,7 @@ public void cloningDoesNotChangeContents() { } @Test - public void clonedBibtexStringEqualsOriginalString() { + void clonedBibtexStringEqualsOriginalString() { BibtexString bibtexString = new BibtexString("AAA", "An alternative action"); bibtexString.setId("ID"); @@ -49,7 +49,7 @@ public void clonedBibtexStringEqualsOriginalString() { } @Test - public void usingTheIdGeneratorDoesNotHitTheOriginalId() { + void usingTheIdGeneratorDoesNotHitTheOriginalId() { // Instantiate BibtexString bs = new BibtexString("AAA", "An alternative action"); bs.setId("ID"); @@ -59,7 +59,7 @@ public void usingTheIdGeneratorDoesNotHitTheOriginalId() { } @Test - public void settingFieldsInACloneWorks() { + void settingFieldsInACloneWorks() { // Instantiate BibtexString bs = new BibtexString("AAA", "An alternative action"); bs.setId("ID"); @@ -75,7 +75,7 @@ public void settingFieldsInACloneWorks() { } @Test - public void modifyingACloneDoesNotModifyTheOriginalEntry() { + void modifyingACloneDoesNotModifyTheOriginalEntry() { // Instantiate BibtexString original = new BibtexString("AAA", "An alternative action"); original.setId("ID"); @@ -90,34 +90,34 @@ public void modifyingACloneDoesNotModifyTheOriginalEntry() { } @Test - public void getContentNeverReturnsNull() { + void getContentNeverReturnsNull() { BibtexString bs = new BibtexString("SomeName", null); assertNotNull(bs.getContent()); } @Test - public void authorTypeCorrectlyDetermined() { + void authorTypeCorrectlyDetermined() { // Source of the example: https://docs.jabref.org/fields/strings BibtexString bibtexString = new BibtexString("aKopp", "KoppOliver"); assertEquals(BibtexString.Type.AUTHOR, bibtexString.getType()); } @Test - public void institutionTypeCorrectlyDetermined() { + void institutionTypeCorrectlyDetermined() { // Source of the example: https://docs.jabref.org/fields/strings BibtexString bibtexString = new BibtexString("iMIT", "{Massachusetts Institute of Technology ({MIT})}"); assertEquals(BibtexString.Type.INSTITUTION, bibtexString.getType()); } @Test - public void otherTypeCorrectlyDeterminedForLowerCase() { + void otherTypeCorrectlyDeterminedForLowerCase() { // Source of the example: https://docs.jabref.org/fields/strings BibtexString bibtexString = new BibtexString("anct", "Anecdote"); assertEquals(BibtexString.Type.OTHER, bibtexString.getType()); } @Test - public void otherTypeCorrectlyDeterminedForUpperCase() { + void otherTypeCorrectlyDeterminedForUpperCase() { // Source of the example: https://docs.jabref.org/fields/strings BibtexString bibtexString = new BibtexString("lTOSCA", "Topology and Orchestration Specification for Cloud Applications"); assertEquals(BibtexString.Type.OTHER, bibtexString.getType()); diff --git a/src/test/java/org/jabref/model/entry/CanonicalBibEntryTest.java b/src/test/java/org/jabref/model/entry/CanonicalBibEntryTest.java index 7861f47fbdc..a05c1980b83 100644 --- a/src/test/java/org/jabref/model/entry/CanonicalBibEntryTest.java +++ b/src/test/java/org/jabref/model/entry/CanonicalBibEntryTest.java @@ -20,7 +20,7 @@ void canonicalRepresentationIsCorrectForStringMonth() { } @Test - public void simpleCanonicalRepresentation() { + void simpleCanonicalRepresentation() { BibEntry e = new BibEntry(StandardEntryType.Article); e.setCitationKey("key"); e.setField(StandardField.AUTHOR, "abc"); @@ -32,7 +32,7 @@ public void simpleCanonicalRepresentation() { } @Test - public void canonicalRepresentationWithNewlines() { + void canonicalRepresentationWithNewlines() { BibEntry e = new BibEntry(StandardEntryType.Article); e.setCitationKey("key"); e.setField(StandardField.ABSTRACT, "line 1\nline 2"); diff --git a/src/test/java/org/jabref/model/entry/EntryLinkListTest.java b/src/test/java/org/jabref/model/entry/EntryLinkListTest.java index b9fbb345200..83729e7dd3a 100644 --- a/src/test/java/org/jabref/model/entry/EntryLinkListTest.java +++ b/src/test/java/org/jabref/model/entry/EntryLinkListTest.java @@ -13,7 +13,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class EntryLinkListTest { +class EntryLinkListTest { private static final String KEY = "test"; @@ -24,7 +24,7 @@ public class EntryLinkListTest { private BibEntry target; @BeforeEach - public void before() { + void before() { database = new BibDatabase(); links = EntryLinkList.parse(KEY, database); link = links.getFirst(); @@ -40,40 +40,40 @@ private BibEntry create(String citeKey) { } @Test - public void givenFieldValueAndDatabaseWhenParsingThenExpectKey() { + void givenFieldValueAndDatabaseWhenParsingThenExpectKey() { assertEquals(KEY, link.getKey()); } @Test - public void givenFieldValueAndDatabaseWhenParsingThenExpectDataBase() { + void givenFieldValueAndDatabaseWhenParsingThenExpectDataBase() { assertEquals(database, link.getDatabase()); } @Test - public void givenFieldValueAndDatabaseWhenParsingThenExpectEmptyLinkedEntry() { + void givenFieldValueAndDatabaseWhenParsingThenExpectEmptyLinkedEntry() { assertEquals(Optional.empty(), link.getLinkedEntry()); } @Test - public void givenFieldValueAndDatabaseWhenParsingThenExpectLink() { + void givenFieldValueAndDatabaseWhenParsingThenExpectLink() { ParsedEntryLink expected = new ParsedEntryLink(KEY, database); assertEquals(expected, link); } @Test - public void givenBibEntryWhenParsingThenExpectLink() { + void givenBibEntryWhenParsingThenExpectLink() { ParsedEntryLink expected = new ParsedEntryLink(new BibEntry().withCitationKey("key")); assertFalse(expected.getLinkedEntry().isEmpty()); } @Test - public void givenNullFieldValueAndDatabaseWhenParsingThenExpectLinksIsEmpty() { + void givenNullFieldValueAndDatabaseWhenParsingThenExpectLinksIsEmpty() { links = EntryLinkList.parse(null, database); assertTrue(links.isEmpty()); } @Test - public void givenTargetAndSourceWhenSourceCrossrefTargetThenSourceCrossrefsTarget() { + void givenTargetAndSourceWhenSourceCrossrefTargetThenSourceCrossrefsTarget() { source.setField(StandardField.CROSSREF, "target"); assertSourceCrossrefsTarget(target, source); } diff --git a/src/test/java/org/jabref/model/entry/EntryTypeFactoryTest.java b/src/test/java/org/jabref/model/entry/EntryTypeFactoryTest.java index 90c602c0ba8..a277319be21 100644 --- a/src/test/java/org/jabref/model/entry/EntryTypeFactoryTest.java +++ b/src/test/java/org/jabref/model/entry/EntryTypeFactoryTest.java @@ -8,10 +8,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class EntryTypeFactoryTest { +class EntryTypeFactoryTest { @Test - public void parseEntryTypePatent() { + void parseEntryTypePatent() { EntryType patent = IEEETranEntryType.Patent; assertEquals(patent, EntryTypeFactory.parse("patent")); } diff --git a/src/test/java/org/jabref/model/entry/IdGeneratorTest.java b/src/test/java/org/jabref/model/entry/IdGeneratorTest.java index 20955e25fcd..3f373d61dea 100644 --- a/src/test/java/org/jabref/model/entry/IdGeneratorTest.java +++ b/src/test/java/org/jabref/model/entry/IdGeneratorTest.java @@ -6,10 +6,10 @@ import static org.junit.jupiter.api.Assertions.assertFalse; -public class IdGeneratorTest { +class IdGeneratorTest { @Test - public void createNeutralId() { + void createNeutralId() { HashSet set = new HashSet<>(); for (int i = 0; i < 10000; i++) { String string = IdGenerator.next(); diff --git a/src/test/java/org/jabref/model/entry/KeywordListTest.java b/src/test/java/org/jabref/model/entry/KeywordListTest.java index 4fc3ce2a6d0..b4c3edf57bc 100644 --- a/src/test/java/org/jabref/model/entry/KeywordListTest.java +++ b/src/test/java/org/jabref/model/entry/KeywordListTest.java @@ -5,89 +5,89 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class KeywordListTest { +class KeywordListTest { private KeywordList keywords; @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { keywords = new KeywordList(); keywords.add("keywordOne"); keywords.add("keywordTwo"); } @Test - public void parseEmptyStringReturnsEmptyList() throws Exception { + void parseEmptyStringReturnsEmptyList() throws Exception { assertEquals(new KeywordList(), KeywordList.parse("", ',')); } @Test - public void parseOneWordReturnsOneKeyword() throws Exception { + void parseOneWordReturnsOneKeyword() throws Exception { assertEquals(new KeywordList("keywordOne"), KeywordList.parse("keywordOne", ',')); } @Test - public void parseTwoWordReturnsTwoKeywords() throws Exception { + void parseTwoWordReturnsTwoKeywords() throws Exception { assertEquals(new KeywordList("keywordOne", "keywordTwo"), KeywordList.parse("keywordOne, keywordTwo", ',')); } @Test - public void parseTwoWordReturnsTwoKeywordsWithoutSpace() throws Exception { + void parseTwoWordReturnsTwoKeywordsWithoutSpace() throws Exception { assertEquals(new KeywordList("keywordOne", "keywordTwo"), KeywordList.parse("keywordOne,keywordTwo", ',')); } @Test - public void parseTwoWordReturnsTwoKeywordsWithDifferentDelimiter() throws Exception { + void parseTwoWordReturnsTwoKeywordsWithDifferentDelimiter() throws Exception { assertEquals(new KeywordList("keywordOne", "keywordTwo"), KeywordList.parse("keywordOne| keywordTwo", '|')); } @Test - public void parseWordsWithWhitespaceReturnsOneKeyword() throws Exception { + void parseWordsWithWhitespaceReturnsOneKeyword() throws Exception { assertEquals(new KeywordList("keyword and one"), KeywordList.parse("keyword and one", ',')); } @Test - public void parseWordsWithWhitespaceAndCommaReturnsTwoKeyword() throws Exception { + void parseWordsWithWhitespaceAndCommaReturnsTwoKeyword() throws Exception { assertEquals(new KeywordList("keyword and one", "and two"), KeywordList.parse("keyword and one, and two", ',')); } @Test - public void parseIgnoresDuplicates() throws Exception { + void parseIgnoresDuplicates() throws Exception { assertEquals(new KeywordList("keywordOne", "keywordTwo"), KeywordList.parse("keywordOne, keywordTwo, keywordOne", ',')); } @Test - public void parseTakeDelimiterNotRegexWhite() throws Exception { + void parseTakeDelimiterNotRegexWhite() throws Exception { assertEquals(new KeywordList("keywordOne keywordTwo", "keywordThree"), KeywordList.parse("keywordOne keywordTwoskeywordThree", 's')); } @Test - public void parseWordsWithBracketsReturnsOneKeyword() throws Exception { + void parseWordsWithBracketsReturnsOneKeyword() throws Exception { assertEquals(new KeywordList("[a] keyword"), KeywordList.parse("[a] keyword", ',')); } @Test - public void asStringAddsSpaceAfterDelimiter() throws Exception { + void asStringAddsSpaceAfterDelimiter() throws Exception { assertEquals("keywordOne, keywordTwo", keywords.getAsString(',')); } @Test - public void parseHierarchicalChain() throws Exception { + void parseHierarchicalChain() throws Exception { Keyword expected = Keyword.of("Parent", "Node", "Child"); assertEquals(new KeywordList(expected), KeywordList.parse("Parent > Node > Child", ',', '>')); } @Test - public void parseTwoHierarchicalChains() throws Exception { + void parseTwoHierarchicalChains() throws Exception { Keyword expectedOne = Keyword.of("Parent1", "Node1", "Child1"); Keyword expectedTwo = Keyword.of("Parent2", "Node2", "Child2"); @@ -96,23 +96,23 @@ public void parseTwoHierarchicalChains() throws Exception { } @Test - public void mergeTwoIdenticalKeywordsShouldReturnOnKeyword() { + void mergeTwoIdenticalKeywordsShouldReturnOnKeyword() { assertEquals(new KeywordList("JabRef"), KeywordList.merge("JabRef", "JabRef", ',')); } @Test - public void mergeOneEmptyKeywordAnAnotherNonEmptyShouldReturnTheNonEmptyKeyword() { + void mergeOneEmptyKeywordAnAnotherNonEmptyShouldReturnTheNonEmptyKeyword() { assertEquals(new KeywordList("JabRef"), KeywordList.merge("", "JabRef", ',')); } @Test - public void mergeTwoDistinctKeywordsShouldReturnTheTwoKeywordsMerged() { + void mergeTwoDistinctKeywordsShouldReturnTheTwoKeywordsMerged() { assertEquals(new KeywordList("Figma", "JabRef"), KeywordList.merge("Figma", "JabRef", ',')); assertEquals(new KeywordList("JabRef", "Figma"), KeywordList.merge("Figma", "JabRef", ',')); } @Test - public void mergeTwoListsOfKeywordsShouldReturnTheKeywordsMerged() { + void mergeTwoListsOfKeywordsShouldReturnTheKeywordsMerged() { assertEquals(new KeywordList("Figma", "Adobe", "JabRef", "Eclipse", "JetBrains"), KeywordList.merge("Figma, Adobe, JetBrains, Eclipse", "Adobe, JabRef", ',')); } } diff --git a/src/test/java/org/jabref/model/entry/KeywordTest.java b/src/test/java/org/jabref/model/entry/KeywordTest.java index 7496ed23771..3557012ea4f 100644 --- a/src/test/java/org/jabref/model/entry/KeywordTest.java +++ b/src/test/java/org/jabref/model/entry/KeywordTest.java @@ -7,16 +7,16 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class KeywordTest { +class KeywordTest { @Test - public void getPathFromRootAsStringForSimpleChain() throws Exception { + void getPathFromRootAsStringForSimpleChain() throws Exception { Keyword keywordChain = Keyword.of("A", "B", "C"); assertEquals("A > B", keywordChain.getChild().get().getPathFromRootAsString('>')); } @Test - public void getAllSubchainsAsStringForSimpleChain() throws Exception { + void getAllSubchainsAsStringForSimpleChain() throws Exception { Keyword keywordChain = Keyword.of("A", "B", "C"); Set expected = new HashSet<>(); expected.add("A"); diff --git a/src/test/java/org/jabref/model/entry/MonthTest.java b/src/test/java/org/jabref/model/entry/MonthTest.java index 17c98897907..4b5c975261c 100644 --- a/src/test/java/org/jabref/model/entry/MonthTest.java +++ b/src/test/java/org/jabref/model/entry/MonthTest.java @@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.params.provider.Arguments.arguments; -public class MonthTest { +class MonthTest { @ParameterizedTest @MethodSource({"parseShortName", "parseBibtexName", "parseFullName", "parseTwoDigitNumber", "parseNumber", "parseShortNameGerman", "parseFullNameGerman", "parseShortNameGermanLowercase", "parseSpecialCases"}) @@ -169,7 +169,7 @@ private static Stream parseSpecialCases() { @ParameterizedTest @MethodSource("parseGermanShortMonthTest") - public void parseGermanShortMonthTest(Optional expected, String input) { + void parseGermanShortMonthTest(Optional expected, String input) { assertEquals(expected, Month.parseGermanShortMonth(input)); } @@ -205,7 +205,7 @@ private static Stream parseGermanShortMonthTest() { @ParameterizedTest @MethodSource("getMonthByNumberTest") - public void getMonthByNumberTest(Optional expected, int input) { + void getMonthByNumberTest(Optional expected, int input) { assertEquals(expected, Month.getMonthByNumber(input)); } @@ -232,7 +232,7 @@ private static Stream getMonthByNumberTest() { @ParameterizedTest @MethodSource({"parseShortName", "getMonthByShortNameSpecialCases"}) - public void getMonthByShortNameLowercaseTest(Optional expected, String input) { + void getMonthByShortNameLowercaseTest(Optional expected, String input) { assertEquals(expected, Month.getMonthByShortName(input)); } @@ -249,7 +249,7 @@ private static Stream getMonthByShortNameSpecialCases() { @ParameterizedTest @MethodSource("getShortNameTest") - public void getShortNameTest(String expected, Month month) { + void getShortNameTest(String expected, Month month) { assertEquals(expected, month.getShortName()); } @@ -272,7 +272,7 @@ private static Stream getShortNameTest() { @ParameterizedTest @MethodSource("getJabRefFormatTest") - public void getJabRefFormatTest(String expected, Month month) { + void getJabRefFormatTest(String expected, Month month) { assertEquals(expected, month.getJabRefFormat()); } @@ -295,7 +295,7 @@ private static Stream getJabRefFormatTest() { @ParameterizedTest @MethodSource("getNumberTest") - public void getNumberTest(int expected, Month month) { + void getNumberTest(int expected, Month month) { assertEquals(expected, month.getNumber()); } @@ -318,7 +318,7 @@ private static Stream getNumberTest() { @ParameterizedTest @MethodSource("getFullNameTest") - public void getFullNameTest(String expected, Month month) { + void getFullNameTest(String expected, Month month) { assertEquals(expected, month.getFullName()); } @@ -341,7 +341,7 @@ private static Stream getFullNameTest() { @ParameterizedTest @MethodSource("getTwoDigitNumberTest") - public void getTwoDigitNumberTest(String expected, Month month) { + void getTwoDigitNumberTest(String expected, Month month) { assertEquals(expected, month.getTwoDigitNumber()); } diff --git a/src/test/java/org/jabref/model/entry/field/SpecialFieldTest.java b/src/test/java/org/jabref/model/entry/field/SpecialFieldTest.java index eacd5ef3e27..6d5f50f863a 100644 --- a/src/test/java/org/jabref/model/entry/field/SpecialFieldTest.java +++ b/src/test/java/org/jabref/model/entry/field/SpecialFieldTest.java @@ -6,16 +6,16 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class SpecialFieldTest { +class SpecialFieldTest { @Test - public void getSpecialFieldInstanceFromFieldNameValid() { + void getSpecialFieldInstanceFromFieldNameValid() { assertEquals(Optional.of(SpecialField.RANKING), SpecialField.fromName("ranking")); } @Test - public void getSpecialFieldInstanceFromFieldNameEmptyForInvalidField() { + void getSpecialFieldInstanceFromFieldNameEmptyForInvalidField() { assertEquals(Optional.empty(), SpecialField.fromName("title")); } } diff --git a/src/test/java/org/jabref/model/entry/identifier/ArXivIdentifierTest.java b/src/test/java/org/jabref/model/entry/identifier/ArXivIdentifierTest.java index d6892808fef..fd395d54ee7 100644 --- a/src/test/java/org/jabref/model/entry/identifier/ArXivIdentifierTest.java +++ b/src/test/java/org/jabref/model/entry/identifier/ArXivIdentifierTest.java @@ -52,13 +52,13 @@ void parseOldIdentifier() throws Exception { } @Test - public void acceptLegacyEprint() { + void acceptLegacyEprint() { Optional parsed = ArXivIdentifier.parse("astro-ph.GT/1234567"); assertEquals(Optional.of(new ArXivIdentifier("astro-ph.GT/1234567", "astro-ph.GT")), parsed); } @Test - public void acceptLegacyMathEprint() { + void acceptLegacyMathEprint() { Optional parsed = ArXivIdentifier.parse("math/1234567"); assertEquals(Optional.of(new ArXivIdentifier("math/1234567", "math")), parsed); } @@ -112,61 +112,61 @@ void fourDigitDateIsInvalidInLegacyFormat() throws Exception { } @Test - public void acceptPlainEprint() { + void acceptPlainEprint() { Optional parsed = ArXivIdentifier.parse("0706.0001"); assertEquals(Optional.of(new ArXivIdentifier("0706.0001")), parsed); } @Test - public void acceptPlainEprintWithVersion() { + void acceptPlainEprintWithVersion() { Optional parsed = ArXivIdentifier.parse("0706.0001v1"); assertEquals(Optional.of(new ArXivIdentifier("0706.0001", "v1", "")), parsed); } @Test - public void acceptArxivPrefix() { + void acceptArxivPrefix() { Optional parsed = ArXivIdentifier.parse("arXiv:0706.0001v1"); assertEquals(Optional.of(new ArXivIdentifier("0706.0001", "v1", "")), parsed); } @Test - public void ignoreLeadingAndTrailingWhitespaces() { + void ignoreLeadingAndTrailingWhitespaces() { Optional parsed = ArXivIdentifier.parse(" 0706.0001v1 "); assertEquals(Optional.of(new ArXivIdentifier("0706.0001", "v1", "")), parsed); } @Test - public void rejectEmbeddedEprint() { + void rejectEmbeddedEprint() { Optional parsed = ArXivIdentifier.parse("other stuff 0706.0001v1 end"); assertEquals(Optional.empty(), parsed); } @Test - public void rejectInvalidEprint() { + void rejectInvalidEprint() { Optional parsed = ArXivIdentifier.parse("https://thisisnouri"); assertEquals(Optional.empty(), parsed); } @Test - public void acceptUrlHttpEprint() { + void acceptUrlHttpEprint() { Optional parsed = ArXivIdentifier.parse("http://arxiv.org/abs/0706.0001v1"); assertEquals(Optional.of(new ArXivIdentifier("0706.0001", "v1", "")), parsed); } @Test - public void acceptUrlHttpsEprint() { + void acceptUrlHttpsEprint() { Optional parsed = ArXivIdentifier.parse("https://arxiv.org/abs/0706.0001v1"); assertEquals(Optional.of(new ArXivIdentifier("0706.0001", "v1", "")), parsed); } @Test - public void rejectUrlOtherDomainEprint() { + void rejectUrlOtherDomainEprint() { Optional parsed = ArXivIdentifier.parse("https://asdf.org/abs/0706.0001v1"); assertEquals(Optional.empty(), parsed); } @Test - public void constructCorrectURLForEprint() throws Exception { + void constructCorrectURLForEprint() throws Exception { Optional parsed = ArXivIdentifier.parse("0706.0001v1"); assertEquals(Optional.of(new URI("https://arxiv.org/abs/0706.0001v1")), parsed.get().getExternalURI()); } diff --git a/src/test/java/org/jabref/model/entry/identifier/DOITest.java b/src/test/java/org/jabref/model/entry/identifier/DOITest.java index 023d55652ce..3648351c42c 100644 --- a/src/test/java/org/jabref/model/entry/identifier/DOITest.java +++ b/src/test/java/org/jabref/model/entry/identifier/DOITest.java @@ -13,7 +13,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; -public class DOITest { +class DOITest { private static Stream testData() { return Stream.of( @@ -235,22 +235,22 @@ private static Stream testData() { @ParameterizedTest @MethodSource("testData") - public void equals(String expected, String input) { + void equals(String expected, String input) { assertEquals(expected, input); } @Test - public void equalsWorksFor2017Doi() { + void equalsWorksFor2017Doi() { assertEquals(new DOI("10.1109/cloud.2017.89"), new DOI("10.1109/CLOUD.2017.89")); } @Test - public void isShortDoiShouldReturnTrueWhenItIsShortDoi() { + void isShortDoiShouldReturnTrueWhenItIsShortDoi() { assertTrue(new DOI("10/abcde").isShortDoi()); } @Test - public void noDOIFoundInsideArbitraryText() { + void noDOIFoundInsideArbitraryText() { assertEquals(Optional.empty(), DOI.findInText("text without 28282 a doi")); assertEquals(Optional.empty(), DOI.findInText("It's 10:30 o'clock")); assertEquals(Optional.empty(), DOI.findInText("...archive number 10/XYZ/123...")); @@ -258,24 +258,24 @@ public void noDOIFoundInsideArbitraryText() { } @Test - public void rejectURLShortDoi() { + void rejectURLShortDoi() { assertThrows(IllegalArgumentException.class, () -> new DOI("http://www.cs.utexas.edu/users/kaufmann/itp-trusted-extensions-aug-2010/summary/summary.pdf")); assertThrows(IllegalArgumentException.class, () -> new DOI("http://www.cs.utexas.edu/users/kaufmann/itp-trusted-extensions-aug-20/10/summary/summary.pdf")); assertThrows(IllegalArgumentException.class, () -> new DOI("http://www.boi.org/10/2010bingbong")); } @Test - public void isShortDoiShouldReturnFalseWhenItIsDoi() { + void isShortDoiShouldReturnFalseWhenItIsDoi() { assertFalse(new DOI("10.1006/jmbi.1998.2354").isShortDoi()); } @Test - public void rejectEmbeddedDoi() { + void rejectEmbeddedDoi() { assertThrows(IllegalArgumentException.class, () -> new DOI("other stuff 10.1006/jmbi.1998.2354 end")); } @Test - public void rejectEmbeddedShortDoi() { + void rejectEmbeddedShortDoi() { assertThrows(IllegalArgumentException.class, () -> new DOI("other stuff 10/gf4gqc end")); assertThrows(IllegalArgumentException.class, () -> new DOI("10/2021/01")); assertThrows(IllegalArgumentException.class, () -> new DOI("01/10/2021")); @@ -283,41 +283,41 @@ public void rejectEmbeddedShortDoi() { } @Test - public void rejectInvalidDirectoryIndicator() { + void rejectInvalidDirectoryIndicator() { // wrong directory indicator assertThrows(IllegalArgumentException.class, () -> new DOI("12.1006/jmbi.1998.2354 end")); } @Test - public void rejectInvalidDirectoryIndicatorInShortDoi() { + void rejectInvalidDirectoryIndicatorInShortDoi() { assertThrows(IllegalArgumentException.class, () -> new DOI("20/abcd")); } @Test - public void emptyOrUndescoreOnlyReturnsEmpty() { + void emptyOrUndescoreOnlyReturnsEmpty() { assertEquals(Optional.empty(), DOI.parse("_")); assertEquals(Optional.empty(), DOI.parse("\t_")); assertEquals(Optional.empty(), DOI.parse("___")); } @Test - public void rejectInvalidDoiUri() { + void rejectInvalidDoiUri() { assertThrows(IllegalArgumentException.class, () -> new DOI("https://thisisnouri")); } @Test - public void rejectMissingDivider() { + void rejectMissingDivider() { // missing divider assertThrows(IllegalArgumentException.class, () -> new DOI("10.1006jmbi.1998.2354 end")); } @Test - public void rejectMissingDividerInShortDoi() { + void rejectMissingDividerInShortDoi() { assertThrows(IllegalArgumentException.class, () -> new DOI("10gf4gqc end")); } @Test - public void rejectNullDoiParameter() { + void rejectNullDoiParameter() { assertThrows(NullPointerException.class, () -> new DOI(null)); } } diff --git a/src/test/java/org/jabref/model/entry/identifier/ISBNTest.java b/src/test/java/org/jabref/model/entry/identifier/ISBNTest.java index cc3c5e20310..7dfe2d5efd7 100644 --- a/src/test/java/org/jabref/model/entry/identifier/ISBNTest.java +++ b/src/test/java/org/jabref/model/entry/identifier/ISBNTest.java @@ -5,69 +5,69 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class ISBNTest { +class ISBNTest { @Test - public void isValidFormat10Correct() { + void isValidFormat10Correct() { assertTrue(new ISBN("0-123456-47-9").isValidFormat()); assertTrue(new ISBN("0-9752298-0-X").isValidFormat()); } @Test - public void isValidFormat10Incorrect() { + void isValidFormat10Incorrect() { assertFalse(new ISBN("0-12B456-47-9").isValidFormat()); } @Test - public void isValidChecksum10Correct() { + void isValidChecksum10Correct() { assertTrue(new ISBN("0-123456-47-9").isValidChecksum()); assertTrue(new ISBN("0-9752298-0-X").isValidChecksum()); assertTrue(new ISBN("0-9752298-0-x").isValidChecksum()); } @Test - public void isValidChecksum10Incorrect() { + void isValidChecksum10Incorrect() { assertFalse(new ISBN("0-123456-47-8").isValidChecksum()); } @Test - public void isValidFormat13Correct() { + void isValidFormat13Correct() { assertTrue(new ISBN("978-1-56619-909-4").isValidFormat()); } @Test - public void isValidFormat13Incorrect() { + void isValidFormat13Incorrect() { assertFalse(new ISBN("978-1-56619-9O9-4 ").isValidFormat()); } @Test - public void isValidChecksum13Correct() { + void isValidChecksum13Correct() { assertTrue(new ISBN("978-1-56619-909-4 ").isValidChecksum()); } @Test - public void isValidChecksum13Incorrect() { + void isValidChecksum13Incorrect() { assertFalse(new ISBN("978-1-56619-909-5").isValidChecksum()); } @Test - public void isIsbn10Correct() { + void isIsbn10Correct() { assertTrue(new ISBN("0-123456-47-9").isIsbn10()); assertTrue(new ISBN("0-9752298-0-X").isIsbn10()); } @Test - public void isIsbn10Incorrect() { + void isIsbn10Incorrect() { assertFalse(new ISBN("978-1-56619-909-4").isIsbn10()); } @Test - public void isIsbn13Correct() { + void isIsbn13Correct() { assertTrue(new ISBN("978-1-56619-909-4").isIsbn13()); } @Test - public void isIsbn13Incorrect() { + void isIsbn13Incorrect() { assertFalse(new ISBN("0-123456-47-9").isIsbn13()); } } diff --git a/src/test/java/org/jabref/model/entry/identifier/ISSNTest.java b/src/test/java/org/jabref/model/entry/identifier/ISSNTest.java index 6d577a299b1..ed9a3668a13 100644 --- a/src/test/java/org/jabref/model/entry/identifier/ISSNTest.java +++ b/src/test/java/org/jabref/model/entry/identifier/ISSNTest.java @@ -6,57 +6,57 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class ISSNTest { +class ISSNTest { @Test - public void isCanBeCleaned() { + void isCanBeCleaned() { assertTrue(new ISSN("00279633").isCanBeCleaned()); } @Test - public void isCanBeCleanedIncorrectRubbish() { + void isCanBeCleanedIncorrectRubbish() { assertFalse(new ISSN("A brown fox").isCanBeCleaned()); } @Test - public void isCanBeCleanedDashAlreadyThere() { + void isCanBeCleanedDashAlreadyThere() { assertFalse(new ISSN("0027-9633").isCanBeCleaned()); } @Test - public void getCleanedISSN() { + void getCleanedISSN() { assertEquals("0027-9633", new ISSN("00279633").getCleanedISSN()); } @Test - public void getCleanedISSNDashAlreadyThere() { + void getCleanedISSNDashAlreadyThere() { assertEquals("0027-9633", new ISSN("0027-9633").getCleanedISSN()); } @Test - public void getCleanedISSNDashRubbish() { + void getCleanedISSNDashRubbish() { assertEquals("A brown fox", new ISSN("A brown fox").getCleanedISSN()); } @Test - public void isValidChecksumCorrect() { + void isValidChecksumCorrect() { assertTrue(new ISSN("0027-9633").isValidChecksum()); assertTrue(new ISSN("2434-561X").isValidChecksum()); assertTrue(new ISSN("2434-561x").isValidChecksum()); } @Test - public void isValidChecksumIncorrect() { + void isValidChecksumIncorrect() { assertFalse(new ISSN("0027-9634").isValidChecksum()); } @Test - public void isValidFormatCorrect() { + void isValidFormatCorrect() { assertTrue(new ISSN("0027-963X").isValidFormat()); } @Test - public void isValidFormatIncorrect() { + void isValidFormatIncorrect() { assertFalse(new ISSN("00279634").isValidFormat()); } } diff --git a/src/test/java/org/jabref/model/entry/identifier/IacrEprintTest.java b/src/test/java/org/jabref/model/entry/identifier/IacrEprintTest.java index cd8c8731c94..e82cc952520 100644 --- a/src/test/java/org/jabref/model/entry/identifier/IacrEprintTest.java +++ b/src/test/java/org/jabref/model/entry/identifier/IacrEprintTest.java @@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -public class IacrEprintTest { +class IacrEprintTest { private static Stream provideTestData() { return Stream.of( @@ -42,18 +42,18 @@ private static Stream provideTestData() { } @Test - public void rejectInvalidIacrEprint() { + void rejectInvalidIacrEprint() { assertThrows(IllegalArgumentException.class, () -> new IacrEprint("2021/12")); } @ParameterizedTest(name = "{index} {0}") @MethodSource("provideTestData") - public void acceptCorrectIacrEprintIdentifier(String name, String identifier) { + void acceptCorrectIacrEprintIdentifier(String name, String identifier) { assertEquals("2019/001", new IacrEprint(identifier).getNormalized()); } @Test - public void constructValidIacrEprintUrl() { + void constructValidIacrEprintUrl() { assertEquals("https://ia.cr/2019/001", new IacrEprint("2019/001").getAsciiUrl()); } } diff --git a/src/test/java/org/jabref/model/entry/identifier/MathSciNetIdTest.java b/src/test/java/org/jabref/model/entry/identifier/MathSciNetIdTest.java index 5ec57641415..f4d74245434 100644 --- a/src/test/java/org/jabref/model/entry/identifier/MathSciNetIdTest.java +++ b/src/test/java/org/jabref/model/entry/identifier/MathSciNetIdTest.java @@ -6,10 +6,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class MathSciNetIdTest { +class MathSciNetIdTest { @Test - public void parseRemovesNewLineCharacterAtEnd() throws Exception { + void parseRemovesNewLineCharacterAtEnd() throws Exception { Optional id = MathSciNetId.parse("3014184\n"); assertEquals(Optional.of(new MathSciNetId("3014184")), id); } diff --git a/src/test/java/org/jabref/model/groups/SearchGroupTest.java b/src/test/java/org/jabref/model/groups/SearchGroupTest.java index 75829b5a9b5..fb952ef1071 100644 --- a/src/test/java/org/jabref/model/groups/SearchGroupTest.java +++ b/src/test/java/org/jabref/model/groups/SearchGroupTest.java @@ -13,7 +13,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class SearchGroupTest { +class SearchGroupTest { private static BibEntry entry1D = new BibEntry(StandardEntryType.Misc) .withCitationKey("entry1") @@ -28,21 +28,21 @@ public class SearchGroupTest { .withField(StandardField.GROUPS, "A"); @Test - public void containsFindsWords() { + void containsFindsWords() { SearchGroup groupPositive = new SearchGroup("A", GroupHierarchyType.INDEPENDENT, "Test", EnumSet.noneOf(SearchRules.SearchFlags.class)); List positiveResult = List.of(entry1D, entry2D); assertTrue(groupPositive.containsAll(positiveResult)); } @Test - public void containsDoesNotFindWords() { + void containsDoesNotFindWords() { SearchGroup groupNegative = new SearchGroup("A", GroupHierarchyType.INDEPENDENT, "Unknown", EnumSet.noneOf(SearchRules.SearchFlags.class)); List positiveResult = List.of(entry1D, entry2D); assertFalse(groupNegative.containsAny(positiveResult)); } @Test - public void containsFindsWordWithRegularExpression() { + void containsFindsWordWithRegularExpression() { SearchGroup group = new SearchGroup("myExplicitGroup", GroupHierarchyType.INDEPENDENT, "anyfield=rev*", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE, SearchRules.SearchFlags.REGULAR_EXPRESSION)); BibEntry entry = new BibEntry(); entry.addKeyword("review", ','); @@ -51,7 +51,7 @@ public void containsFindsWordWithRegularExpression() { } @Test - public void containsDoesNotFindsWordWithInvalidRegularExpression() { + void containsDoesNotFindsWordWithInvalidRegularExpression() { SearchGroup group = new SearchGroup("myExplicitGroup", GroupHierarchyType.INDEPENDENT, "anyfield=*rev*", EnumSet.of(SearchRules.SearchFlags.CASE_SENSITIVE, SearchRules.SearchFlags.REGULAR_EXPRESSION)); BibEntry entry = new BibEntry(); entry.addKeyword("review", ','); @@ -60,7 +60,7 @@ public void containsDoesNotFindsWordWithInvalidRegularExpression() { } @Test - public void notQueryWorksWithLeftPartOfQuery() { + void notQueryWorksWithLeftPartOfQuery() { SearchGroup groupToBeClassified = new SearchGroup("to-be-classified", GroupHierarchyType.INDEPENDENT, "NOT(groups=alpha) AND NOT(groups=beta)", EnumSet.noneOf(SearchRules.SearchFlags.class)); BibEntry alphaEntry = new BibEntry() @@ -70,7 +70,7 @@ public void notQueryWorksWithLeftPartOfQuery() { } @Test - public void notQueryWorksWithLRightPartOfQuery() { + void notQueryWorksWithLRightPartOfQuery() { SearchGroup groupToBeClassified = new SearchGroup("to-be-classified", GroupHierarchyType.INDEPENDENT, "NOT(groups=alpha) AND NOT(groups=beta)", EnumSet.noneOf(SearchRules.SearchFlags.class)); BibEntry betaEntry = new BibEntry() diff --git a/src/test/java/org/jabref/model/groups/TexGroupTest.java b/src/test/java/org/jabref/model/groups/TexGroupTest.java index a140ccba4cd..c4ce616f6d3 100644 --- a/src/test/java/org/jabref/model/groups/TexGroupTest.java +++ b/src/test/java/org/jabref/model/groups/TexGroupTest.java @@ -17,17 +17,17 @@ import static org.junit.jupiter.api.Assertions.assertTrue; @AllowedToUseLogic("because class under test relies on logic classes") -public class TexGroupTest { +class TexGroupTest { private MetaData metaData; @BeforeEach - public void setUp() throws Exception { + void setUp() throws Exception { metaData = new MetaData(); } @Test - public void containsReturnsTrueForEntryInAux() throws Exception { + void containsReturnsTrueForEntryInAux() throws Exception { Path auxFile = Path.of(TexGroupTest.class.getResource("paper.aux").toURI()); TexGroup group = new TexGroup("paper", GroupHierarchyType.INDEPENDENT, auxFile, new DefaultAuxParser(new BibDatabase()), new DummyFileUpdateMonitor(), metaData); BibEntry inAux = new BibEntry(); @@ -37,7 +37,7 @@ public void containsReturnsTrueForEntryInAux() throws Exception { } @Test - public void containsReturnsTrueForEntryNotInAux() throws Exception { + void containsReturnsTrueForEntryNotInAux() throws Exception { Path auxFile = Path.of(TexGroupTest.class.getResource("paper.aux").toURI()); TexGroup group = new TexGroup("paper", GroupHierarchyType.INDEPENDENT, auxFile, new DefaultAuxParser(new BibDatabase()), new DummyFileUpdateMonitor(), metaData); BibEntry notInAux = new BibEntry(); @@ -47,7 +47,7 @@ public void containsReturnsTrueForEntryNotInAux() throws Exception { } @Test - public void getFilePathReturnsRelativePath() throws Exception { + void getFilePathReturnsRelativePath() throws Exception { Path auxFile = Path.of(TexGroupTest.class.getResource("paper.aux").toURI()); String user = "Darwin"; metaData.setLatexFileDirectory(user, auxFile.getParent()); diff --git a/src/test/java/org/jabref/model/groups/WordKeywordGroupTest.java b/src/test/java/org/jabref/model/groups/WordKeywordGroupTest.java index 915390ed533..a9b453a99c5 100644 --- a/src/test/java/org/jabref/model/groups/WordKeywordGroupTest.java +++ b/src/test/java/org/jabref/model/groups/WordKeywordGroupTest.java @@ -12,7 +12,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class WordKeywordGroupTest { +class WordKeywordGroupTest { private WordKeywordGroup testGroup; private WordKeywordGroup testCaseSensitiveGroup; @@ -20,7 +20,7 @@ public class WordKeywordGroupTest { private BibEntry entry; @BeforeEach - public void setUp() { + void setUp() { testGroup = new WordKeywordGroup("name", GroupHierarchyType.INDEPENDENT, StandardField.KEYWORDS, "test", false, ',', false); testCaseSensitiveGroup = new WordKeywordGroup("name", GroupHierarchyType.INDEPENDENT, StandardField.KEYWORDS, "test", true, ',', false); waterGroup = new WordKeywordGroup("name", GroupHierarchyType.INDEPENDENT, StandardField.KEYWORDS, "\\H2O", false, ',', false); @@ -28,70 +28,70 @@ public void setUp() { } @Test - public void containsFindsSameWord() { + void containsFindsSameWord() { entry.setField(StandardField.KEYWORDS, "test"); assertTrue(testGroup.contains(entry)); } @Test - public void containsFindsWordInSentence() throws Exception { + void containsFindsWordInSentence() throws Exception { entry.setField(StandardField.KEYWORDS, "Some sentence containing test word"); assertTrue(testGroup.contains(entry)); } @Test - public void containsFindsWordInCommaSeparatedList() throws Exception { + void containsFindsWordInCommaSeparatedList() throws Exception { entry.setField(StandardField.KEYWORDS, "Some,list,containing,test,word"); assertTrue(testGroup.contains(entry)); } @Test - public void containsFindsWordInSemicolonSeparatedList() throws Exception { + void containsFindsWordInSemicolonSeparatedList() throws Exception { entry.setField(StandardField.KEYWORDS, "Some;list;containing;test;word"); assertTrue(testGroup.contains(entry)); } @Test - public void containsFindsSameComplexWord() throws Exception { + void containsFindsSameComplexWord() throws Exception { entry.setField(StandardField.KEYWORDS, "\\H2O"); assertTrue(waterGroup.contains(entry)); } @Test - public void containsFindsComplexWordInSentence() throws Exception { + void containsFindsComplexWordInSentence() throws Exception { entry.setField(StandardField.KEYWORDS, "Some sentence containing \\H2O word"); assertTrue(waterGroup.contains(entry)); } @Test - public void containsDoesNotFindWordIfCaseDiffers() throws Exception { + void containsDoesNotFindWordIfCaseDiffers() throws Exception { entry.setField(StandardField.KEYWORDS, "Test"); assertFalse(testCaseSensitiveGroup.contains(entry)); } @Test - public void containsDoesNotFindsWordInSentenceIfCaseDiffers() throws Exception { + void containsDoesNotFindsWordInSentenceIfCaseDiffers() throws Exception { entry.setField(StandardField.KEYWORDS, "Some sentence containing Test word"); assertFalse(testCaseSensitiveGroup.contains(entry)); } @Test - public void addChangesFieldIfEmptyBefore() throws Exception { + void addChangesFieldIfEmptyBefore() throws Exception { testGroup.add(entry); assertEquals(Optional.of("test"), entry.getField(StandardField.KEYWORDS)); } @Test - public void addChangesFieldIfNotEmptyBefore() throws Exception { + void addChangesFieldIfNotEmptyBefore() throws Exception { entry.setField(StandardField.KEYWORDS, "bla, blubb"); testGroup.add(entry); @@ -99,7 +99,7 @@ public void addChangesFieldIfNotEmptyBefore() throws Exception { } @Test - public void addDoesNotAddDuplicate() throws Exception { + void addDoesNotAddDuplicate() throws Exception { entry.setField(StandardField.KEYWORDS, "test, blubb"); testGroup.add(entry); @@ -107,7 +107,7 @@ public void addDoesNotAddDuplicate() throws Exception { } @Test - public void removeDoesNothingIfEntryNotMatched() throws Exception { + void removeDoesNothingIfEntryNotMatched() throws Exception { entry.setField(StandardField.KEYWORDS, "something"); testGroup.remove(entry); @@ -115,7 +115,7 @@ public void removeDoesNothingIfEntryNotMatched() throws Exception { } @Test - public void removeRemovesNameFromField() throws Exception { + void removeRemovesNameFromField() throws Exception { entry.setField(StandardField.KEYWORDS, "test, blubb"); testGroup.remove(entry); diff --git a/src/test/java/org/jabref/model/metadata/MetaDataTest.java b/src/test/java/org/jabref/model/metadata/MetaDataTest.java index 017881ba922..e67d8b0ba15 100644 --- a/src/test/java/org/jabref/model/metadata/MetaDataTest.java +++ b/src/test/java/org/jabref/model/metadata/MetaDataTest.java @@ -7,17 +7,17 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class MetaDataTest { +class MetaDataTest { private MetaData metaData; @BeforeEach - public void setUp() { + void setUp() { metaData = new MetaData(); } @Test - public void emptyGroupsIfNotSet() { + void emptyGroupsIfNotSet() { assertEquals(Optional.empty(), metaData.getGroups()); } } diff --git a/src/test/java/org/jabref/model/paging/PageTest.java b/src/test/java/org/jabref/model/paging/PageTest.java index 5b3c7f59cda..e58f593a521 100644 --- a/src/test/java/org/jabref/model/paging/PageTest.java +++ b/src/test/java/org/jabref/model/paging/PageTest.java @@ -12,7 +12,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -public class PageTest { +class PageTest { private Page page1; private Page page2; private final int testPageNumber = 3; @@ -21,7 +21,7 @@ public class PageTest { private final String[] testStrings = {"str1", "str2", "str3"}; @BeforeEach - public void setup() { + void setup() { testContent.addAll(Arrays.asList(testStrings)); testContent = Collections.unmodifiableCollection(testContent); page1 = new Page<>(testQuery, testPageNumber, testContent); @@ -29,7 +29,7 @@ public void setup() { } @Test - public void getContentTest() { + void getContentTest() { // make sure the collections have the same elements List differences = new ArrayList<>(testContent); differences.removeAll(page1.getContent()); @@ -43,17 +43,17 @@ public void getContentTest() { } @Test - public void getPageNumberTest() { + void getPageNumberTest() { assertEquals(testPageNumber, page1.getPageNumber()); } @Test - public void getQueryTest() { + void getQueryTest() { assertEquals(testQuery, page1.getQuery()); } @Test - public void getSizeTest() { + void getSizeTest() { assertEquals(testContent.size(), page1.getSize()); } } diff --git a/src/test/java/org/jabref/model/pdf/FileAnnotationTest.java b/src/test/java/org/jabref/model/pdf/FileAnnotationTest.java index cb0fb97f14d..4cc4d315b34 100644 --- a/src/test/java/org/jabref/model/pdf/FileAnnotationTest.java +++ b/src/test/java/org/jabref/model/pdf/FileAnnotationTest.java @@ -9,38 +9,38 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -public class FileAnnotationTest { +class FileAnnotationTest { @Test - public void parseDateMinusBeforeTimezone() { + void parseDateMinusBeforeTimezone() { String dateString = "D:20170512224019-03'00'"; LocalDateTime date = FileAnnotation.extractModifiedTime(dateString); assertEquals(LocalDateTime.of(2017, 05, 12, 22, 40, 19), date); } @Test - public void parseDatePlusBeforeTimezone() { + void parseDatePlusBeforeTimezone() { String dateString = "D:20170512224019+03'00'"; LocalDateTime date = FileAnnotation.extractModifiedTime(dateString); assertEquals(LocalDateTime.of(2017, 05, 12, 22, 40, 19), date); } @Test - public void parseDateNoTimezone() { + void parseDateNoTimezone() { String dateString = "D:20170512224019"; LocalDateTime date = FileAnnotation.extractModifiedTime(dateString); assertEquals(LocalDateTime.of(2017, 05, 12, 22, 40, 19), date); } @Test - public void parseNotADate() { + void parseNotADate() { String dateString = "gsdfgwergsdf"; LocalDateTime date = FileAnnotation.extractModifiedTime(dateString); assertTrue(ChronoUnit.SECONDS.between(LocalDateTime.now(), date) <= 1); } @Test - public void abbreviateAnnotationName() { + void abbreviateAnnotationName() { final FileAnnotation fileAnnotation = new FileAnnotation("John Robertson", LocalDateTime.of(2020, 4, 18, 17, 10), 1, "this is an annotation that is very long and goes over the character limit of 45", diff --git a/src/test/java/org/jabref/model/search/matchers/MatcherSetsTest.java b/src/test/java/org/jabref/model/search/matchers/MatcherSetsTest.java index 4d671a94035..d55c8ecb68b 100644 --- a/src/test/java/org/jabref/model/search/matchers/MatcherSetsTest.java +++ b/src/test/java/org/jabref/model/search/matchers/MatcherSetsTest.java @@ -8,10 +8,10 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -public class MatcherSetsTest { +class MatcherSetsTest { @Test - public void buildAnd() { + void buildAnd() { MatcherSet matcherSet = MatcherSets.build(MatcherSets.MatcherType.AND); assertTrue(matcherSet.isMatch(new BibEntry())); @@ -23,7 +23,7 @@ public void buildAnd() { } @Test - public void buildOr() { + void buildOr() { MatcherSet matcherSet = MatcherSets.build(MatcherSets.MatcherType.OR); assertFalse(matcherSet.isMatch(new BibEntry())); @@ -35,13 +35,13 @@ public void buildOr() { } @Test - public void buildNotWithTrue() { + void buildNotWithTrue() { NotMatcher matcher = new NotMatcher(new MockSearchMatcher(true)); assertFalse(matcher.isMatch(new BibEntry())); } @Test - public void buildNotWithFalse() { + void buildNotWithFalse() { NotMatcher matcher = new NotMatcher(new MockSearchMatcher(false)); assertTrue(matcher.isMatch(new BibEntry())); } diff --git a/src/test/java/org/jabref/model/search/rules/ContainsBasedSearchRuleTest.java b/src/test/java/org/jabref/model/search/rules/ContainsBasedSearchRuleTest.java index 593017ef7ab..d161294cb0a 100644 --- a/src/test/java/org/jabref/model/search/rules/ContainsBasedSearchRuleTest.java +++ b/src/test/java/org/jabref/model/search/rules/ContainsBasedSearchRuleTest.java @@ -14,7 +14,7 @@ /** * Test case for ContainBasedSearchRule. */ -public class ContainsBasedSearchRuleTest { +class ContainsBasedSearchRuleTest { private final BibEntry be = new BibEntry(StandardEntryType.InCollection) .withCitationKey("shields01") @@ -27,7 +27,7 @@ public class ContainsBasedSearchRuleTest { private final RegexBasedSearchRule bsCaseInsensitiveRegexp = new RegexBasedSearchRule(EnumSet.of(SearchRules.SearchFlags.REGULAR_EXPRESSION)); @Test - public void contentOfSingleField() { + void contentOfSingleField() { String query = "\"marine larviculture\""; assertFalse(bsCaseSensitive.applyRule(query, be)); @@ -37,7 +37,7 @@ public void contentOfSingleField() { } @Test - public void contentDistributedOnMultipleFields() { + void contentDistributedOnMultipleFields() { String query = "marine 2001 shields"; assertFalse(bsCaseSensitive.applyRule(query, be)); @@ -47,7 +47,7 @@ public void contentDistributedOnMultipleFields() { } @Test - public void regularExpressionMatch() { + void regularExpressionMatch() { String query = "marine [A-Za-z]* larviculture"; assertFalse(bsCaseSensitive.applyRule(query, be)); diff --git a/src/test/java/org/jabref/model/search/rules/SentenceAnalyzerTest.java b/src/test/java/org/jabref/model/search/rules/SentenceAnalyzerTest.java index 7624fd694d4..696a72f6177 100644 --- a/src/test/java/org/jabref/model/search/rules/SentenceAnalyzerTest.java +++ b/src/test/java/org/jabref/model/search/rules/SentenceAnalyzerTest.java @@ -9,7 +9,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class SentenceAnalyzerTest { +class SentenceAnalyzerTest { static Stream getParameters() { return Stream.of( @@ -28,7 +28,7 @@ static Stream getParameters() { @ParameterizedTest @MethodSource("getParameters") - public void getWords(List expected, String input) { + void getWords(List expected, String input) { assertEquals(expected, new SentenceAnalyzer(input).getWords()); } } diff --git a/src/test/java/org/jabref/model/texparser/CitationTest.java b/src/test/java/org/jabref/model/texparser/CitationTest.java index e233ec013e1..f51600aa0c0 100644 --- a/src/test/java/org/jabref/model/texparser/CitationTest.java +++ b/src/test/java/org/jabref/model/texparser/CitationTest.java @@ -15,7 +15,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.params.provider.Arguments.arguments; -public class CitationTest { +class CitationTest { Path path; int line; @@ -24,7 +24,7 @@ public class CitationTest { Citation citation; @BeforeEach - public void init() { + void init() { path = Path.of("test"); line = 10; lineText = "lineText"; @@ -47,62 +47,62 @@ private static Stream colStartColEndInBounds() { @ParameterizedTest @ValueSource(ints = {-1, 0}) - public void constructorLineSmallerEqualZeroTest(int line) { + void constructorLineSmallerEqualZeroTest(int line) { Exception e = assertThrows(IllegalArgumentException.class, () -> new Citation(path, line, 1, 5, lineText)); assertEquals("Line has to be greater than 0.", e.getMessage()); } @ParameterizedTest @ValueSource(ints = {1, 2}) - public void constructorLineLargerZeroTest(int line) { + void constructorLineLargerZeroTest(int line) { Citation citation = new Citation(path, line, 1, 5, lineText); } @ParameterizedTest @MethodSource("colStartColEndNotInBounds") - public void constructorColStartColEndNotInBoundsTest(int colStart, int colEnd) { + void constructorColStartColEndNotInBoundsTest(int colStart, int colEnd) { Exception e = assertThrows(IllegalArgumentException.class, () -> new Citation(path, line, colStart, colEnd, lineText)); assertEquals("Citation has to be between 0 and line length.", e.getMessage()); } @ParameterizedTest @MethodSource("colStartColEndInBounds") - public void constructorColStartColEndInBoundsTest(int colStart, int colEnd) { + void constructorColStartColEndInBoundsTest(int colStart, int colEnd) { Citation citation = new Citation(path, line, colStart, colEnd, lineText); } @Test - public void getPathTest() { + void getPathTest() { assertEquals(path, citation.path()); } @Test - public void getLineTest() { + void getLineTest() { assertEquals(10, citation.line()); } @Test - public void getColStartTest() { + void getColStartTest() { assertEquals(1, citation.colStart()); } @Test - public void getColEndTest() { + void getColEndTest() { assertEquals(4, citation.colEnd()); } @Test - public void getLineTextTest() { + void getLineTextTest() { assertEquals(lineText, citation.lineText()); } @Test - public void getContextTest() { + void getContextTest() { assertEquals(lineText, citation.getContext()); } @Test - public void equalsTest() { + void equalsTest() { Citation citation1 = new Citation(path, line, 1, 4, lineText); Citation citation2 = null; assertEquals(citation, citation1); From c997ce493d23bc8656b0536893ba964dbc800b9d Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 18 Aug 2024 12:18:09 +0200 Subject: [PATCH 2/9] Fix compile error --- .../org/jabref/logic/bst/BstFunctionsTest.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/test/java/org/jabref/logic/bst/BstFunctionsTest.java b/src/test/java/org/jabref/logic/bst/BstFunctionsTest.java index b8a1cdb6ac2..f9f8a85a8f1 100644 --- a/src/test/java/org/jabref/logic/bst/BstFunctionsTest.java +++ b/src/test/java/org/jabref/logic/bst/BstFunctionsTest.java @@ -5,11 +5,6 @@ import java.util.List; import java.util.Map; -import org.jabref.logic.bst.util.BstCaseChangersTest; -import org.jabref.logic.bst.util.BstNameFormatterTest; -import org.jabref.logic.bst.util.BstPurifierTest; -import org.jabref.logic.bst.util.BstTextPrefixerTest; -import org.jabref.logic.bst.util.BstWidthCalculatorTest; import org.jabref.model.database.BibDatabase; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; @@ -28,11 +23,11 @@ /** * For additional tests see for *
      - *
    • purify: {@link BstPurifierTest}
    • - *
    • width: {@link BstWidthCalculatorTest}
    • - *
    • format.name: {@link BstNameFormatterTest}
    • - *
    • change.case: {@link BstCaseChangersTest}
    • - *
    • prefix: {@link BstTextPrefixerTest}
    • + *
    • purify: {@link org.jabref.logic.bst.util.BstPurifierTest}
    • + *
    • width: {@link org.jabref.logic.bst.util.BstWidthCalculatorTest}
    • + *
    • format.name: {@link org.jabref.logic.bst.util.BstNameFormatterTest}
    • + *
    • change.case: {@link org.jabref.logic.bst.util.BstCaseChangersTest}
    • + *
    • prefix: {@link org.jabref.logic.bst.util.BstTextPrefixerTest}
    • *
    */ class BstFunctionsTest { @@ -599,9 +594,8 @@ void logic() throws RecognitionException { } /** - * See also {@link BstWidthCalculatorTest} + * See also {@link org.jabref.logic.bst.util.BstWidthCalculatorTest} */ - @Test void width() throws RecognitionException { BstVM vm = new BstVM(""" From 42271231bb89c5f1c9603dc9608afeeb6b60d159 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 18 Aug 2024 12:25:51 +0200 Subject: [PATCH 3/9] Duplcite test files (to have them in the "right" folder) --- .../jabref/logic/exporter/BibtexDatabaseWriterTest.java | 7 +++---- .../org/jabref/logic/importer/util/GrobidServiceTest.java | 5 ++--- src/test/java/org/jabref/logic/xmp/XmpUtilWriterTest.java | 3 +-- ...encoding-utf-8-with-header-with-databasetypecomment.bib | 7 +++++++ ...oding-utf-8-without-header-with-databasetypecomment.bib | 5 +++++ .../logic/exporter/encoding-windows-1252-with-header.bib | 7 +++++++ 6 files changed, 25 insertions(+), 9 deletions(-) create mode 100644 src/test/resources/org/jabref/logic/exporter/encoding-utf-8-with-header-with-databasetypecomment.bib create mode 100644 src/test/resources/org/jabref/logic/exporter/encoding-utf-8-without-header-with-databasetypecomment.bib create mode 100644 src/test/resources/org/jabref/logic/exporter/encoding-windows-1252-with-header.bib diff --git a/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java b/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java index 3acd98b7c3e..2b03b9ba1e3 100644 --- a/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java +++ b/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java @@ -27,7 +27,6 @@ import org.jabref.logic.importer.Importer; import org.jabref.logic.importer.ParserResult; import org.jabref.logic.importer.fileformat.BibtexImporter; -import org.jabref.logic.importer.fileformat.BibtexImporterTest; import org.jabref.logic.importer.fileformat.BibtexParser; import org.jabref.logic.util.OS; import org.jabref.model.database.BibDatabase; @@ -462,7 +461,7 @@ void roundtripUtf8EncodingHeaderRemoved() throws Exception { @Test void roundtripWin1252HeaderKept(@TempDir Path bibFolder) throws Exception { - Path testFile = Path.of(BibtexImporterTest.class.getResource("encoding-windows-1252-with-header.bib").toURI()); + Path testFile = Path.of(BibtexDatabaseWriterTest.class.getResource("encoding-windows-1252-with-header.bib").toURI()); ParserResult result = new BibtexImporter(importFormatPreferences, new DummyFileUpdateMonitor()).importDatabase(testFile); BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData()); @@ -486,7 +485,7 @@ void roundtripWin1252HeaderKept(@TempDir Path bibFolder) throws Exception { @Test void roundtripUtf8HeaderKept(@TempDir Path bibFolder) throws Exception { - Path testFile = Path.of(BibtexImporterTest.class.getResource("encoding-utf-8-with-header-with-databasetypecomment.bib").toURI()); + Path testFile = Path.of(BibtexDatabaseWriterTest.class.getResource("encoding-utf-8-with-header-with-databasetypecomment.bib").toURI()); ParserResult result = new BibtexImporter(importFormatPreferences, new DummyFileUpdateMonitor()).importDatabase(testFile); BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData()); @@ -510,7 +509,7 @@ void roundtripUtf8HeaderKept(@TempDir Path bibFolder) throws Exception { @Test void roundtripNotExplicitUtf8HeaderNotInsertedDuringWrite(@TempDir Path bibFolder) throws Exception { - Path testFile = Path.of(BibtexImporterTest.class.getResource("encoding-utf-8-without-header-with-databasetypecomment.bib").toURI()); + Path testFile = Path.of(BibtexDatabaseWriterTest.class.getResource("encoding-utf-8-without-header-with-databasetypecomment.bib").toURI()); ParserResult result = new BibtexImporter(importFormatPreferences, new DummyFileUpdateMonitor()).importDatabase(testFile); BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData()); diff --git a/src/test/java/org/jabref/logic/importer/util/GrobidServiceTest.java b/src/test/java/org/jabref/logic/importer/util/GrobidServiceTest.java index 6b796c75dba..5cba17289df 100644 --- a/src/test/java/org/jabref/logic/importer/util/GrobidServiceTest.java +++ b/src/test/java/org/jabref/logic/importer/util/GrobidServiceTest.java @@ -10,7 +10,6 @@ import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.logic.importer.ParseException; import org.jabref.logic.importer.fetcher.GrobidPreferences; -import org.jabref.logic.importer.fileformat.PdfGrobidImporterTest; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.types.StandardEntryType; @@ -93,7 +92,7 @@ void failsWhenGrobidDisabled() { @Test void processPdfTest() throws IOException, ParseException, URISyntaxException { - Path file = Path.of(PdfGrobidImporterTest.class.getResource("LNCS-minimal.pdf").toURI()); + Path file = Path.of(GrobidServiceTest.class.getResource("LNCS-minimal.pdf").toURI()); List response = grobidService.processPDF(file, importFormatPreferences); assertEquals(1, response.size()); BibEntry be0 = response.getFirst(); @@ -115,7 +114,7 @@ void extractsReferencesFromPdf() throws IOException, ParseException, URISyntaxEx .withField(StandardField.VOLUME, "8274") .withField(StandardField.YEAR, "2013"); - Path file = Path.of(Objects.requireNonNull(PdfGrobidImporterTest.class.getResource("LNCS-minimal.pdf")).toURI()); + Path file = Path.of(Objects.requireNonNull(GrobidServiceTest.class.getResource("LNCS-minimal.pdf")).toURI()); List extractedReferences = grobidService.processReferences(file, importFormatPreferences); assertEquals(List.of(ref1), extractedReferences); } diff --git a/src/test/java/org/jabref/logic/xmp/XmpUtilWriterTest.java b/src/test/java/org/jabref/logic/xmp/XmpUtilWriterTest.java index ef68c48c59c..1e06c9ad895 100644 --- a/src/test/java/org/jabref/logic/xmp/XmpUtilWriterTest.java +++ b/src/test/java/org/jabref/logic/xmp/XmpUtilWriterTest.java @@ -3,7 +3,6 @@ import java.nio.file.Path; import java.util.List; -import org.jabref.logic.exporter.XmpExporterTest; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.Date; import org.jabref.model.entry.Month; @@ -25,7 +24,7 @@ import static org.mockito.Mockito.when; /** - * This tests the writing to a PDF. If the creation of the RDF content should be checked, please head to {@link XmpExporterTest} + * This tests the writing to a PDF. If the creation of the RDF content should be checked, please head to {@link org.jabref.logic.exporter.XmpExporterTest} */ class XmpUtilWriterTest { diff --git a/src/test/resources/org/jabref/logic/exporter/encoding-utf-8-with-header-with-databasetypecomment.bib b/src/test/resources/org/jabref/logic/exporter/encoding-utf-8-with-header-with-databasetypecomment.bib new file mode 100644 index 00000000000..da07711f44f --- /dev/null +++ b/src/test/resources/org/jabref/logic/exporter/encoding-utf-8-with-header-with-databasetypecomment.bib @@ -0,0 +1,7 @@ +% Encoding: UTF-8 + +@article{, + title = {Ü ist ein Umlaut}, +} + +@Comment{jabref-meta: databaseType:bibtex;} diff --git a/src/test/resources/org/jabref/logic/exporter/encoding-utf-8-without-header-with-databasetypecomment.bib b/src/test/resources/org/jabref/logic/exporter/encoding-utf-8-without-header-with-databasetypecomment.bib new file mode 100644 index 00000000000..8b5992c4277 --- /dev/null +++ b/src/test/resources/org/jabref/logic/exporter/encoding-utf-8-without-header-with-databasetypecomment.bib @@ -0,0 +1,5 @@ +@article{, + title = {Ü ist ein Umlaut}, +} + +@Comment{jabref-meta: databaseType:bibtex;} diff --git a/src/test/resources/org/jabref/logic/exporter/encoding-windows-1252-with-header.bib b/src/test/resources/org/jabref/logic/exporter/encoding-windows-1252-with-header.bib new file mode 100644 index 00000000000..c6269cc88e6 --- /dev/null +++ b/src/test/resources/org/jabref/logic/exporter/encoding-windows-1252-with-header.bib @@ -0,0 +1,7 @@ +% Encoding: windows-1252 + +@Article{, + abstract = {25� C}, +} + +@Comment{jabref-meta: databaseType:bibtex;} From 217d55ad7aed75a60b8014bf824b0ae6c225c942 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 18 Aug 2024 13:18:28 +0200 Subject: [PATCH 4/9] Add missing file --- .../logic/importer/util/LNCS-minimal.pdf | Bin 0 -> 262265 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/test/resources/org/jabref/logic/importer/util/LNCS-minimal.pdf diff --git a/src/test/resources/org/jabref/logic/importer/util/LNCS-minimal.pdf b/src/test/resources/org/jabref/logic/importer/util/LNCS-minimal.pdf new file mode 100644 index 0000000000000000000000000000000000000000..248ac9b557b899957e32f1faf604aa6f10038887 GIT binary patch literal 262265 zcmb@u1z1*3(=bj-ill@Jx3q%P-H0HKbV&#Z(nv~6tCWODNJuJz2uO=44blioN=ugr zqICWDfc*4*-sk^*&-Yy~*LBYB&d%=6&dkotE_-ecRVkTEf_z9)j!!)eUq}UE0x)~y z+oU2QFn$dfzpTBcJ&a!prY8j8>M(v8D`x|ks3@tKohgJR2!W5#N%@1uuVL}Lu z0POIO6rkHUn>m7JHn*J3q|8k0P0dI_YbR$%vs<>L?t>q76`ZC@sj3#W1>UNe5z^S# z&^5hLu2>%wWgmF8dduxp4>`g(ww^IsvqX5Ry8PY=mNX3f;?OJkC-MyU!)2;}JWH@B z=k2U2Z&e8!%gwKHXLFVz9G57x@s1PBAZbH9VSg*6XJ5RLje?;k~|oVJgn zD{{_@Y_3I}M%G=yZbWH4Impm@;#Q)2PPCzEHJZL=T!X5m99Ei&)oN&zjt~?cs2Gd4 zlHq+h-)PHtu0|&_xOdo}BWy+AlyW2H`QjHm6WmBbD%7*>$893iAtdKjEeD8dgOXMW z%|nQVqvS~6!{2YiDH0{iVI0N&Jov+OPb@NeZZ_YW3wvzL`a*{`D*Ii`U~X02y_+i{ z+96j{UQod1D&M-zb#k#t1rd2!>K8WjS03b z*8uBQRniXWLW8r~eCqj$!%emZLuH7{z!(lBm zN)gSL&Pd_l><3u_QnvSuwfDKQC|R0H{O&M4FXI^Gr*$`-d|c%6WN0($Z054xXtlS? zM03I-7jKL>V=^knx5IYWFY)^H`wrx#j?+p>-Zt{_d6T>zWaQLbt$T%cY(u;1cgO8I zXjL}rUsgTk;WqAbSBPM2K3PLJ9uOlnTNwZALe5J$oB|@vtK9ayoSlMKBkcRNtMyL~ z^TwdQn$>@<8ZfLph_}#lU&Gf4thd@_Al^vu7g(RY`=qjbn+xxKNr;ThXGfoMV{z_N z^6ffuo-2bFhO(h9sau6Ivva<`SRPSf!0pB4I`Q*; z943n9#FHPVKA&279x(Zna9fv^@bXJT(k^H`7oN5MM3@lEIN@mV=S0;_IcWW$ zrGAAQxHXoDUzhtl*F^B_*RJ@Gi!(6`PNXa9E*1QNLZKQiQ@Wx3<1e4i$B zEiq3C&`5OGvn=Z+<`}=-*!4@dgs^`*>=OA`VL53+G?Q(|0N$zqy@l=PVq+YUx%pL` z%;s8CDQnkEDIDi?@)zi*oWiTScOUwhZOv2H#-Ix+KAW6p=+rT!QX0UXqvPljG9tt( z_FDOFILDpy5&Te-#Ec~)q=>&h63w7$B_Ua%)b+@y>NVT_V%A}%JxxDvA7@;?8h#u` zxi01_Rfg}B24)vISxJH$+<#L-|FmQ`_O`OYnHZrX`XL3>} zWs~$%XJd6Zk8y(MO*!f`+gf+F)BLCLIw)~6eVZdc5LV1m+IMZY?Ji^P$SPaDJ_y2( zlYG_o%KM%xZTC``2Y!xPml~_PasmUt1t9Tpvrk(JPO88Gs_Mr4eRRK8)4n%fgRjGsEyVtRZ zdo=A|4iZ=wt6@>NLRo2jI^YoV%N z9A26Xz7?7Hj67M%z7_SvFD*P{zExo>UI+&VKghKX_Dgj9#+l1h(*A9gZbl1vUyQU{ z@g2u*kBq#e@L`GdqnNsX!msqI-`F!;ddh1~ClaX!=&yS+tcarY1I^{#SPb~I^KOrD z1SMEd;5VngXuNXXc$&RshAAQx_dXBiK~w|(CwJ4YVyX<$LUTL4-u8GwpDkQ}C0v<= z?-(P?nkB_H(K)pN)jwV?5>*e>+PijzoKn%K9%%DP9Bub_8xT1jyF5HqEcJZJIU^EB zUh4g7R8jX@-vg?rd8a(AoD&eWW&-4V(dliwLmGVeLiu>ue4IGeq=@S4xD+>w{N6^b zRldFNUaQxoT&$>E>B7hYr@%dL%ueoeE@YSXl~*?{?kSV8Vrv?ly$gNQm~t1}cR3@d z6dd1q{h>XiLx)D@BJ=gPDxRGeTp3MVnig?)F%!SOl-u6u&&bMTCJV0?L7c>J`}j>> zd#i6Rf^9`?DftqktWBha^|NkXFVjM>V*^XLRl1UPLeEE`@HL0Q#$+BK1d~&tKkO* zO%x_XA7nt;Z7-;6!u>;_+UNH7Qfr^0^G65={FqZx5EekVJeo1>fXEQrzC)iJ=dRsZk`f#O49;XvVmg29o1N;IT!|CU!yV5wNy+x;8OI$WFoJA}c7FnodnfRNvW z!I4-#AuRg;l`!~U9Q(83)zQ5H6NJP0&?qDfjf8`x4u{#f*x3AST!4uFF#BJdB9590 zA^8N5nE&4NZv*gu+4S#4`hV9{=x@9I@0%hq2tEW@5&t?@`2WPFqq!o41o_}t|M#YUFQWh2 z6b_nVvDp9LriWhcSj}aCH$3zSG6*zG@W@~B%N&{=pg7Q}3K9vH)$cqCSj!^^#xH|{ zgAtD5z?MVIhwuSV=*Sa-JTO~F{t)CLV{wcF@Q=p=8KEN&32-nlq2sYYL-_GnAOk-h z3n>JHAD{T3K>m0vfB--0AGk1nRY!Xh4Kv^qf!mjof$?jaxjX+?ulx7H_euC0P7ovT;WhHdh$7awa zPvCkT_v8YvMt_#jop}WX-ea$Ls@WhA}qh(rwaJWk-tJ07~#B+CJ0ijIJ2xbn8v*c^4 zp<%_&%T+0feOIb_N=2%^G`37qX2mlGQ^DSeXyEz}nP zgIKovOF`a-E|Wtd*ti-h<44Yxo+=ZO0zzS%O3V2nnIb%xJ9jq+SiJq%+H+AV_r&@H z7j(Euo`w!l@);OCregRQdbdYH!zhp=+enpoe%a`h7Yoc$1D2rdcv1YeVX^nnSsVMr z$~Mv2`5u|g62rIr2DU`>S~Bmho$q@{Abx>X+A^)$wub2@a_8gjI7ef_{D+J-E1T7; zaF6-ies?E@b{4fb3XOQB_7i3>($ugqxT5cnOCII@7d*uG&lzNKj`V4~Q~jyZ`(-~d z&gnqMJyB(;M>OMg&di(&O830ROTMns^^0R{-)-L90KUeUn*2!Q@(?^SzWp}d)xl! zb;ALN;$NrR)-x`L=P^@J$B~l?NU(QNJ`PDve=;@cSb1Zg_8Q$IQE|d|C@vrO4}|hD zhD+=L1+!-_j?Xa^4{Ij)*ClnstXkL$jDL8 zeR82nGVdC(E}K0qDZjw;nI|E9vc{R=(IzwGCl5$ZyDaseSNCSF*la+acfF0Nd0QSw zVH>`zC-U>e^pdE-Qj;q>oQD&(O7Y2Nq0?GZNJ9Po9B zFv|bMegD_C|Fi!_{EK(_w`~RBd>};lS5JzBjP0?D0N&-_H3hLLaBBbE3nTuMwnA_| zIB+KaI_@E-kH`Jvnm}*@yyw4hM}N7Uzunj0uIX=Ah82W?;_rU`aw8yeL>{{u;5dPY zfpGpKHv&T9BTng|z}5i{IVTJPh5`(O@`3^a0x+lo1)T0-3Mvp7Kn4a(2?KUyzxRN^ z$sTtD{1{RI1DYdXNE8-^g8UkAu22~TdV}&|I_{-u|OjD1OA6mC_yYAXd)oQ2RacH-~+^B!Eyqf0EU6x10Wc@;V={m z!w04=fZ!8?ftV9upadW|&|dHs6ae8F8ip1?@qx|8@r?fA1CSFR@(=ttWYZHuqd}+W z!#5Jh^j~vF<^TD8s9I3tKOOwf4gQnb!%h!he`EiF9*_42@)zTqU) zU=Mvv1(+*ztOU&)0r&ylVBe1bMhWaX!Ey%b519pM#$ZK(11Bt?{}3Aq21P=P^H2;B z3}7Mz048*-26zTI2Y7>oganR)4tqu&)1w-))cd9%}I?hlE4gfCerCm^?rsS`d;a2B;K(f+Y^r1_9hC3=NLo;4lmvvJ42o zNl1AiCBs0T5~vn9n}A`#5ttwh1Kcj?=V(sA;-H~(3()%^9xy2oHz6HBVW3$baTa^1 z4-iKn^9MIho0WuK+M-YIn!yXSc8*wOS1W;%gO8b=5$Dj*9q;6GRwpbtPBz=lExpdTnuhXC>e@IzY(Swd_j$nuK{M|d?1>}98HTc`i9cmsp>J>P$V!w+=i~WdH=s4sk2TkeksT@x6 zurtV@0M+>`4?i+tkP|tC9<}=oJsj%@a%e_=;z&Is1AZbGlEj^ z{4u}BF}@xg9DX3dRQ}Tk!iOG+XIOAB1EokL_IDoe62#&d5L#lvh(NhuXt1}zg0mDX z;3ZhNhfygO9Lk`yu%a&*=ESrfuK_W8VJNZLI4rUKo1&SVvxDFe4pfE~1eC`D!5!iQ4nQdcKa7(>+=>8UB7ptj z**`HB5=5n7VL)Ys09XV-(r^HRLSj=A#ZEWE6Cc20A~UFeDWSehh;eBOuBAP9cUJPVP6(VHtD|;U6*z zz>n*p02yL50-SCiG7GAM2m#Mw@QnBq34_J|JGO`H)A0jQbNB#OAG#`FC4tC=fPaAl zE*xzyj!=N%0ZRtjok2zo)Pp5;T!vCKfE~ht&ceY1;r#;x^-$fR!GfgvA3P8~^gw+a zKM>i6`6H_j*<|3kA>Rxb4Nlx4DMFSU+Rs8vf^d&)JXmm08>kF$5Bq=&7bFa*kKbne zPqk*kH zV%BdML=031o`2RCxF+{oav1P`JIIuRKnGY%uyDZk7KD!=KmhCp)51V(06Sbk0kBM= z3Jf^!K%>C$AjLpt4=iIeFya{SUkVJEil89q4az_d3M@tNuO*;~(6R+7pb3H><{`TY z8bkCSrh>qJKyyE~836yV49y4RvEZ2e5bt+AauZYO;; zBC*FMFkviG;J5?=lH)9hg8;w&!#jk@t}Z&7BmJmg*!dBdK#X(yCs??%+bp@jhjtuE zg$Mr5Zs@L&U{;PxBVDX=ay&kpBFp^M)uS82{VpB4)+0Nk8#g?cyeZ(7nG|sd2D_7y zLG_RIuiD*I^J7wM8X92wPB29%@}=Ucjk&o2cNfX(GL?L5JGQG>P6DjqT7`7`N79fraS~{N*Cs4pUyd{3V>*P+S4mOMD z!_0YE`xIZEOg8fGBtQ4uA}-OM*jJ$ca;`R==)wCk$(X5qqK&V0`*EEV_X$>h{vf&M zSBDc!hBIMi()rVZ)xe%$Dj&8IF+_S|{ik#d6^}Nq@$CRe&nmLlZwO0SVmtHN5&2#{)+d5j0E>8-tK*zuc?V+zFk(L zxm{z9`?h7&?WZXyxAfK|-|au!W%*dUt!+_+yB~e++#~D_xdZ8N|5>p1xIHKEjKJ;jLvUb@sxw~UJk;0;jxgk_|kNXCNlgPAQ!QbVX zMKJKahKHq47L5|@x;`@t?C4T@)HhDo zQi50H+dO)1F)7_DT%i{8K~LyM98=FmUZ=P9PVKB6^pQqIjW9)`!>?W5e)LQ!yb*n- zBW##_OY}jt1Y&!x?EJ-)D+OEkX_nf!M6TbAikIBp)EuXA=_Rum-AuE&%qXLh5&RIp zs`pfTc8TdXG5dJ+hjLAy&ODs+BlGF|W)LR5_+sGh$8v8gxa)0ks{{?ju~J{ux@|IV zd}TDL$cm7|@ao&R+I2g{;n^QAuQ_~I9^-n0Px!`z$ndVI>l87^9%j`J4cqRrkj;&$ z+Fu>bef}+c4l~X6sAT5`MM_QZ=0eYjb0RdJBZc(aS`u({NKv6kWPnELJ-gvcl75Dsy?rXGPs6I);Ee6j~J&ItJYADsEsmRX2<}Jm!u@7qo=j_r77M{Pa zEQs$da&vJvX})Z>#riqR;72?+HmohngR9xZvIncv7CUX)JC}yKqjKWsY)776b@k-+ z6k9R7*3sE99{iNILq|xhyZn}RV1?ksUg=1}UQ-=*D9hey$&-55>b1PQ3&Xi`IC1n% z>oesR>Xy@-`Z_L(^3B)N`eN0S!_;(7YdJBL`_J<9w@MQ;JzFtCl3(C14=0g91cuCbAH>(%irSZ>l-=aEfvIv~;(vS%{ zuIiWd_}?Ww8MJVEo}8)WYbTiyzE48kit8}D#AePh+E$fLZM?j-mh71QR>@!ZcA5dZ z^Vdw-lv@9D%nK#f=EQ`JOY*O=(wAo}LN{!FQDsqboYp6M>{iI?=wHibd^R?Mm(RF* zJ&S7KMUShC7*##X_@#NREnII2t746bLj6>(d*q#)Ngu5hcvnfXBF|q>pR;0pl4OTR z985Ys9rS&+>k-0%>GYQdE#jLevOO<(@7;Bcx^QVyH@Uq>tn#ufvBKLT7$fZLaNN9J zWA$gjLCN`XkBClM$-PSM8J`nUYEPywI|rPG@q~=nd5h=c1h=T$RC;YFklp?9(K=h4 z`++gB5@EN1dV%RFPhQRBPCKR7PvR|0KDs~gDgFAv^2U!zV~5K#`C|e+_gMAczhuMJ z(Ir@_9Vdbyl-Mrh{I zV17@+%k=)6^7?f4rp|#M#u>j#r)CAYJa$1*UsELh@ubiiSJZl9r#7a7eKqi;g}Ua` zVUb{phPVDddCa4yu=XjRD^ksu-U~M?yg!%pE1jZ^Eu~;x_q%*JOW{sH(X(fptXHfG zK3=@QCj7H#x**s$@yuRj(CAO><9QhRAs>(k|3(aWZZ{pykBXE;PD zirbakRJg(882UE{MA zX|1*8fXqBrA+K>@ypi0~y3-UtqBj0A}MqSm4xuZ$8 z&_iVBQT}q|4O}-y$?xVRBW?fNkqO$C%&{Ga>^=U>%myWs7OpI_ z&$j!~cLQFdQKD`pqt<#2|x zH+CB$SloH}ov7kQ_LR>yjaHcrpU0cz^=FaD^d;}vDQ*ZGr*=_yS8J5M#QLz_o<3zQ zo4uy!NpTvo&!cd1hqqGgvJGGGSLWKNO%4vd!Rrc|f`U{Dj|EPtMh@|u<9w866l!%Y z9dGy3f+DGZx2M+^*}7qG>{_?F_H?nVh^PG};@hID{AY4}o4ac)=kv?=^3p=&&L{Kq z{!DG3!K-Yy&~W89<0s0{&!0+uMwTLfsU|qC98=FDi?!^vN40G%n$Lf>Uu2sclvbv= z{(?-t!JGEs&W-6=%tqDLDAABxaOYg*`OB(_XS_SbB~MU?)n*sQaI1aMyK8X!t4#35 zg6c;eT!SZUsS_5@F3B(Sqvo}DL~Gb22@F(aKEIHtRa|VU-@{pQ8EPWlY$m7UXHt}% z;NE;Yhv&hus@{oeVEc4YSS>euTG!k3i~+fe&o&LC-UZ~Rxmxox_$d$Kq|%&fK8M(B z-md2y-Fhwe7e8e=JKWuL zqsvp3ys&qzLv)n60T!4$kgr5^X+_CNLGVx2dY%jVAbl@R(^sX`Vzl6v~8I+AOg z{7V#jx@W3)>zZ0TybMOpu~(*lHN}sv+{byhKCFCsqJuIldFHm`*hMPz#~9XyQF=sK zL>Ana|A9<-XE&;U`XZ7?sR%I<{hq_q;`UM*?@HWRo!~dE_lBxcx(J(?xQLrnA}BUT zqTRHm>C1;tKT-<0-$ay`xo-PR$8+IXZgO&n&**r|n&QB17S6 z??l-~72i%_bPya)+yjX)ZTlqc68~+X#P@-9*QnC>5v(diLk%QmPXtmJmYy3`+_=K5 zg<`fcRy8}%rrjeX7SiGKYVC!Cht3_xGLs9#MK|n1{lDo{?i#F=cgj$0HyJk2-MliB zlh@I%ef>^z@2u~ZsrOv}`wLAYBQtvNO^52qkIRSvKTD6OB&@pL3m?j9X|G*!mGXT4 z76qphJVw+0BMT=g(c4tx!oDed7r5o_v9XM{?3Kvv1yG!vT=hgu(w2)XEmZlDistT~ z*$zG1`u)vv%UYdENov*SnuGYed)Vo0MuPQVkt=Ma$T^cd^P=k?*E|)<&)%5n)*ius zLy4gM!c-WiE^ z*K>-UWG#Yrn!I|8+rL)p?$mu*%Tqi`jGaWq)6r_aDHT3sc@k9frydT($d?iVswWP1Ii;A(wKeUo~T&J?G8nv(J6eP;!p_a>V5`d(>varNasg0YSzk@nOX z*&hOxk-{f+ic*+W`p!wNG-0a5T3Zaugf0D^4?kLBA6B^>Z6kWOO|Y^Xw+(f9ul3rE z06fZ@J7wA7Tgfx$BjnWL^}D> z&ZmTP@H**@n3dwkbZrv;zUT9wP*53uU60%S!Fpf1X)STcPsz z{!2fEQd?!8+7!H>+Gz_vnY9!oaqSuhJCkYZNRX104n-UmVa)vYCZg(f;qIF-jCewE zGVei474(d`zylvhb2O^naAD(;gtDAl`4Q};LUd{gd)b zU!ci}xKA72Eogf`jrpXO+x6>#WRrcOz6oEZSDq;2k4+r%^H;)l^4@yk^Udcgn%NX< zYy{C6;-7N7$DH21+CemcC8j3h|B>Wz1Gdd3eD<4kT(7+Nwh>AYo%E}Q!s5&B^@l0% zDQ+;Po^d%jvZ*&)wQ<*bvHV)#^jhMc)AfhExO-hijGZbN%dihhEAU}k)L6j@d5xmN z!JFuxaI^78dAzdYOhkHQyV&gm2$y^kY@fKt$?nO8IqzdmNgtSMe z>9~--k!ZrirXqrns6i=PHlM-1{`XT^wt)u)!Ry~Lqn?!uSuz#|=yas{P;W`Y)(0&K z()T>3?o1HhTk$S5X?*dcLyec1#=s#%Do*S+Qcle4%@vCa6TjN7`p-rS_Ld~%-|v>= zR&Fyx&CRZ)s)!B=gymZ7Hg<0R>|-oaew73NevHuAS% z$|^oGxRFYX+`CoE)mg1WY~&N{(JlAw9j8q4Rhb->w=US(pO-&%WZ~--sg6;%Xu0xD zPqUof?s>L%mv4msjzDmv%(Kr(ei%Q&GoQ&7<+;^RI zx|@B93Cq3nvhg-ulxdW4Pp@ByKThZbwYPE8yNb%Xq^4<{imC(_#EXDkl8YJZtNxkR z9-UVzSqU~TDyrFwklm>9yXYUgOMPdW zx)hVRV_92U+}ow(wm6ns^*rva&8-9_exfbkBs6K|Rh?Wh>s-^l_Y5w#iKagp&MK|u zw0a!mY`hkaDQ$5nH^c8=zPG1#`q7eAr;=7F-_{asom>{3O=tJRiS%CTR)cTiD;ww^ z>Gxz6ZcP^_;o8higef{OimXQjB3d49cWCxxpADvMy1126c`wGJF{-BPm2*K%*C1^~ zYt!Qv*PA5|Po2$jGcJwdr+rQ?{c5+!6;2S$B|u-d*^pel$Y4o6A+pOW`e?|V%DX3* z%)eBYTP(+8ws)#WNK{E<=G;nBoYxE8EOIg37k8^CXWGsWUc>2oWu0GeQ;ppt$zNzV zK4SBdZ7bRzc^?2X5~xn=`R;l*IH~+oHRa{t_D7cd$mEhL~lTD za6-zgBYUg#TeVFbnVgpnx97Qs5~&@N{?VAln(ObQ>g8cHe$Ddf_}VuJ?PSUJc1u3< zm1|wGED}i=gj;2}eyBo5Uvg68yl3BlR_y!!15>MdaXn9AIrgctI^G-gGi9n~GaZCs zmsE2rTD==q%;e3&-yjPoM>VA4%g?*GW#MvIerk)`ec<=5FG%veOr22r&a8^nEqnVn z8$&pf46=@87n1Hw5N#B_#ueN*dF43d858^A#~Fe3cWK5H4)03pvB|Nvtz68-yPmbB z{)vl@BTM(xpN`U}XYJ46X>Y3xXXL*OqNR=*%(JYZn-+267!G|}Uwtl+o{V4iVnvD7 zPxBGwtW!SSy z9E)a}tW$2)-KlxL5LsSM%Ml>sB6U}BBr^Lq3W^Q(eKAJ-zVn7JlH~V@;pkPw0 z1;=!#s&U+Cu5~htzm>~ub8A&4MHw>{s-0@&zv=K4{&b2tyCZYyJDdN!_>>64%ehMZ zk0s0fx^i;QeQP|Fn||t@g^5d|1W(^??JV8w<4djD6=r*6U?TWIVvwK&M_RBJ#&UT$$O zzzwM(HaP3DCz+~!R^!{yYjbU#5|O%E34&!3qc;;`gp${XJ@_Mxvio((RJ5KTt$nW;6`CSKo?EVHOln@%y`i&lBS(m?iU;Y$U1Pv7ku2w%-ov3+vXJ0pI|&(kK? zw@b-Rd9d?t&B-q?`l`Z*`s|4D(wKb>%hh&G3k-9ojL|)kj0Z{E;TH*#ud>L0So1Ip zGp1&Y9C{$jp3v9X_v2=hPUDHZ^xAQ%FfD!y!e?Q8g*SuFN9T`!W@Y__AaRvyU{5A^ zOQTw7^~HuW5oe4^QZn$D_Qjw}c44*rw3RQmseGQ=bAB@&8=}qhH^md^lj+G2!~Jo` z)0LQAInyq%IoCshX)c*+NlHcwK4I8Ev0`B(c3t12El*Zm&e7EyMKhZ@Fe#s%%(QK6 zV#7z%%UxTdl1pi6Zf3d_t1__Lz^&3A{Bd%sW2c4U(cXNnm$J$;^+9SLF{h_@+(aBB zlr?2+-f!HyHs)k5=pND@w|VPf9-o#Eo9f)N*2pyYY%F~9%QJV&D8cC0Au9U{q1i7c z-Af*lPZSyJbS^1`<_@a$B=d7sk zUbl3+ykXh-h-syz66NHZZLcWuE~dOI@ba5=T40M(CUz|U{#rw87g>4>Wsz$#pO|G@ zG6qhgQ_W(dp7w|<4Ux~hG_Eu*vl}L)@gW%Jr>GPAUSI(?G`XTNafyyjubN@3`ZMVd z?Xvt?b-Gwi_{dI|7d$YJr@^zxIVNrPOkJmr&uN6Av&|lth^0;&X zU%hPUCxP9d%>FWa*|YkW!>LBoBiAD3i_|9Y2)ga1il5ygb${wPYd{h=P?wtfFjgRB zmFRBUJN}z~($klgYnMgklukYiBoE+`rw#nxFp}_jHm@jyrzK2*L2}Z5)yH5fzvcPEu!gjUjRiH_QN5$JD|p#8J2%R(9KNX=PbxV3 z?BaES^UHe3($Qt7d+Hvkh@@A)q*#&__QPmb z=$)~N!YAW9w<)K$GGA|A|3-R?+-~Q`(zL-~Qn#HS#VmhHu|1kMZ^&t?C-jN2;R9;L z`zMmjKP%1hGYrs|t2Mo&@$!mWS(^FsKnw2+V*Cm=#n!@H=384v{K+Ijj zlGI`IouX<}{`;R|3`N4(OSuOf#=4|sEw>{aW-6#)LHI5kBi<>WgWfH&C^+F+AVoJ@ z0?*%_WSD#tE0|x>fiosrsA&Dn!^0YpxAtpFK3%)RGD%%aFd%G{&1AQe@U(zvSNNbt zt8-lAz?n<^!d#7mtLwI!5gm%jZ?C>?6J?sRx!UvH;9=RRH#(KKR@1+TJq_qGywiCb zy&aHLCezvW6fXo(A!Rlk-?REQhj^!gslM)Q{dJNOu2cEfbF0;Duc!H2kR*%{NR@oL zd{y}4u%+Fgls7RUPh&k@g_+ZyE>kh(tBcRol%jsEVK|yuLI!07obg3Orh)59I4HYkgdz@r!Z*rz(cMpmzSQFKCECHn(mc8)bVTQtMQM(Uk>9iGY^I%lpW zANi9pEJ^*}$T*+SKYEn(p6yY5)7yAf0FE5+x-QLfM0HLYt~BpRsvwRz0j# z+%uYUi#4zIR8G_v_{KYOof*c~<8CSJrY-{W3s$RYjd1m@jcM~&4rcMVGOX%uD@w({ z^J<*a)+U@qHrm)}_R7agv-z@;@rWQyZ?|g{>w;TPVayb{<98Mpuw4p8ge`J9sWX@?GGkV!brN4d{&A2C8tnJ#l|m!MsHfY`JA$EJ7m!Ak&bVD zj$eDN+$Sx)Bk*!8r~cFO$eTL^mqUbPMVB>Nl-}c`K8S_RWPinUnA`~;+7i5XzoDn_ zS)MXw?%5&E2wg{`_9V@jpH&xRZp@~&EJ-o`OdD?5KZ6Omd6IdsVv3RJit~330V_XW zQTqGawC78{i<_d6 znS3kv;jkU~TQYSjr?F*{deOFg>l9OiisV`!g9KW}xVsd_ff4dC($l5cSw?E;x3I+( zqp;LT^E+16n!|>Rk95gsuwVVyjn3<%s?yExKO-S`G-i-wMNnS~;d~{oo6~jo_1-Fx zDVC~{tMykp#+x6z+5PFF>(i__3M~n4ZO1n^K4iER%6eOq>Io+AynRs7vo3Ey@Z$lk zsMwO`i@ljM-11jG%sgQEInamRF?+RSo&849`ibGouqXF4R}JXSAl)5$BfV)5>~HGg z2=JZw6$P!UFL@8Lb6sM+@(wrZgO@fFd-zC?+31zPZPGFJ@-t*S4{H_3aK4pz$Ep5e zRL!KDS3DpoFTC#>*~BusW4crYu2wBRV7S$=cUeU6{Ny{%+rRct-;!3YK;M2DF?;vY z`(VtM)HQ+cvLE`iHos;Woz@Z&?M{quW#mv9dbKQ9;9Y{-#Yvvh{+t!Ryt%(}XHVFt zV0@wR;PzXCj$ia79U8lrX~OsDdIA(qbjK|yONVC=_%{^gujI+n?TN%Na=4VXY%KIN zHbqoV$T1~+h>z*wK}XDS(}pGnGgB%|xCh+MB7Zbf2xq>m{qta$6`3Irp&~0E8PPJo zej+kvPJyk`AN9C`S2VAJ85`TWmH3lI)@D^-3jO}3pTTqPz|@*A5&ak0`qHAzOCFdT z>O9|gaYCpC%kKlXf{sS?9*K5qfVCO{;?9X<++)2ve)DO>-(joBhx1+XPIIcT< z%^$kM-A&z-Uc9tMnAXmd)D(GitB7aog?n>X7H{bD+o##z zEPT1O%<+PVe+z)RRWSIn8zgly})7K-Ii_u0o&wTX>10J>MHDpdK zRZQ(ay4^s3k8ZiJT*>6o*29f6ST|wSLI7FvmV=y`m4&4< zbQ7199~up+yCev8dCmEjjg^VGorR4VbnQjM+00f8;F0p{{B8q)l9sm|q0cM1`Q6N{ z%pAd-ZaF#e-Li4Ma6}3CaV;}&g%iw8{jXmX03VM0ne5Rwm*Cb7xEOSNxdz+<69U&y zkBfg_yAc8(&|?3?Yd0l#%{2AfN|DNbUny{z+_=ih%RTYKB`2weM=o70`1-we1ViHQDP4^+@}!s1;yiuRuj2m2 zFBF!Yt##a_rAYh&!NLLun7Voh_MRV~mXYV3G_qj&nrUMaRUwzVaA&-N!h#i;I^K(` z>#&z^#o>Mrxvt_);c0F-;}qgq`uXCT6%>=DlYH8;WiYkBWp?VhH=GLpvb(UZuFm`2 zAGICLn@!y;)@q!7yq|hbeEV)=LWnb%h-;ca8;=uWw1Iv`=Xb*9lmMnX5lN2>vpRChn^nf3kIAC){q5ioX4E_SLG#@_Bvk* zH}7BaB|G8we0yj!6=NUb+fK*cBi-W?!=aOK(2iR}>VS{M>g|#27`{`hG&`~BcH2I4 zM%k#m8V|>k*FgWQdqTp<$VdXOezHM)jq+(lic;U{mv&auXlv>W$r>7-El{$+8>tL?ol^D5*4z9+GJ z_VK?m z?%P5uMQg^+(bK~?Jx1D@qK3QM_~=S>Xi%HspzrR(;5KkUMi+ydD{>Ym_ATp^0yGW& z&_JcxQrKpY=$#yNihhl9O8dd}Uevmgn`iz(>{Gpg#Ds%eBkjHSbn8c3Khv?Z?Tfv) zXZ_&Y#(R|y=QK_;70#-_8`FK7g?#xfHuF6;pY)ohHr#JG0z`wt54>{Q#qH^(_$|`T z5PzMRB3=ElJzL|;Dy7Bem+<6On_gr!l61mw)a={GTAY;X2K$6v>p9=p)R}zF4DUr% zctPcBt{QUFN6op!u6KD(JUtM*vTj(&ZeVLmch42}^nm?W^&3A|tGZ={L6 z>e^*#)ar=RVur!Zc<43Ss&)7D_$KkZcs!^)$@D%Ah3s;4ZFb9++7s@S&g<+A6yt>D zo=rMHu4{#6qSj#+7C5tG=4oh(eV#G&#DOW9kydxF`eXWxgM7y=g==-Av^M5u_P9nn z%_KO&SllaAx}&%KmL_HW=oj@aB;FI*zetS(kG}F{`Xj;DuL~3S0z{Y3@9WBSMBtc5 ziaoEU>^~E=WB8#S-w3s5_$zYfO$V zjxG)dt^E9F!yY)-q13)f1Bc)#f@W-lq>Q}XH?j4O=*99yC41F zfcWax^2}b)n=I}x^`Vgu5@~9h8-G&Ov~D$0^YC0Q@AUohbia~jANCH+;DJN=QeZIWwB{thns}LHu;sD_04TAH(N_9;=F9E%xQS zj;nL?X@3oxqoztOQHWt^-6fslo#SewqVy)wC+*reN@)pGglzORHUW)WE!DZvVe6`> z*&JoTCPi~=2_C_#CcosuURExi544>?Z(qNd;G?^EgE`l8{H!%iZ1knTCTb>eqVX_M)}P`Be_5NRg=_oF+nNddyDOo`~{hl*U5;?9X|J7VIf}XvHUh>?M|RM zW^BPHuH8!M#4fxR$_kHsM=qsE5>XrwW7;~_&G;p+Z&q)+?%_wTUgtHw0!#`U=|WJb zP#3GdcIevb^Jg<+Gv5*CNj{9Eb_v|q%4L|;trYiYX>rSbsDOW!kATOxYh1rg8hfWb z^@`>BDO!e*@hbk}>Ic*Vd?$Vte5SkaHzxc1)c8j>Q5XEec8BMr4JX>ArOQc)35V+l z~p45*IZBb|*%r zwu75FLcPbiH-h#;_!M=QGFh} zWK9vR5ayP|*}vL65ukN>;$@4!)+qu8Li?xr-Xm+e{KFqksv+jKT&R*985PtDxcYvj zY_Qr=&l`@&o0Iq!d+St7zpS2H8X!C=OKY0%f${zLQ3lUTF6y_0F(isOflKq}aU9o$8T6l)6H?Hg? zmYnU{0{D%9k3>clHWnqcH5Szor#@>xYrX}e*>{z&Y+fCWxXkcOWKs*t|8*|H84*r zSadEBa9Xp7uF7!W{Z>K!+L?g9uFa}g+~vmGK6k{&Li7pUj*GV^KTe8Cf7qLyHyg)vK()trpM zYRnZ!DfW869WgiWaQ6y^65%{eK+!k$z1(xzq$%sM)>8KQ{|_rb z)W4|D2)Bglq(qYNeJhcU-&v?-&M3gu`#E-@wb4AItHc29BTaF-)&l-{huKNS%$&}9#>;wH_hH^oDM9*C_VxYX~ zFGaA1CetkbBplne-NSA*Q%*;%O^2czC;Pk4IQC=ul+C#0*LwC0T(P*fb)SW#v@~0mvwUVMp8!@e>7T)VgQAV%>zw)7ptYioENHwBrXER^TIkzEfp4 zJ`EY6;uL)}_?7L)`>XmjDM#}GhrXnl-oA{G1T!#OWQ1(@+3!hk? z$1pe}O_Uq^*CPW$t1jpFkXDy3-nEvWHlL7!ii3hxi!Q^$7m;guqbkD;?2LDq8G*V0r^TEyrRw&3b{Ya(YrnBX4jYn zq7ZrvXzzk2tHq8^u>xc)FAh1MK&{kSPX zaSa|Kc%2YQw%&D(*rm%V&y>gHlp25dNEdz>pbhY?7C+8BHo8~e_3bDoAcC8D%$}+t zwXA2h?S6GLqI=rZoXD6h549>vAg#4!A5YF2{5gmjotPqTaebzMYmX=wJaXe}81})! z9wikn;kiOc05Vu+bxv>EIoBq*_aM?xOD&jJG?@;!a`69tf{=2KM%%}5v+VAkjW0GQDANqZ|eBQ6&fT_PSRtA7TZp|MXOIANioK{6_AA?8&Qz5MX%E4Z6xK)o1)vn?Y#;)KQ_^K$5M5Hi)@ex1pxgQeB8DV zms(nEFnsP3@J$8K2V$|aCTrIZWmuKT`a%e6@%)hE{4IB5s=3as)gjk>lVmjHS_b58k2 zpd+G)Pkxnz!#+l<2{erzBgxQY`;_5zk z%S{hQL<{j+I1zW`9I#P{erSf6IP%-u?k*vDm3)zF-<7|d5|oRd$|*_szQ|=FbA{q+~N}FGaI&@#a+>2;~n}=eF>ILoy?@J@zeP?qmzz;wusZmorOXM z)^0-HMW#5l>IVUJ9F=h>A3gF;rD0>(eg4Zl#mJ#Mq;bSEe)$P|+$8N}@)pqLen;BMECn7`N+zEbccm>rp32-B+fhfulHTvy2NBJ#c2hRK_8p;2kX zt*~bIAMOwf;Pq!H5YEe2?VA01S|pzDHEU>@P$h6wr4@@I_7e&qs~ZLkyX#=`aN&^p7ROHoonmx#PRim#u?<)ZmUfd^|l-XMEKqjD$G16QJCY zOrSTWWfiS@ZwS^hL6&-Fiw^d-@wX$#7Y@s^(-4vm{V)Nh^6n0Jy}S1(w^%FUr_$EM zK3AKGB=m&4FSUTBrhx9n>Pdf=?=z-ok00)=ZoU?+Lkn0V+fczcz&_^@*Ua4C$Q7p&U5j^-hQNbzX__bB*n3-}egs#-hX&BweQJ3}MyU z{J=6MVxq6&7s%^46CFgtRoiU^TTi>fr!V03jYSAk|vmaRkub5PU zD!C561icnoFbf3@J-^c`dCnp{KN@M4f}T(Pn6k-_%w~(Fv3G9%r zQL%Tz9_DO@EH7M7MvQtoxK((`q}o%wsthgb;W%KpSDC9!N1Dmcn`a6aA2-8b&(jbn zq-fcgmah7h`{`41$jx^1{hKLKzLfzN+9K&tyL~Ji%uHF`r%hKid zO|xDg_)=t%yyVo(%d=dB30bd9q3214V0<=r0%22tE|=grYqJ|^%fQ0c@uhGl>t-mq z;4y$6vy!bYs)y>1Nqarf?i6_JQ)z9l&hPv#VmP63l>GXO#9Yj>1+LcouZ9CX47q@> zRPnb5X~a~VPyq;egF@OV9zl(Za=%5-MM($X&8qA@+7;8{$*s_GZCt-Wk_P|uVb)_CO;`ECbv6_AR;Q87vC*sZp@>;1u+jeF0fU~}iuifG<3*@p^&vH2xg zuyY@m`uBhjR2D5^wC8pHB?hPOm~FqEMTuYZHBH#F2+(Ej{c>(Afk>Us>>)_C71wR8mb0H3*dQA3NF zwY^G7#o2Fv6>R9;w=n9m$hz!V^z?dsbKejQWP)0%89$(TBznRqt30=7Yw4T(yb9W~ zrS#rF?x-S-fi30+K0?sq#kcu|6xJFJI?5d7q6~v#hy+D5DKE*jA=Y9eZB?BR!d1PP z7C0f+ zXn0P2{&=EqGo>Re$CSzF1S>Lh7qJf8jvyg!qALkEa)(&J9`6+CKvFAbg9}l`R;#Yp zvmCRuihMnnEx4~`)k`4SlU2x=az+Pk%Pw>8+a4EIuHKsD$tTBo=jXq1MN-A%acBL2 zQQS{pxKIusDio}~(uB{wD%*T-&e>hnn}A)L2eFk*7+TR9x7^O_*75AlkFT}EF4aF2 z^PUTaewTO>HKIhX&np`3w~#kt@KX$`tVd4y?sc|L%1YM3tBMu*(pUfri?xB?chgUW zP-he0seGo8^siIg((j$%a%ofzA~iZHMUXLBk=aQxE7qcRF*5i>IALnziYO*WMfxiM zfs#FG=t`SLmQiq@<-`i+D@#5Y_WLD17_zfJ+QF()?xIKW#{SBIN^>(1RM;nZ--l%S zcC?Hm!&#d8Uf|%d92Xqb?}~q;WtH;?1R-Aw9!Xb>YcG9Ew%q$v?>^XpGfm{GlNH}P zwjx`fL0!cHm?nuqeK7zWD@JT5cSp7U##C!FksPsr+-%DZ_ZNkE#rR-*%MF=RnC2cP zU{)MWonQZgu7(ho`Yu}k^L{nO+&`H-}qR47d((>Xaa; zJDfU?8AcLZYFxQx&cSNT{;_0TW;xp}bCFwJpS%NF6^T0~$^YAhN_huD$Cr5sB}rsp zbTic=+wFU29d>M%V-1Gu0hLFxOXu6N;*vosbR@iAi5 zL%-HXpb&M?Kt{GYzFsQ+j==ZJkE|e2Cqb8-b6Uw{P?vC6M7ABGd`tNPR6@P$U@$-1oC5Ehc); znjvXzooYLP2)p09Ov!yLj1gVYWk^pOAPk128OIZF@DV~0JYc=`Eo6wo%)}jJ2Ng>) zJ)+mLHlfZdX9@R0Ra{~VSq%9eyRs-{=m&;Yq`W8_{hml7G)C9P85C)SeJ`1V>q_po z;seIQF77^XP8uO17FX^bNuGI(Q_QU=9Heq}*Tu}J){`=;foDgFLg-fVaScK=vw`@O zabCit&*9PUb$@aCEZY@)3ymE9X|PC^+5~BVc4EsHZZim|$b>#xXl#N<;>AjQm4CXS zxrLC0f?%^QP{NloGHbJMRxtC0-|6%;T)vczaLxWueBjJY{42F>rMkGv#$5LBua$~& zQ{%w>^IXPppy}Ae5W5GWUv&{1p_N37a^Ut8zb;N6hi;!Un!gNawD4^&`PmZ^n>9Wl z+yWw`l6rl=K|rQ`q2JnzxHWQ*GL+BqPLZQO5lu~8BQ5y!d#5Ig;brHJQ*+Av!?KY} za9xejs7xq{Z?2YS1+>S;bssv5vy=1hZ=yK_0=udm3nW+m7%46cmBkJiPsRf~TznLB zb8b!n_~&Bx0t3fPpwUg@Cx=hHM&8-|=Y{Cm))8e3y4r30H_7d|rGw(nBSYK(DKB*e zQXs*{-%KQpBwa&w-l2tsk*Jc$6z=;S<^|2rO%128@=L@}{V=X$0>wMmBil?8w@Dvl zPSWS+;!p+)4uw!)b7M{&-3LyWryo$!<`uhiihl^?T9EW%ttVbs+E%9vt!<$T>Sv_O z-vK>Ry>{h$e~0OyFFvgOvIu=Xt5^+sBA!C-{fM6h4EEw z&~u4L-ablc33zHhSdv`XQ%Fs^$s$V>^TBDTOwx)_;yL>v-ui5U_`ZT2-hCM!R#Uk- z$FNW-gB>Z2R+}x_$lb5z=C|GqcXYtA>rMk9D?(mQ|6ss7tu-v%C?LSv;fSC^Kco6y)@f`c9k+{k?)>!cCdYA<7Va z;@o;pN*dgjxsi{$=hsjmtZUt#dBaB*!>CIP$2G1xz}Im?QP-Z^QB<$=laH5J$wwAS z6nDHOiPtd>#V&W=;`O&*+&hr|n}0s}sE_^G^vO4oqCPk#Di;&@VtZ1FG{Q z4vwD^2&5Ik46keD{I_19rAA&Z+jbWc!nPMw#UD$jVC5>~YC(u^yA*EFiqaaB_M`Yk(AW?pJ#zzgs9?tyQ6Z?@7t5Yh2%(y>{*5$@< zG*avcZV}+T<&Mw9?L0V(9wo{vQN?DIYhwIvQTdC}jDX|u=-z=x6x$zqH?&vod=D^97nL076jzi7BPDJV~L#!ka|S0*1phj|D>?_1xv-0|90cb-SaJ`XEtvt)sc zMdqWiUhIRG2MLOt)mt?CPFndj#InElrJ)=fn+W*fH+}zH;?N_|z6G_>j}HqYSlf^ugAO#p@#z76$ux zEcJ4BUd7MMJ>Aec(9x*njdmQOtBL0B;5ig&vlSw=2xEJ@&{>s0pBWr-9klK`H_>=F ziqaV#+@x`5TI~T(JDR2h`g$nO9pC*IhwnRBkyf*ei-@!M;!3%YF56Cvjg==hRLDYh+f^#ck(&7v9 z0&1_H-8i3uzajK4%2RTgmcjdKuaJ1a@ji^r!SO`|_l4(Vt&{;m_h%(f$7njG1t8J+ z=oc$v*cjQ)Rs?=C|Pi*ArzkBvynX##I~aj&k!9~_M$ zX+I^ZR{@Z1n!QLvzm>0tUdYSoab1sLBjetUw%>dbZlZ%0H}T0MPtOhg2A~bo;{Tjs z2$u}SvbK1d_CCfFeGOtwBGbwjL-}ggT@g{~L;|_6?6S;t%t-|tm5)_jUtQ8YbKZFc zKbj92$rNW@;?<=4OjK(YKWgppyG6=5X+L@Zl*#YXt-6xJ#b0yZ9e!=Z@GW%!#}f?- z0}8xt*^J*v9|Fr7Qe``BDbeaZ5cz(O(9G(-I{MMgoe|&@8UzQPpC{g^$4VRQfQoY1 zPL|FjnKIkO9*-?=pOcP_dtk`1wld$KT+}m@-RZHByd)30O~uK6P5`IEL5n0y?6;$CpUzPw}-XW9Ut1*d;9fFk31U0IH! zvrUriX7Oj(IAN5BXC29!M{E6vc>CHyk)Fl1^$Y|~R%WCk`)TyS3GZ^)1h#7AMqbb6 zueqVIWmXyTUu-+EYb1(&Q+uD60KATN)$o{cAFXtn+5F0E7eDNtSUq^WME>YEjZNad zk`Fv=HM-sTDXYzx7~O87)6f2$Sic0X6}zKH=heb};fG5DDl5aMaS)}--ICR2WN_Yo zJ(6APViBy#AxHesslDWqRpV&_@y`AQvkFhMa}AaVUN-kZzC|OD{WEl#1Yu3rFd##e zN3`$^R-Sc`upp_l5_S0QlD(@QPoKx>cRgZZ05Pn3J=W-ze&;W01Ktsdb)mtMk5OZt zdDh02*QGeo{0fqN@8&E$$SQ<8H_TI8e0(EnhWZYB9XCaf`|zV8$xl_! z35EE3W4Dp^fJothUJTRsj9F|4uQ`g0oUf1WGqxP3EmzZX$;pIf;~Bp{UVE&y`{Y?I zm5$4^1z6+d^gLbfcecnTv}SI0{b(WtnSa{d@yQtEfWT<8$q(FD#->Zo&0T3vYp5#~ z$Bb6TZ0M1U83&C3H;YRbwGn&thO;otHSPQ^?_<&^pO3_gjgG`8#0t0lWPua|PVZ>Pe)lvX!Vh1UjE|2ZO8%ftM&!b`5R2tmDQ~0h z7|NhpRj@=cQU~U%NW0ULKMBEWjZm4KQz3)~A>_9SF7ei< z>b4oS&)*P0N*QLS#hr$1&4>1O?EAGq$%&q6 zcg(mVl79Cy;V^=j6%>UJ;YP<;ULlP`14_V>Wvf4HL|iGF=Dddd1f7lCH&_W=piQ4U|Kq+4^u#v+=Tn;ruWDUOu60FVz^A@OH)G$Ff-fEHU8_csQu+N z72?16Del=;;%idi7a?JrC~zb*Er}IOjxnfnF*w3^fhje@z;((_hyW&$~3E$tN?@|i9Zr)tZIoFf%+wzKxsvgGB*W5aaiQj%B^OfGEY$3TEFws2jvL|89MQ%8$nV0 zuyoeWuPyqnXh*C$!Ydr4YNyYA^rVc-nlT!sL2Z(o%lcPDJ&mP0?E4{#m2nJeL<4vd zyqk$V*&M}R>~wcG#TrZbqJ4^{!DfAv!BaWEoH^!xTjYwmpZTJE%W~tP51tf37cDtO zLC@A5$9u4}ENLIXdNgcid_qEfM3pCAZQMkvSQ_Eh#RD*TEbo_>^9nlCd0o|DqcWp> zyqS8td5oLE{_GzJ77-14{Ef}#+?ugyVlQ>@p0p7%xM#I zzB5+}lE~kF@-X%!4CSFNenPv5T(8ZRk#{!m_*QB8|VJeWC#|DnZ+(gE`&XTSU}gk}AHWGUFCu*S?6VuKGCg=rGaQY3rYg zbs4Vz+PJP-7H9|(P&gnDwXm&X#B0we{y!eyB0#fJ-;XRl+$PBh#Cl8NPxaLX|8x-& zV0{=6X%gS&VO|GQ5$|Ecii>Pi+i!>S?7$dkCF>?;(v+4lkZu{c`P3}?$axa_wmn1+ zqraw{)@3IR2LCkSN0}4eck<0ABZEIM8@f(&HjU+*d09cjy43O?Nb+bsh_e^07L4aB z=k`PiqhA;3iqdw{M&bG#&mifSd1_x9kE_0!w&V&en? z!x>oR#?OZke!W8z6E&cFK`XT5YZW8+iWdTp+elFHzUF}-3%*-qMsW%sX1e8TPZrF1 zqNef+X6^#V_#BB+Tnz{TpNWGdDc42M>|oQ|524ZU@&KK%Z* z#Ym22YOXj%RVf4*Wt{k+?JyfMJ{Ju^yeh17uIHStxK%!FPe!GT@x)VI&nlpo`%-AV zJ)ZVlw{Igex6Gx|f=whxk(^q-_cg=;#_exFZ@0p84(Bi>znJ7|4?$K4Q6ba^lV@Kh zG!d~xzFVF#Hj#yAwVYz0qRGS@XJ=hOCucxFTp$tzn}Q+O4z|}0fAnBctXQsb*s!fU z1Noa5s=$2i>WuVMsizqG897C-U=A#a)R2Y^29*EgI~mUi#JcRGty1;kPn7a~cp)@rvT!6}eC*M_1aWp{;#IwclRr%|1Z0O-?Eg-I9n>t3Z5a&&m2_Te-c}>DI7f%jNWM+BG@dey(quOnB!I?J7azM-{u0T-%2 z`81==unMS4Pvu1J_Dj)Wf8)GsKRLp^FlphW-z^nSd{6(w63{nFGL&<6MpPFgygWfF zGZ&2cZf9&s=T^~eufxNz_7>vIm13>=xgd-ddx%o7mHkI#mE`=o+=I^38W!TV&!LHF z(RVfO3w5L3CjvR*0rutU`gWhr0LNv+D0b>zR$UF^+?dm zn=m<0FP}Fk0QEn<#yIP**_Fi-=tSva<6l@z??>SSW^}p{^a|#4AB=q|*I3!Ob$Mmh z6&aCY@oVEZGL~j)9MG+?43w$E6*G;DQ|58$=G9 zWW*AO zRO>7y(8rV2&h<%|NA$){-(ytzUIRJ*uoC>JhHPO-wR=(@K$Id%zq^cz;%w6d^1do8 zH6Ge}W-L0DS|ABpy-x{QX^su3N(Zb*BI^d4e0-@wC9~QaE8N=^bB`&YvA!iuYgP_- z$>FaqK(uBfpPQIVnN7ZQ%AbFg*R2vUZ=wJZ&6Jv0 zM9UUX)lybXJk-IQ7a-S7YI?s&FpBa7XW&>Z>e4YTqrGi@lKyI3rp7U9+7crh{xV*E z&(_T0ztrxe!$t#TA?*e6%tD$k9VdRtMO20YQygN1Y^6!IpV#MDe_Z^^WH{Q^6sCb` zihzB2De+E#ca$sD(f+}os;!eO)U{CUx)6L%fd2(nI2i{Ao}8TL`gzeYL5BT%7f=W_ zCw~W~MOfBr;A?950eikMxv#aea<_6Ko=V7)DFcSFnM}njRj~~uQO>$~ue_SXSjJZM zl>f^6CFGd9&vH}~g2_zkLLP%o`f_dtxM zES=J!F{RDWwD`D4((!_ByrJ@{6$brHs9k@t`)%RbrL%Q&3} zdSBawe{uiPN1sOxr*}@^mgq8#6cAs>2TnJG00V!%piFS50w!9nGpv7=v38&TZ{kFO!qr5Eq$v z?X$b|e>`>SS?~fXH-hvh11P=fRLm@<+9|rBdC#$8CODuhJ$7sH6(JdjsyaH0lW=zf zD{q)FTCa}iTDV~C`21~(Z{A%hQEWV_+DD7sQ~&it%kyZpoDIUx71|gJaz#Tz2*tqm zKmv($w#u=t?@O@})Y6b!&=9UcvgU+_=~|r`4a<21iG>j9t3->CF6ZeSXj@9@9aFOm8%!sV>cG65Jl1-YsorJSC2J_ku~Vk#RtyK)n0WX)(d9H8B=h zv0dmb)b^vxQYA5PpZkjZa?LjIvy!D!1*Jk)GSs7$_oADC(E*&1MbHC*PzD)|>1l4Z z*+Ic>P32vxhLOQ1l$ZFS@yqNWd|=fi)^GBN#-pL^Xvf~6;4rkHf*&D+iYwsOCVob+ zp{!g)u*U(Nz%+zLGg4)6HOgEnt#-Gsmf!_lIlK*gNLt;7I z=}?w+8dXezWpuiGOzk?oy3tKbQVi1}ROSMRYP2w^DowmCOgxD#BbY`@`g4I8nsK*D zxs@E&8N*r}(p2#GdMKxZ3lM2kNeH{K*|57^GXzO!$aBhx@4B%v2<~*N%)qQ_*O_g1 zheb?51Ur?2qtBBHtw4sUjby~wnA<^{i+uJ_md)x+=*Gr1^Q_{r>y`@rT$(=(eY<8! zNgVfs^rZ7)S$h(y6m!y!)XtaX5CCKc6V5Kdo^uAG>sK^d*ygdiTMUhAiH<|zHTQtD zD=`y4-Y|PUs;t$76cApFr?BB>r{=y}#+Qzb5p%t+VWQQi);1jV$HK`qT`98{VeVE} zW2Ux^*zNO?&wE07-zZeqoa7U0T?Dm^9y}AGY?DvpXXARxc|C?02IlKwG=lbhPb))Q zI#txeqhzDG5`Kwz^I$CLLO&GpWppVLoLkWBUF&Qf=P)cwFx+S6*&Ft3g8`P#&y+J> zi|vPm%{+Osz6T24v#d{*f?6UmdM|GPo?)5sw zWX37%%z#Bg-iH~F{RxRGfT*`3;wl!eM&^^1{FFarD$3HidW{!1c9!`>b*51C5W6S> zPI!4HtI!wbu+n;&n?AVFdH6jnt)EA&Wurzi5go-)04y)Xyg+FehKO!U-!GMZ_>y*5 zaU?C6X`jBPUiSVoQbSFFLUA;0d-Hyc3BT<4h|xD7uIli6>aq}3FIN?3a_^=sxuDjA zjAfG>gH+8BzC*mT2~+FE68fU3Yicn}Pv3;@_l5UjzL|!2vjbnUdu{R~KWAVN1)#Gf2qd8v8D(?MKn}zy>$HBI&xX|gL`S!S(FCP5)>LVdjW#b9N^X9@? zCr&OT!Xu1`&yr)S!2LGV>U#k`ZcM#Cj42Npw$7N;E&zgR%qC%XF$;p@k;^9ABFiMg zrtEMgDSpUQ245>7L7<4Mqp$A5c3(ijaA5tg7c%jCY5)J@Z$WL$?ujCK6L1Uf(pd0Mznj$M!Vrk6;A$N(KiP)0znhzv?B1JA<7un@kXjgG`i}}@f7_|f|#cP;Vv(_F~ zt%=hC%J8#rl$d)ML*d%$uMcSrRGDFus`302c=cr%MS5HP=pIq9vZbg$;WMHJKr<6f zKbli@1e}n&%*X4%m@0lZ7!PF|Cm8MzPtQV~?mD3X?^6-qli2SL>B@J))JRW71d(Ep zn^3$f3cZu?%7;(u>?MeuDm$ZMwJ;CMcS}{9do*EYt@+AohrzLdFA;Vp8v|FufZiKj#Wyv&4grwAW;uOEH@?_00Q&cHFn3YW-xF_tGpCvgpSRyj^I2Y_Pa=a3a!^Fi`;)QoXNZRXHP*svo z$3&X7`1lbZ%{NN&gBS#yf824_dNHkZOR$7AUT+v02PU|8o$*mUDHsais#J9J1OQ-E zQG_}5Lw-N}jQuG8@HyuT!iWPze|Z><#h4a*X41obiTclhBBCz-QAl6Ik9V5zt`fu5 zu|%iY37>Gv0aZhqZ6q2$wg+dxB**&L>b~YpJ=@(ee8nUD5%5L<7Q#7oOIlMuWwX^P z{IK?!3c+FWW3TU9W?vfOw<+USghx$k1@zJ8q+>N!N=%-Y3TjoVkO$`bP8+P85{{0| zMtU&lNxO0ahgwnmZ07IX&xG>g4Q|1gWM3HGRr-#bzDDVZGmi}I*=laIyG~#6;|^?v zaaW6kn!57QU)&{YnWxJyqQPRB=F-DSTuFS>uEtyJSbz)>jhHR7sUZpMzox%k*8jLPhDp{Ss0cjL9GZ&{K$ike zru9OBaXZ^yC1ePA|mp+1u4XHV@ zR*rz#svy)D@#2>7J1vA5qnTJqX(Z(397#`i8bFJ}(EWn!G-Ohf0E3UMW8PD@lKp3G zLIYPJT&bINYRQ!*YjcRjPYST1#&}%G8t}hJtT5=urgW~I2UL%V7xuWV|2n_wX4ZN&SUCrjCz4g*j}&f?j|T>5 zO2YvSWy=j$O$K1YRbgunW;qP&7b#O#0O`qAluk8>k*(c72D`=jy^nz?#~-{|#AV*e zqCec9L8mFr&*LVF0X?xPyKU#bIADV?z$s>mr*rG^E>3<*9sJOGRULTbS(Umv0n!fG z4$GRXmKV0dM>~B1EbN8z*A%~7?bIN}^`Z>(8-Fj3V()Cu+)7hAyvwgE&ZX~73Ay)7 zte%6Ixi#5h0DGr5!tQBgHXoYHKk9#rEJhQaU(-}`(+OwH9T3L}rfLd5CWHm9%6~E5 z=}3?bQR^gE?CiFpPDA7GI2{ii8rBf>Tith;rtxsuU)A9@e^NcpzIs=?#W>dp>Ph*1 zy^<>a8+j!;QibKKN`x1|EY~U%X)=hlJq%UT+f?X-)pEaGfra_tmahnLS3@!FZoCCJKdsGFq)#BtR+pABlc_Y^g+{x2Wo|z z)#>DE(66u)>%5et3t`PKBAkxolV@mK41*u+P3hrtym&ItvzwW0rf|Xt(WUB5x`gX9 zgcr@#ou%5Ca0)My_IRxYAEdLMAkoAxx&V$+E#yio#}{s_L3}f)W_u2rY{Kr8T>a-& ziMc0;9a+7&1r}DaS8P1bRjELw^Lt(C`h03?Bkv3`-nREC-xSTEIMDUc8pj6`;nKyt zJ`u1YfH`nDU_gwCqB;{M8S?1z{%ob!rLUaEl?6HCMriTQ8i!Psk6K#${FmfoXQr7m zZh4qCzw>KSyzyZR|d3w2DsWBeIJV+Ot%V66dij1aEe{;6gasr||wF;H$74gLqm zH<&cF%qAKVejkYl4a1^X6mRxj?*2)*crBlZa{fA;!d@SfP`Hs){jlcDXrd-n8~nSA zUL^FFnp^0ewo$*aid$b(hzg=iOx(tlCd2%h7V7S>;x8DZc!AGe2v~TbC#iGp8DaNQ zPzyOfs z<9c8)t7xu%X)s|4giFp0v}Mo#WL#x+DIP>&HGvksqGr%-bZNLx_+h1{j0D9{GT6HZ?norb8*7pDBZKz_I#t}r0V zD)33I?&Qx1*PdU*%W5vRr8&)CJBC|QSLs{N)AZmg^49j%4j`GD0h0AnD ze(=a|P>`f}n4 zLlyOb*Xs763|n{;o#of`&J$J~uTvz0pzW-nlNaqr5Ivapg9VY9} z?CG=O!eFNjl#yh6$5nKH>yF{r@2UGvv1y{I0rZmOpJ(4Tgd^)u{p&bUQv}h;SL#y9 zD_ad^SseBtjM7z=bqBM3?&~uxVvQcsglI@UUvHU)D44)78ZEy_@TF50`vv(uzI3am zQ`OC4@zNo|Wia)3;3YCzM|QH=nlF|vey-~^HC}X)4ExO2j7bu|0Se+gnB8l^^h{pc z4=`BVv_lJy{*cW%r>+o?IFMVxA)sUqKeY9^k7Cbes z@+s3kK^CBOXzJYu7*PATf+FkixHq;_yx$q0kl$M~g#kb|6zK=v$^n78D2_1RS+xZs z$gcWSQTZ{44=R~*dPCML=aZ3cxs!&)BWSX=Vd!74(2!{_^u%PClWkr<*)iqdJxLH& zf4A=}QjAK@s2i@iQUyFfoch!{hkATM00z!JnIE22 zKv%hjDiQ%=?u$Q8ji(j_=94hXyqAD+aPb~gf5X$Dl3~Nsd5+pO^$ZV?q&Nu|mMj?W z{AYCb+X%Or#g=Q}x1qZG8*WcazS!NOwUz;l%O$O_?xwSvV}qs5t1SClFtb)}w1hy> zYJjcVp>nMHp|{j8VhdzF3s2{~x84N-1}@l1hcLqt8=_5wumt#DjiXp$H^ ziKX@^A6VUcyw|grR;x_-)kVrANKz(oRq0t%C*w%!Fu@MQ{#966C|lM(Fq!HXmq;c; zZ7fqgzy#Lx!1QN7esE>#8p;bI^bz1nA1cmnQ~v-!c7jdS**yUAQ2j6PWpMFVD$@uvTzkg<+EHn!~=*-y=FH!?x_JBiTb1Ew#?QH;AdEpWh29hvuou)-6_7byX3I}QG}y4l z-O?zNiH486CuP)bYzRLj&*u2*bQoW&vM|?XlgQR<_5%cS*e#(vourdcjUOoU~a&}`3pNKtn)8D+_c||TEm5~ z>60l4#&%HSw|2WrKZ1BFc5(shFcQK`LTp8`SYxWMP}b`jcl1rcKfBp5fwo|Yw9v%~ z-lCb*rURS50=1o|kUqARGdDqxQ{=CJkn!$MU*4NUBe>#)8D-^EHznKC-(xD9D>Dej zLGQt46S%Eih--TGhw#&X&&LFYKYPpLs8bUR5oYd~?#MDk>&N>~JfHl4BiV|@KNGTO^2;;MRoa6D(#unL8x^OMK{45&B@SELa`)w)43kA_Z?4Gc)JE!ohd|8V# zwuzGGqVtcy5G^;cO?N}tag;3ieZ-3XP`hC`$GQ2n;)Zggd)V-4)BMLt+q1cKtlS=#SyoD#HH{yQ%k$;h1J|;4p zI_nh*Gz{{_w&+I&B5=_8IaK=161B#O+vA;cx{RC&Kl5w=i!tJDEkJw#iGhwkg8D+~ zM>@VQo(${mrp6OX@ZRz0Pr!}rIn@WZ=)Hd`FY2nyAg!vyz{WiMJ9^qVz^a$ZD0-&E z_bdUFe6nwvgRgr`(VeIDLuc|~h5-1P*3IxEFaD?(xufd!$Kg5C^&N-TFNY)mc{1L@nxdI`Y3JvMkp${wHt%B&>Lc2F{Ki(V1V z>nhaxk}rnejxe&9X_4&|Ts`*SH74DtJ;vQ7yLRH;?54JNc6=^yO)kZCslF{dZCTt5XL}h)CE_l z^=S1RogbtUZH_?Q5;e00z!D8D4)t~SlD8A`fmhQIR=Km=i1l3wI`ZRIa(KL zArlfcp9v=m9BcV)RbTZxPKag7IEI>jw=;6ORZ5gTr6Q57P&3f&RSlxmp8Qg=CKU8Z z!$PkP-eqjxep%|)cbhbX&SrrNXCvY|sWvF4wTOJ8COh->rk3u8gw2^S4?c=Kvq_J$ znk~v6_<9(H(e_Aa#;1BooNO)8AQC->1k}n7#1bS5PUz;Ctiq{;%$gM`Pv-$1Ddtg4 zRekV5k6TGlk|!#?Uf^Z84yOsw;BR9V*|8d%=E?*VdI(4$9o>EyPm=H>k?DVSzyl`~ zQ+5AH=Bzs|Gq1UUV}^eCZRuYzM4t0iWeg}uVGvE}Ij%J{UpvLA49wHc$6&Lg!+ON`x9 za3^7)CGeR4*tTtBV%xTD+qP}n&cwEDbK+!@ox4?ccW>3*+I{Qqpv`D2MNpKTB@cbN^IxVkU*s+Ge|-cmRV$2E7?eai1!K?NqQSO3MrcU z>P;k2^}vdJ!R<}%hP%#^UOW=Sc~@B@sK@tYWoWdxXTfK`UD`G{qoXx!WzS(i(GOb% z6}d%=%y{;I$HRP@ZPExjH}yuxh;!?j(re{VH>Rrg;@-KFIZ_9vKApg}P34~q&$XZ# zaYc0ag8uSwp(Dl-Us&T?;#ylcH&<_MfVJ6OCqPi)XsO6~fjOdE{YBXF?ZlG3sPRkc zI#HDywRJU$$dSa4@4D$MmFxIWPNDl7;8HfBTS~pGfmPdjB*_F z{X#v%1|u%F;SU|6vi4jo)2w%il6``Luin#nePp&4l_-=Xi#vuNIlH*1gp@@%Wmt#l zeij&mQD{@k1wNR5;-U}b=kgsyIx=M3uA8sQ^3=XFvT3CJeW|-Sj_t^uh-al;P`GHl zez5h|TC;N-w*&OH=wn*)M%<6wA1^l)A{W9~Mr6(og2rPkYt^LG-&L-n{pVwLrM?wE zL!N7$9y#Sg<&MkKGF>Vz&26>W~*9#3Yzp@wS8-3P?!G9n4S!ndT zb43=8@o-8;lyy`&$x2gt9ghoU@+|Fs23?I8?9kug3}y_&u3Zu5GUD|d=Z@8Sr?>^I zuH{Un`$(rhT>$J4-7O8o2RQ0a5o!sDUP)}sFNevOpT2gObC1q91=mBny-v7FZH>%{ zZ^2wiycXiaIf1z0#MCSu<0-onz)(M*3ZP8{2Xt>(Qu!5&7^-9_{!~;4X%~;fN=(d} z0Ia$pY2~A=%%Vv{i_ZYUf|>Zk#wcFDB><*Zv=r z6YB{(5eNXDOtTX^VS+-KZu>CZ3yH}nt0r7vIG-}!(`Rr9>zA|>cn~-^=~9cEOI7Sq z1IvN+alB%&Y}^b3Wv+92xExL^{POCeb7m`gv(vl+Wf13ANwP=;Ny!Rn!FsB44tUE? zgD~Ag;-3$ok@e}{adtuc@HUHJG>$$zllBr;-zuM}P~q<@i!imi$lt_cs|~LwCrbEa z=#3Rs(OVxuy;(5$24DLA{2zFIE!&KH{k+AURKKKgsBT&XfaYf3Y+LR}svKA};heQ^ zK<3U!0b0~dGxt}ZN0+L&yLi=3|B|QKFYWcL07=AdRCG|S83J(-+ z)c{Xoy;8vx=e(mX4vvg)VR_|{5v!t-T%=+(v)~kDNU{N*U(D@YWJm3ArZQbprjK%t z^z%aZm2W#feSN@j1mGraU(nI}5gv57W`XhMws5KW8Q!8Oe}cdm0+@#cGs~|uf~bog zN9aq-q{=AXNuBCZdsu8Sx8w&Iyy7wl34I?;{$))ii&hkEtFb13LB{GSK|!jHtyS}0 zcpX0NY-gp7W6H1v$ieFatYhhr0m$0%u7eTm3GLf;(y-iao&pKq7uq+Rlbb|LLt7{>xnYOTW@&ZG~9-+Dq`7_AWhkXu>Qil9lny_%@xJ@>uq%2%XMz=1dLzm zA;Dyb(0)6bZ3aUfnFJo{5Yj^nk%b*eWOA|_NXL|zpG?c(YSZ@Avr0dyQGNCnA+P(O zdfG46Tf~gmo1f%xGq0@f6xJ*7tq$7y@nMs#lboJ{x-X{liab{Wf@the^_!spiRwuA z_5mjY;`w)~CwFOft@N)Y$+ut8R)KCpnPJ(mJ14L05-Xl7|12m!Uk<`ODTijH!bNU@ zqz-LLB$kw2iu6kb-E9~Rp_#JN6A9_bz>)-lU2RX=>d0-XxTna$Me1XwCKYtA_^|!t z)*?Ac7XS?$5=#sCU$|`{o*pCt^KD|grcM(IPx;10xLkR?)7hu-K3(lR$O$3UwJzvQAhj9X;{)%xx+h1R!dFssC>Sx;51y+}`W%c3}ojE&W%x zZgyB=$q8&Q`pqL#@EmD*9|4-$z~4+k>Yr!)GHUB&7P*1;TiD_#4*{75wB`tRK}xe5 z9HFm-$Gb^sFo?)0*Jt{Fw_9*6W@G)M?li6$`Hec{DiFV}nv%EiTfabud5+T0k@UF% z%=F(N39>;AKk|#FZP@LXa@8#tN^OrtK#H}Kg_XpUIxMW7KBH82xrYngkxi zGvxvSAda8Y8+%o)7Xk^~@z=muH#lSY@(^vm8$RyDWgJq`R?AfV=5y#+Tt8!vUv_d^ zixs=n^JsOqGuV~p&*tb&P9Je4h^%gpmyn@*z2@;7eRNTu6K*Kah})+UnSgoRo6x^e z_4Fj`b2!$138sdzn{$KW$~8<)#vhJ+@Kt`yjuMCe?nwy&(n6|Oez&;zr!B--7bI~C z305|4?v0LAyodS`$PJ%!oq|}pAH~SPGXMorg;RsFtVlG7np)9@8?-K$L_MWxv03JY zY%X?_6O)@1n+?Wx+_0VUkC(#Z~U$Ci9Wimoj%bmzjnZsMYO zm$Ef`%coFS##_1TM8LlfTST3>mhY4VHoJ!0<@N_UG438Mwf~h*$^ORCsD4ZvtHjL8 zM@KQR;EIC=%~%3B+Bjy>;rMGM=PaORly2&0z7P)-z=@pd=nFK+0&stuObi^FV5F& ztLW>cLQ#b!J**Y!ca-q<^h^rhaSN&AA;-^O{&cEdx%S3HqqU`*>w+T9!}!0*Gbw1* zO<;hdFU64h5Dr7Wgc>e{On@4wHr-$z^M%N$);15Qiy zFTvEPG(ZL9 zlgTrkj7ocP`S1KnW}rr&YEXibV<7;(?k>Mv|#buNP+IT6l(z#LI zzY=Qc!WI%}C*h(O$akv&W<~a%UoxWy@491{4^OUNSkdy3(0PeUcfTBPd?N@2jls{Jbd)EKw#v!HM)XQ^h3$SHei@L-$ep)-#Rz(XZ*gkR zS|Hbaq66sD?>uC|cW{=&z}uT?0X^As*hxz{jez0TP0k8cc-*oPuvQ2{B_07;gh)68Zf$;OdWTVdEy3>*r7aDX`dXa7)A<)s#+o?o{4Bli7kd_Uo5+o%RP}mwm`Al zel$t8cD+H<4M<6+!^TOqn1EGQWbZx_Nh-EM36C`|+ren(ki(L*gV^gGSkW{bT>K}I z6n;$Fu~cC@#hkgU@&K;SPxT~PZjA}; z!Ji9?$gV~CO(A~*1s@;~oJct&UJKHdvU5aI3tt?O*y4qfQ1RW6l6WD3{I>@q^@br; ze))0n`1aZK58c!!VKLDYddZO)Fo*rd>b_@eWb$02FWaPR&olW&0!d6ZteY^pSI_}1g&4!xQmIpLo~nfI~&T0 zO;>HfH*$Nb+Qm|K{s)A_Sx(E}qSMMEi0ta`If{1*6AQfO;(~l0r6?N|?MIA*AI%cv z3eJ7VTI&4^Cb}tj3iF~$q{igt)a=BZaR}{u{GNL5Xc^_r8CHOVi4HG;^FDDE$1%hPY zrca47)21gORbD6>t6==YNj`WKBg@1w+zB{&uw4vB+m>N2+?)F=1o*DrJ-yc3Y=55& zlojXX0OoU`MCEY%K`(k2{ihrZ!|RX#m;= z)%woid-spsJ9C#X1Bg5YxyzUhQDYfA{;5&d3kgd0pDM>Sur}hh(!n~w<)qnCQ<1np zJpv|QDC!mepIK7)GbfytATjRyF$w=AMI(G^5}EP<9y~lfIqhor$|BEfXWkR^gN5jV z??Y32y?X=CwK?QQHmAC|ivrP5y4NI<;*J^LK}rQj61Ppc=-%BC!5B@`TtBlmOwM1M znX+B)sqx|{nnnv!np6+a5bIC{C+rxHwj@WTzPp+L6-y-MKJ2uQZmyoi8Dtl;6-fp` z2$>JSr8?joNV?V5@xY~$qBF?D?Q-X9m;o-hW?rTk2w9;BmaO0eks=L@{izB;|LB`e zh27h&*8?ZKKc#?I=G^$}Py`Zf4a%G35C^1YgMowt2NDn>ocq3~h{(in_%lDpuYIj9 zq96!tF@FKs!~e>|tArO!H^5yp7bMqsR%1v}#ui;Gkyaa?PUDJ zr(2XH6TufLR8yJtY?+sDCL3LLD{emT#l^z}y0ZsPhpBK{vmf7z`Zlw+R$>auAHG-3 zH(4*;FFi^@VR-pMJOT2oyFVAj<5N;L9=EMg$fb+>5P>V?FY+7#Er=3A8}^2=>{Ba< zQA3UH-B7I(pPBsl5&<{62*JTB!3Xct1i^QF`yR$gp0%S2{x9Z7u@elw3o2rB&r)GN zqZ0)L0PS{_NS{bPS1^U|0EN0HFb5(7o=mKe>CiBLM}wMWP_;Y*fh;a zjF|tUmL)k*0g7=J?6L)(qDs34J3^!e5Xx==)OVo7J(DKlXw1y8n|-9IETWS0{f>Y3 zW8vPE;grcxR-H#dC7$!X(iJ3fF++deG6DQuC&sOAO?g7lSdb3H01`kPPcT!@7%e1; zWySfi&{=sWfKuR7g8u?cnf`{0ph)?Wz;It194m8V#ET<^kXl_^MRUwv)RaDF(fZoa z&^(=O3k1!WR{NZMUwL9NKDpn;yyLyw4pC^lok6oBoHTF*7dI!{*moJ4Z@WGZ@km%V z%3k_jwwwV%iJzCq^v;kn^+g~*93NXcy`7*GW|$ectw)<0xRP*euKg_myk^r3ZrZ-! z&fa2GA^NMe1^oml%FL`RA&}pywKrSmzY)<{{|_Ym|0SX;YyE3l3(?5PD%sl_+A%TG z3EA72{P!w4E9ZZx=v-`sOzeytgiK5f2#(z%#8{u4+44=bIKo%uhH|J6!oW@GyQwbI+2J#;=l_;ITnS4@mp+ibVw$kl>J z-LSXX7S`Euw#RLeur{)QL~U$vFEB4M zIRKlOq+Z(qY_T#eLa%FNfn;0&09pqVli%=y!W6JP+DO6_gct!k6S#!-*G~uMKn6wz z`ynKt5umn#@B~sQ0f{(*=;tOChh_*SU<%mZ;HcNQxfZbiJb`6FZ5CKlrYRZ~SW(}0eoo~j^bv>kB+Q*&=`p75U|;+mQwYB^9uq!eW&aG(_npu?(3 zYJYy!fHs1!84DmMYJv{|Pkz8p$5d1mRFwsF1oPrgCnONbKF<8$!lC@8zXQpS0mK_a zD}uT*Bu{ofG7#lVZq9Y*`Gu~I&iQl>Uherd?)3R}?ayJkk=+55L!)y8h>s3l!0JFh z%#n@tqoN#z^L{_bmnF2|=xZHj{0!rF)M!sNo_W|Dz@hK(^C3!w*wAi;o!=HQ`x+@>Ej zt}lw2{z}*l-|ft}*6{SgDFGfci>vGN@Al2FJ6oKs4Q?$?Zmw?{VnhQgL%6S@-3R$O zTAQDw37ARAs7UJS`AHu@9$jtCj<~DMMUGDHchfhDyn;v=?7-jvgu$^1FryEkvZ6M! zAvbmg(ptPj-~^@dts*%&HyG!yK-uQx>g>qsQNEHgtTxJ$fGUS$Te*5`>)RzD1@&EE z3jt}{-_-2iuWC@BH#8s@HumzL!GKVK8H#veK!S|oJxW6Rn8O^P&IfZZukN&V9{{q-Ju-5HAt)JnM-1i8o zlRx3jp~V@YH1i^ZzbDqe^i}_+>nu*(8=r&Q&eQ}F;Jr(ie3-}A2td3X%{RU|n*m#3 zZD{@!erAXo(`XkIlLW-xFreKRL;UQ2D!vKW06z&aM=2E%>wh!R`(s6JVsB+?tY-md zXlww5!NZ5yIRFS)28JhL?hU>$O;HN2^o2nR%9~rAKOBJ9d3Zd5Wo~fyzgd%F@dO#Z z#Gf#X%pvBbzcCy^&QE@VIWd8rV17hpfV@h7h|z(1C;bu6#ASwlisC6pe}2UP2n=Pu zA+Ug-2Koo%8_N8HYk<6>|6LBK`3K_yd0qVojmD3+`3Dmu-h4v{5O4j!`7ye^;e1IP zzj2I16u5uje2rgyVSMdDPXE z+XN7354{onc>Mj$zWpI3{Ji`9GovjrKD!c}7McquI5j*7ZD3+*{!=hMefuA+sUL2> zpUw67g%6HzXBXfALG=Qr?Z=>8CienUCu4`oc8hNpEK)3r9ZhiZ{4f>TVW&+O9{e_m zS$L*|{(<@pj@+IBIk6z=HJ*jJHi=+b#Gwz{VzNS~%T*CYgSC0>RU8CG6$e`FSh*De zUAKw$n&ga24Qd|w<_uHzUbePWpaO0;;^~duXVeMS_qa!zNR9FuS2~QvQir%k=$%3A z6<27ic2IlEF3{zRztDW#zZ=vYGC#_H=`sG>u}Sfj$7nh|!%5OW{(Ul8ee73XZ8kS6 z$t&Q5bVm(H&dWpom=g2xjhW;IS8}!3n5Y#=y*?>*gEJ?%JzEJgsI|eO;d-Iwe90Jc zp~~~aZ~?n<-^ZBYLo~_@=&W^6qV#`Ppf4RvwNIbA{6oW5&fQAs0W5lEC9R!O^x{!3 zJ4SuSEno<_Gw@WuD^Wi&&yh$UJO{M$aGa+e7&eRhyS*EY7nwaRd|{s{Gtu4y#i}SP z4S5xFRsK&>B~00fD*iAir+GKBZjB0wR|}XiFl$M@J9D5u$t;{KwXY@x)M0;jLVRPa zYokp}$FyQ4ZfIie2%~;MJ3K!f>o~Y;zJs1qCh|4g(xxc2X%wKE9me)rHES>-ZT**` z*G<^)JDC1RDQRL~_1y=oY4MnYvqyPrhgThHj+5|CgfrIKk+Ej5KpZ1FJKK}D-L2p| zw+=N?LlrY7p@NXbq}WN%RzV=7Oa=yuiGoMl#pmTQ6x-&q#daW6>A;!al5z zI*ULaWeN#}ECnQ0{$|-eC{x4@Ztwx<=z*q#=Q?C;yX8?0d*^6tPG3@S0&!?%Dm!=NS{H6s)L)MxgNeOKzCeBEuxWLQ;tl*}&6FWV}J#3I6FW zOc)(B-%p7x+}gTl-hunr@wB@5bX^x?7eO1(cZUp`GeeU3tb9WfSL|3GRo0NcIF%}B z@x6$Mjs>fiyaz}YYnuBfGf&?w7t%5DrstPSz7;AN&91K8ZYgjY3H6V=8@-E@@a_j} z8Y}QYSMMqsmpI(fD@s`w*EDy$NW?)yo_d(il)fvy$LVI%Zojf@NZGJzaovloIwHLS zU$fF`TzKbe&E1)m`eW70h1^LY!C-JW9`^EOEL#5{l%fy59RYn^mfxH}@Ig&z#m_|M zgz)iw^DBG31zye?@?cc#Eqh-=IAnY-nRcUWeP*O@1z`#(hIPBsSy^oqc#&2?15=6G zG(Kb{og%y^do00hPq})~$I|d;6Op=mKORGg{7@~&&4+R@8_ufs?t#4o*|5r${MQ$T zYL73u0u-EIxRlTZ)dy)g7YUKpQk8V;D+mkJOnZJ;!TE@+@!S-@FuVnF&MPYwl^b8x z)`2;|I20SimM>Z3uN29Es<#CsGE5 z&ei4Ryb(Vj1jw8;n+|479zS$Nv0A?XN+Rf`b}VL%wcVqyxq#l29nDX-XUSP2q6F_> zx^}>)FtK75@S7--;K}}w7Y$$c@{_JWhhy$f$Zx6F(qX)}jD+tAxX?=b=ke5OsOSMVNm3L;#jB&+kcwIKl<&i6-(WBHn+W$ z@ONwm_(~y^2%=@V4ynE_9Cj|0ev~+t%mu4QFY4WXUeqwMj#TN##Y~xo>AO>CH)Nob z$@3D@U+bvvFWqv{vMotVwl8e}>jak;Js!%)vD2KK51rSH^=F89xm^DVR!c5ak&t}L zNg?lfg9W|mVIi6U+!%|5rR*Eq-Bcs5CVg|}G*g`Wis0)`e**++zCl=;^FZ6n#G1e7 z9$T6)FAq6I9OOCdp{E5WZdl4x`k*uZbgZg$sDG;exGLK+-blILj$<}8DKfNv?dYS zj7%F4owJrXj0aVosk?}AtawU1$?JbnFto*A^HF!yQJI%9Y7UBAiG=T&~%cf^Sh~LF|WB2`Os@4VV zg%pENGi>z~siMm)Y*ux_U8`&H|Ge{!X;Rv;XS_gSN76+e1w_{8&{yaZ<{wj~)31+`zJZ*u**Ua@}Pd`*v&OC*WFf4m?;YWo|dFj0)}Qa42#TI=CI;R&bK=D=>Q zm?)RNDF38}*Xa@yLlSO`V@i_I!rfv0dI-(7jVuBw4c8+_;mxEc7a=>dOVTsF!fyKu zaXXwtrJQ1&uMx|mxhRis;MsX?mJ6kdMoB_1(6-p$f07pWS+Dlpq`_D>65N=MDf7p! zu=*_Dm2egT;px3h>-Z^H(bBl%Hp7;oY`=UXNWiOCr25bd%5LEJ*z0yCDiRG6oJ`ff zYbt6}Dc@q#v`0&5)y7){I;PLx%Wai{i(Mfwck14EFMuUGXh?o+Y4Wu)iOie)?C?Nw zpTAY64yvoLo!D(u*J#E#h28Ay~%_xm@wK>Xak&{Q@ z_aXedV%WFqzUBe4gIYgqFl&cOeuYpq1-W`;@wTagP=Mdy@VHX z+|zBos=4VVhz_r@TRMa+`kYRZaVNfy6mc}8dLG|CF2+i6hV^cDjw%lJ2W#)0ytrD= zh&STw8jsH=;LN3)Qmq>mEJM2r(RQ|tXK?smwIJ5!uHci#v2=1G?Ir}_)<6@iOi+Fg zh7Eph?YCCAcU=7Jl&^^(x}j~ESG<^n3WoLd)|7X0WT|(#>Pi9Wl^wx$A(glOx&}Tq z4r|R`kcz;|z*+k?YvE-u?`TBpJg}Zsd0FW98#`I$1mUl9o|R9d*gIOOCqqbCisW7z z3$mryG%jD!ewkqR2bpv)^mw%>pVBIqcCNU`MpRb&AW;v`8I&8GlNbV=J^jsO9;@3_ zZl^Ww0@l6lEiYX%E3OsZvQ#LZFf*oc(9>OBNScz&+yvS5!v`m8)0=Xsa!?e18otHy z{@9*oOf(k(4+#&|92vtTSKh$d7hzv6sjM*L6(ND^ggxCV6z+ZuilIlI_T9v74VsGa zHWfW!LbmlM$d(g*)TW>k=g@yeG69&ac*P=oTeEdNT|z)A^2{2WRmRSuFDy)l{hT7Xig) z5v^Vu$6AG%ZuE_ewl+*2Tm*Zqq_J%Oo!P-n%fF&dG?aFn7a+T;X}9j07&VFixZ(z+ zGde98@aL-QVB*qcYmu5h%$B?o38)p72JALGysUZl_{+-SE!{#vAv}#K%ijLqODQTA z)R^`TEuCOC*Vw4=e6}*USnwFE_bcYrjc8%WJX>Wpa<+?m;q;e4Zd42w*+xfwe+4B8W z5SN)*sgynI{IaeW!rjFGJVu0R=1 z-&`z{?Lhh8lzem29%g*bb7UvO4dDRLH0A+T2p;O-;Wm9xY+yVPup8^qptAKixydBm9%;OYJ&4 z^TC$&`rllNLaxsnKPj>WxZC9!5QOOrRK)H`O(`jqf{4%Df^z8Zk?1PwnAD0 z>M1VaU*~prbX(secn+x~!~vN&(WCLjLa7!uq8XDwt3S(S{1zp#+6*RW*s?~&eNy$M z3U|#d-pM=wcf<~RF+XtzvP|J?9PGU=EFb*KK>h~)b7MGzJ>?q^Nm2|%{tN;!-{Zm8 za&LCJRZu#Zg|}Q@#Mj9dS zl8~$|KOK24AJEC66Z&6~+Y2|3k84&@RyN6&*HdCe=AqlL_dSY3aD^lH(h4jSh-%ci zuSWW&agOBG-nTktJu!1w_7_B63(zfP<9ce;(o>S9d{*)g>x51_E!-?s#Z|drnS?Me z{ib9IqP~iY%PD$f^DBbv-Li-N<36IzV0y+kz z?ha>{7ClkTU%NX^Q$r|oSLVEDy|~2g`nymY2ZiG_2#;Zlswu*(K)Fj>qTQ!aurb8tvs=cLkGGQeUZe2R=<~G zvC}s|Av^rOVWiIS`*gKeBwj$z16n6xinB43?;67CCn9{ELp^74dC(d4h$Ls%(DnlJ zDzNONS?uw?WDb>3l^sQqkfc|lKMHrtqGtR|xI|dlg7096nR4IR+K^9ePk7`Ww8m2f(P`aZ-+H+pj zpQhh;3>Xo=&aEc9g07k@$zUhastFiFV{{6!f0X0J@|fPN)tFUom4`-_dY&5ZlQ-~x9%1%U2L0n{XiWvLF(Q`H;byA2?DzD4`Z4Jj{_#$V`k=>JZ3cvuu6I*j07? z@!M>3MYM(p4d|DZMhO|^CR|}K2#qmEDE~RO{J!aivcBQ&v-Z9XK`O%lrM3Qcte98| zSXOgn-iUhWf!q~30vRi@N{o$^9l$Li7v7B%ToEcXz}_0JyNNNr6)ElTA{=TycK3;> zmyf)=$WUc#o70F#^7y+Uk^6X#af_T~OE{WN(Q5{`#Lc8rZm`^hHbHDlMEoFQ8JKd3 zOa=aX9AZaIwcg%XFVBI&1qFw+xMZS6E0J@7d$PuT8L z7pwzSbpY=gjhzkG#Bk@1^m|_@&*5Dup5{7(i#-sy%D0-Y?AY#&_8%Q{<0pG zf_-zrohvR%axP-fvL>{U*t#0QTDyl`e&@I-`b+jK_nnnq3=LJ_1{?!3uzWk*Gvzm3 zwKsOi*_q|?dJxEcEg=xLjl)>W9g|ttYZ1qW)cox)!*uE~=!it-R0xrVX(pLh*0gt< zJw<=3yn3v(m_P09Srdr5W`jHt6bs3dl7G-(-`R=$PZLIyvmTHHKa2?Y^RNTg9PD^U zgX0ZDMsHODYTUGv7TN_(7O6+K{;IC;LK>3~Rp7nbDrKC9tZ?_m(`S6z4%rOn`U1%U zZdMm`8mnTXrIjGu2;HUFlI;>_SIkAW5yh@bM{RkP@y` zL*0rHp%TEDWwlH-;&x!qh)Kd z@o(?fA@>So|E2aKPIIC-;`Bbs1j3-3q2R%%86P_CSj_&(7JKv@3 z-Oo6EGV15E@fR$hdLR3#7nRmVY|3GRiYNqpe~YR(%ZmwR&GAkqU>G6-J8g>FkMG~g zI%x51$hssO0hCY9IUWw@@7ek&hT%dpPJMPc%Q1}4?2uKDJTY-}ck{n-kXMcUT|)fh zQw8;-B`WwUnv3@@ku@v`D%KVloD35Rn_z5mIy(|65D)&Fwtw0z2Fz@Q(Qtl79FyY&hdk?(hr;Z9AJF0 z8n8>GJ4niQ_TXnpn$fYx-f+bP_fJ^>Wa_+xYS#k=HFEZ<(R|~X zt)=pxQBx9X9O)XSbI`q(jk*1b&g9rj^a|B^o6ZRH-A*|mx^PsAHlGW$hAD1Z=Au}c zr3XH%*aHp@f;6g=ym-h7@n^O_FvkE#)i8?r6#_j_h3az9R0pEt^fz5u5XFaRVyjcz zKUYbYE{r7g^rhQX%<_vozuXv(cds{dyOKE-utkVWlp;z>AWXByj_T%yxfRM1OV~AUFf{Z)!U(D)F4axy!?NI(w)5Zw&pbfbyJEk6J~3Yp zh8<<}D_(16db1ne#QsX@7AZ)}dr`dq6Roz_o#D8+0l;4^K_|8$=O8!a-4T=F;#y) zGknJ%I6czNjlR1}rva_8x0eVF^ekL`e5k|iwY!9esh6*YmUWQxRNDks?KvqdpsJS2 z3lx}3WIDqIyTqSCHEUkeJ1(klH&-ZkTV7imw)pn_hC#KBN6sT2NmYd{=@z85F~>GC z%oa~DJQE)g{0|5a>jsajZ_-grgAEvbdfoqi-9*!srP!Z{-haYtIT#U@bI|g}WW`F0 z1Lnsv|Gsry!tQBB4f}$NnQKw@!e#OcNN=92npOfK7L7t}7qM<6 z-*l<1>c`@m3%MWMwy^-qkLgu529wpN?s2kki)RpWfxgISFc%e`V@+YjSN4VkjK^lUf-#Oe1jMeuO*>t>Lj%RMagT56|a=i`2&9F zSr+ff=lKmmZoyz01*4#QLl6v+56=ts98Sr&lao=;@(R6L<~J?q^i{&d<~UOI-Tm1n z5gXS<@X|OwZBEL^_a1uy@nn7`d9h)z{58c$MPhm@kSfnB`HH@G>VVrHy_ZZvJA&mIXb zp(vyVXnYisbP<6)1@bpN#iGcbytdFk39zR}W}-$S9+WcV6>~r&8WOUVg<+s{Em5?jGe#SNhCn{ zjw+ zzks+b{gSQ?4EiF)+MIc^4O_u1N73Ki-LKV+0H77X>OVw_l&K)dMi!J?e5X3XDid;L z!UDsSWRy~LSE#WtrjAb(3kq92#I&`}NtCfr*m)K_3jM_r9!HN6O|Pv8l67qRxntFo z1qId=aXeIuu;(~-maBPU)}lQ(p(1cZ?N6JlxQ+aox)F9G1r3+^ed&f#pNM(B!OR@c zo*f9(X-M2sO)zL;@Oji5_=9`;E?ysezrKNd>7k0f5_c3&74q_UZ!1Nbq* zG<4c(vW`Rpe2NZ>&l}eu4s_!sDm6Az^kQU|E0=k{m?Ib=8vLLKTYN~0ED}SIPC+ora z!`&L_+Ec`E-N9U{@Pj(0k&|rn>6(RN#p851V|@7JFZ+PGyF%HZg#RN~jG2ZpC-V#QkX5x2oHU`Ta&Gnnl(^`n>N|xE4 zLX$_PKp!A>{6QgeSR$yBtRmLm_PiGZRXlg?eB$7U;@sZXv|`_o`fAm^o}_2G_;YN< zr)kZ+VGirRe;Ofl)L-=O-Mv8x@6{^v2A{quTsq6Zr<0Vd7%SS_f=64|MO!@FcT z&Kn9L@D+_fiyD-94Mj!iiCV&^75ouxB+CW5u*W}97E!#S)&vG(DBL0tk`5n<3(+?w zgAp|*l+KQ^r>)%@n@T~&fS3ubE*d@;irlPt{~9)H0$csr(e+bE*vrEUuO5*d4EpI` zt&by&X2TWIA*a?IU4zS<|9js1HYkVvd^<+9hRfCtHZAAgh#A~W_Izveq zvASi5m;6H+l|JH{^5qW}n&Q<|QfGM&LDIJL#?T;~^yD{ZKN0hrbV4I+=b^Zl#%`_G zMg4U$sJJICntDvb1k!~`IIGLBvV*pF=986oow~WiKWX$w^${BG50ak+YJKar%E*!m zdDFynPC=v`0P)?e?1Ttty0!>JY}#SToTRI5`L)Neon~Q5ndJo{-CN4So)@0L!*U_0 z3KWE(demdvnQr94Dw@nlUB9!d98NtzaD* zbUDPYS|Kt<5t*C>_T(a!sXEyml2+Q-F7r#h_YR`0S-8p*mQnk7N|jFA z#Lh!05X+^Ob2krP5vUkFj|GrJ1&Qk22~rJ*NFsnD(jQqbhu_lqrk81^j1^XUy>odc zb^wl?zwoH>o~O_R2FHBbO~NeY;+?SQ6pCb|J0Z$98xMH1#9h5;K#Uk951qu12ZdR; zgOFyL)r|eJ3g;fWtTtlbS@Bdi(pIQsEh-ILlw;icadiGH;ujGReZ|h+l`17HCQxdP;?W1hnl11Gu4U}@Rq_rx~qYV%FP)PF@bfD54f zjKV|{XlPNIPr!MjXLjv3-1$YH_tR?_xBQEepT+A+91UVbjT(ldFvy`R=vhX-uIjT1 zmnf0JHRhr2pE`4qkF}>#-EqF~&Xi@o)G>L6eGUWpW^vGmnu<1nLPElIGd97l{eZYR z8wWcm&wyy8&2OJ|;bv;O-zI_3tXnTV@Gfsc(+z@HXPiA#k%L_WVe%OnXQ6Ez$+ceI z`RrN`-0|dG%k5Uyhg`jhd>%fnkrKEdQox?&+L!q9a`~`yo8CAm;X2Vn5bLs<^`#dg-hR!U=_NlBoH);V`V^t z^om(5K>%o>D93HlD#}2!tJ}wT+)W10o;(k=&sBUPN9QCnLc?{(6|?w9ry`wemP?N9 z+Oj`+w;dTUgzFn`uC}18jjuZ+)K~dm4_wnGx2=Zux=3@(%CNiP9^AN=OEpRSI~G4a z2fn4x{1k%JIh~{@K10pCc;NNAYsOlqYi7obyA89MuCRU*&fT-RZIa5rXTdJ9&t)`rWOBg}WVe!SXHB^nn-4GrGc)TN_(? zIgif)H7;$iwM$jlO9=6@H^go@7bx$uBv23*tK^c@V^bDM77kc+amN-7K({Jo=W6K2 zprcYZffGFqLTzl{O#{^fze?WBXo`wz+}|xJO4wC=W~Zo+O;4hvL%hYQV@;c>3wD^=Gp=6aT7XCo*;%b`Kq(ZM@? zap0IpxzV)U%!B&6x5JFXC22Yi&e5>+f{J@X39Yx!M&OgP+J;Dhuw^9&d*7wgnPd2B z`^kI5hwM^pqC4?_=a@|zcS18@%JVNwb2NUfOk*p%>kf{@=c7@T30V#1$6i#7^+NZ% ztZxidXrzyq<>nD-P^2z+5J}WG9q9O@pDL@SxA@eG1r(U~V;}vB4F;avOd+a5t)6`S za#YJsV(F|AI7n5++xIiXBu4EUNg=Zjx3~sG+}cI3ND`G}00h-$sWY+`V=`aUZYu9% zk*aOeF3_^hQwG3W!{tjgvAx&2UG;8if_a+((QSWDg(Y^ITldZw=}Fw(U#e`DJYf@X z=iQU#Sc^Pin6gniuf6bk%`2ULWR@$AG4%RK_!;e~==qVMl=63&|4yvDI+U(*k}%AP z9p$AWgE7!_f!h?5-)qkMO+t~lwyOlX(P?mx@V~3|kdnLKRLb@Ni}OjVot$c#_;W9A zAySaZ7H_p^X_|s$E0(ZMC5c^39eqbrlCTi3OH5pZu&oi(7jk@e%)u*Z+dJ9zpr_w9 z>NMr6;?&iGwMdAG9aNN zT-1G0gZ8ra^La;3^T8uft<1-T)#-V9QcxCa$Z$5I`G)D1uAM}ipse4S3X^&OP;_$& z?WaQi2*4kU^Ga21&p?yu+s#sjHo zlEM8nn;Vtma>AKi-ZxAhr-Q>fy@9z;ha%SXdx%o~e6JSim|$lMYUEF+3#mQ^RmzV! z5#eSSS-*^mNt24PpayeblG%);Uou2|ahvqZG70+a+%C(IE!nm&Cx~Q+_Vu_rWZ?B| zT)GqB9h9__dDw>bC3dVI(wvY$r~D)_Io!hzx0S`esMEso`ppKInI1>bfOTeKT{J+q zq2}AKsJOS7lN)Shh=hug7N>@g?Wct4y!%*P2W6X#E9ma# z&g$^%f9>TOR^$n7dkf+>(GQe+G)w=&-l++|A&`4ejZ9NKU=fD=n0 zRox&?ad5P5R@AsxQF#zGtclaPFen9rVX>nf80iaRp=iE@WX3VtAv?JK5))6d?&yWh z2qr^!;3o0%JHgJqK0e2lV$ssluzDX$vl5~k^9V{yj*_;ufJHatRJwL{Id44&Zk`+X zythCQ*UKa4sg_O0Uj4K^l#Gj~AS!a@e=v4WL83%$m!Qk`DciPfSDmtL+qP}nwr$(C zZKKcEJ=4>F#LRT(UFN>Y$g7O~uKg@8%v%&NyoJUqqvLe%j`h9qi3SYo7$8aH@MGZj zooNc#_7^}jmhU>n@bTNjTh-SluAj%5`mbo-5)i$JKjrZ_g>}XKUV1u&M*%4{z$TuE+4Z5`Vcd5v=DY92`1i*c!v@_s zgdi&!=KSgj32JLKSYudFC2c0%&|;pP$4w@k5bn51D^Mm?z^!lLVqknkJI_$QJ?O3d zW5p@OAy#MZMGKgcI5CkhLH9zC2AK5Q2EU>OpA>`YyypJUYgu_ce; zNA?l)Va};tml=MxIrKm8_Zh_(^qjsg+0@iR{WYS2;;<`j@o~M4RK}obyg67wRuT2( z=dZQ_m%tS|#o%z}S(9H@&$84i%ju6^!X_zRPm{PtTVnp?<*Ac$j8T4$DrieyVzi;! zqQQ0=;~3TQOl7t2;eJi}7>zP#7?9A~F#>ulW@EpR2!5&CF#qlLv#*9mbYC!F)YRhF zgmKPqK~gXsN-NZFj!AsR6!2XEihvla4%}Kw{!uy20x!gop+x-bu7RW7>gkS(@2mYQ zr^e?csHh69?1nR1yg+H?gYE!WO-Wc}zW40sB#WQPxUIeGLB)J6BW4(G%6 zC>1zeW6kc?bARPYStboWQ=fW@2ljHJVQ z_8|1Lf8N@2ZzqjMEQ6kJbHVXOY?jGAWcAu*s3$<(E+#CYn8p9w$VO*@H{hpgRr(WX z_K!`T6%%bP3RtXnlPW0Vc@Ihmz8mZiZZ%g~oU-*^rL?6mzFVy^8UvKrSzcwww03Uo(YPy4ZcD&I{wkrk>ow z?N7zk*Hy|Jy$Yc9_W0ItPvOl&NgUt1UzmQscFH*y*!W_Cc0p4pk z=B+ZshF*}Wp1On6?z)J=U%3$MHTa7oMQ-f$R*%Jn6xj(p56ZdlQT*HE!qhRv{Ni^0%d-x4XVggm`z_hQN%zpKUxaNoLU=RWHTR!KgZbQ(M~3-hv=W9z3-v35dE^2TdCdk|Doj zoZ}Aa=K)G5*HtacH!gxuc#@ZfE~Rb)E~V%2@9yC;jTqr1-f2Uu!4mqY089Ato2WKx zxyKvY4fEkN?)eNA@kbJ4im$m8@n54y7<{4%+A_QeMG5&mqH}WbObc-u(?Yh-2kDtOVp4b$SZ{%Safxzd8IH ze9&y%fewXM{N&alwh3)P}&ESIVZ3x!39L;qXsXE;c z>}<290UhugY?cCOJ?7wWfK$l!0uo6_<~!GjEr?{gV>vXIv)Jf&BVj&3v?c-^G!jAH zf&bVp3X<6M{L;TF$5Wc7P`qZS)M*Ma1&*zG3LQl= zbtAl9i|1R>!*mzY@Q!jHh-*hzjp=IH?R(-R3((LQMwqYS@sIxW&tIxQ##M%;_0E0E z2fp6OVNyMzZ1X2Ias0yad`7b-6pVJ*T#Y*HSO*s=yH^lC<@8tnQhaOvse9R4P7Jc( za-kK9zU&Q6S6rCZAr)3vc7;SNxz`XDhrrrmEkvs$MX{JuMj$(Vv0)K^N| z)gxSz#bf0f5tL3ki&!!q>JW{s>YTp~xLFMD-H>%bHjWG_SKo8=RZ3{3Xi_I$ic*jE zGEr2Om(zCS)pdnu4Y`38{;87KXtVueoXGWLjN~Wh39?B9k_be4mq8M236uKl7IZbS z3Lqqn5D6e07g)A-O_tI8uj7N=C=$6bhP-meV08n?KkD(mLw$6Zc=&I+ zW`l>9x)N8Qv%8MC4%ggEv6f+P$$~^}ZLdaMw+Z?fv4c{VNVayl( zP?d{Thr|V3}Qf#I*6sOZ6|3U3`rF~eBR)d+XB@U5j^sIJMb~2v09ndmnEi-Zf zScl0cjNvI=FbmLmXQQyTE+aTsNUh&pimIkMVl=1skszT}Y=wFzR3S4o6*@r78od%? zY_^apTLPK=&aUKyIE&@zxm5o_ZuNXJl5G-gP5QoLeBEvSK^&Gwmr zbYC|WJ)4DfA>L>&IGus-dAl_3$*hy+D8DDdThCGeg3)~#`HKauZr~nLr<#6FySRX& z2YJv$tf^>^8nk9lW9j>UxJx>w-V&kPMhtuOjG?DZgt!=W@izL=>d*7%pj2dFAOT!5VJbgdV|U8innxHYH74G)VnS*KfYuLDn^SjB`p|6< ze()rE-P+b=ei{)QmT?+1d8OU>yRdkYAPoQmw;Pr1k>6wjE7UTnw~L$xZ&7IZxoup+ zKz$=CQQ=vRZ8sD2@*XWn*F;_r;pPr&;{OgStDQU<-X?OIk^*Z>r$RkVdL*o&mQa{= zgV;=@Lia#=viiuGfGGcA!KMW<<*Q|gAFaA^jkZ`gEC(^F;l<(vI>vp;vrGx!AY^fga|X&vZ_kJIHe{aoJ7?Hr8>=i(lBsWC(bqfNfg11A982tm;%d%o+&1)z z3Jag?8WI8TquG#;^ohP>N{T`sAtJUjQWG;6<=KN2#v|Gt1rR;=D%VlZZqY_@25@zh$DqOjUT$cTJ^$LHbX2az>cQTe=Ngu+8b@7Y{`i)qz zqIL9XKYMA8aAp~#iZnR~Tp39*@ebCYR0WAh5f9|kcjZJAoC5SFl#6Q=LZ`vg3;EY^ zHLKMrZGScRdkkhU^kx(X)n!O#MSF3AxZ{KIr~W16L8S6b|Lk3wk7uZ}A}ci-|24~} zK)MFQvj*_Z6fL4&uu42CH>XgfpU);t-g6k5RDzUl6stg%j91D8<_qrA$|qgq%zml0 z!-5Pa7oX_jCt#nL*S8vhk{zOw;dM?=41NFR+~oG$c9p>=_iylZe^DUS+cb!Qw5fWk zVil^HX*5@f8nk2S6bviZC4h?F#m_=)Z6Jt9M%@@~1-%HuQ_4_=V=F0Q;565DznM{8 z!}eKg>xCArvU=wqN!SOV_Ig7+bYhXYG0s?eA~FAbK8*nr#Xmq$QYq|YehZ|sDiGuD zvS$FkZ+nD$nMWhNYP2CJbgwcmMA zs0ePsh^6^m%XiGn-ss)bf35-1r3DFo2m!i%!QYZI<~ig_@rPaS40qxkBri{vnPKekM{nCpz6*t;E(HYhi1k}&il$1OXT zd>52$(waNRyvxYHjU6ehbH|@g>MXKlsfkCUH7ww6k_A%bJ6Y9R%?fEm0ErNlT2}&Z z5HQ7Q<+fo&mv1^>?IYa+ifhsEbP>;N?_c>=#0oHlQZ$FnHMO<>>=xfP8dE@$g7U=T_*pP!qRjkuzbN+ll z1`E{(|4HLow_@rq|Ko6F*b(n0)d(ZLUE@$*S&_r{<)JRSjzCXs_l{y8W#qhh@r3O} zt!0a3!hvR_6;`2_+M5Jzj^YY#bh;nWPgg0(r>bgV$GAw`$;|5S`MiVKua?F9BJMV$ z%hnt=+SQxgtdo#vfc6KH23O$Od@Z&pUNB(l2#eiZ;dyYJ&ESxC8%tgCv^|iBS2bD4 zC;o9I*=-reV&P$PKM?lcNoNpUN44}~X z%&qQ&iNyZ#56ALL=eDjyd^BtNLxWDEchf#JZbI0ko_DjVR zfK7D{sNg~yF|EbDbKxO>s~vB0QO8HkQtpVQYY#D^UZ2l@^DcFl~9Sxr(|=Q;v!95l5Y=d6tOB z9iW%@=h^S4L*mq>2Dv&UgHtE8Lu>*@UOCBtuM{ZX<)JW~KU#Ipy@pDa&BP`2z!}YhYsG0M?92O~93b*qje8SU zMdtibH2YpYUIwy94rXdbRR*i=ip4jHh9^z$KK&f&m3)AlxIk+U3I@(% zQ~(S=X&L*)oSl_f`-mOxoH^94KANZ)a$t( zA7T6Cy4%l5E6rQh7(8#~Aaz3g2HtB7Nh&+`YL`(|#HN=ptJfE)ODKzOe6wBss!L@y zp!74xr3U;dhjy%>eXOsxdco^M=}@M+@R84DjSRwtRZJ3z7RW6LS{L}6>&%+#{F-Mw`m(sRFmqZ73=u{a4 zWCGBpN@TBPXx1TwAX~vX1k*sd8H!rs!UaF*k+0b#rda2x9vl~P1-5p^0>hV>aMGmT zs^>i6uYn>E%_rEiVR7Q=cLtOyFB1|``-^wE^l8r764$Nq(51t+UgTEu5`(4fRewbQ zkUJF0L_aZMM>pVuBaV%DWN8}xC&f?c-ts-d7s@>pLtjHSm8)$frUzfPdBDsyzs4rxx);I9KO5vBb4Xu%n=W=vt1l*jQ9 z*P@Ig!!?WW+p^z)``^J663jEoealwv85Pl_QfP}!Cu_iw8e=$ zFbca=v%b%w;W&yMn3&W6s#z*+qdiNll7@1I5z^dQUv5hoG}|pS#dA|0Xc-N9HjD3R znfiu+{_^E)EXb)pq=C6q9Y06jfPC{eyEP!jTjMe;`zbqiyswXjW{f!Xa2BdIt$2zn-b|$a#3}XGQFCTI~MO%9m1ow8g+gC$t8wkVYj0Si2qEi%jY@~#}qa<^P;2;r*)yxN2$l|!6!^$+9q z;DGW1PqPna%azoKuo{>0uoMRReOr6|>!BNcT)Ty?s>*S;bS09X+|(Xl8n}c`ay)g4 zDWaB8STLas#8;$+a!QhbHXPoFUb$NFG()u&$Y=yYOz;;}yle^}{Xo$Fnz=-U14vV? zzFNz*;}KLx!(#XZnp9{qx)=-e9kBxEhQ+s)VOLJEH`@?q^ zgCtm(ECOt-+06Z0t86yMQ^K!K1RM9Sx2a6GXU0-n3|gUXvt5b zuIy(WUvfyrdYsJpCr@XPk@33tQ7Q|8iAg4)f?CI#Q4b?9DtZt_Qx3IU&BZ<5ibvXM zMKw12K92Z+ZEv{6l=<}1xBAeHd*x+W?GXqPR6JTu^z&}cywSGjF*UaN$UQH9)D#*A zr!lJ`s1NU-Pt&)}?s#(=dzJmB&pS_u#v&rb#@Q;i|^G+q!Uy4 z*|z}>>W$DWesJE-A3;#Rpl(fg!$ur`>a7wYtGq}zW(T9$h08y@%zqI z3O0EB?7#Tk?SIVNE2z2c%P>U}{**|?8jCcKtJFdWOw9>#FfDdCnd0*G?EDxJNSlmZ ziiiORlaZAq$NGx^Ef+>|)*@ze1LV`&XorSl(#(QtT2szGy)R4SkKe()QGu^BNR$As zlJCdWbR=I~7*pzGmH5ctBei>$o3MtYctdxk@vSZxqR_lO15)!dnv1gLem;_IodO|1 zOTIjxPI7cJfvc1FP_js^Pg zV-EdhOI{|YQM5)NM9_d9grng!#(4Xy>6{ZSiz5{2kb@BV2RLqD*2`?UmX2~@7A$FJ z5HB(sm}VZTIoO0i4J|QZcai9{WAhtgg{tJo3o>)X`yJTHyH5=Bq3wfI6pi?gS1Sm_ zMUn@souL!+X2u5{$ucWAHQw?OHE4gC$SdxwCRbzh25$8T##6~rH%J1LRd!*!|1s-0 zt{eUC{vach#vS<2yL1`D)8Z5UjG)9LHop%RKK3WB_HFLx(1WAVOJNaGRzKud=pkF< zbffr)D0!;|_4S$McVSS)-l%g0AZK2h$D!|s9ds7+DLMg#nw5AH);?HKNLc-uOD`0W z-QL@bJ)8mFQ+7ivYRGFjrEUVk&X9B?TKd-nTc|?;W(@+wV;R z&tVKc4qfv>&mr5p)*EU%cyY*GF-BHL;=2InXCinKXrnDtY+|pHn2)$>`{yfJbmc&v zc@hh5GKtW|yT*>IrLMCGepeL(d$&C4RTPrb?BAdPr7;gtuvgO={YYHl*By6Kf%8GJ z?{vXzn8;^IuBlSNMJLgsYhn<|nrUG2r76W#uB@iI0Zm$zh6D4D(PiXzuHNCe3(Isq zOqP{597Z%5zFK-v%ruWgX-zL~GP3a>_R~IV!T_ol8oOX=$=!{HxC0pJ>A&BMYO&L* z7f=H~)%}M4tF;6(!$8L<1A6}jld zOq&17*ECL#pL`%YmT&k=N`X5?x2KIv#mg?S+UDz&*K7VNJTI7d~!YGnKP!5|SjdcI_>R zu#NmBuzkmk-_aOR&fhqj@epQR^B)FB8%AFK|Zc;#J#jh(4R& z*>=CSC&hT*leCrm%nnzf>Hj{XhzM+JqC2)tfmWXhwBXTP$=TXJe@vc(k=?5W_;EMx?8W z3Qvy48zgPOoLv`{E0-6&ugD|1iK|aJTu&E+o&6qtr=kKcHo`gnB0mafz9&3{4gA#^ zm*XJoUWr5}IBmVhn(M$RN?16gbY*>92SK#Ei^xl2&v4mU#Jkf?s4S&6aU2Oq!Fyn6 zSsFCI``jT~?U#nXni&&YYhT0gJ)rWOFwvQl_u@8;kw<{-{j>BDf@!=IUJp8sOfX{b z2x^0HNAzW57j9AJAO*0zYeOTOor347P1BYS!J@yvA%OA~uPiecng*pW zb6iGS{9P(!TWvT(W@_fgiAe3uqIsd5rEhTe6;jj4Ez)t6JwVq6pjl#S?5ep){4HZg zlGWrX?M|O}+a_-k0vOl$GVjq7Iu41NZSAri!`IihEXgFX8x(2Wh2Le0qE(<8P^Fn^ zWq?@};Du8VV-Ta3+U2*~|5z48~ns$n;f_ z8Mg0L+@lt47906EOrF?((^kE`)YIlus}3MKF_#5B;?x*peB|=aYb>5Ii(t1 ztJLyt`0Tlq&k01=VE&9go{{88a0PO6K{8sP<-PfB;oq%WWoAOZ6g{2jddEsX~!zY zW%j4fyvhkNOX6C-qZTvgk3$ICdt>_O2Olm@J7y>TU;?2YB-oo`I587m?>3G-9V9E7 z?0ghfHEM-4pe!wZ=5hzhUC*9n$Q4U8s~|YkWX8pBcNR`T-GcV`4tp36kQfoA7) z)vmySw9RFLIhEX*ZN#!-aj1-tONlc?GlkgKG``!yer6!Jz&j7nrqBslf9tFs-Z60( zdw>EH&LXhJBBZYF-BRs9Pp%A2?nu7_VHU?}M+>~@{7hB7m(|_*u7wudWL8gyu64ah zE`Rl#R(^_B(9lD4Jjof|Fd?B!!|4fL=SW|gjdmKFEQuu#;n~~+5zk$)fTWPfI7R_W zETZH``J86M5~iVNy4k2U+xfIcZnO_2L%J_>!i2Ak^PesrQQf_95BHB&M$%mr%NkaW ziw!IEF<@|ONI)2OyRuuFXMMnO0$|?=2Ho%ha@NJbA?9OX(76~^s zZZUcKu9Jx~TuL3gV88E;xkm>mfHQI|^`L3~JnO^ftmHJh?;0mFC;lT_^1fj)=B5x0 zGIkPEyr3maPPu!RLg1f14~6nN(?IIUWmHE@l6(5NB`#cE^U$ZZJiVc0jv-=ys5^Ky zp89;3^NVjTWe@J{#Gc#%e%nkh)+}*Q4?~5r8sNc5R-#rWo~@;%O}Pm%T!jS@S%MB;`21ET z=F#&5it;f=3;^NS%@Di9#@#OUE>R)JV~dBUq|&8wm9;=`?JYS4AfNy@n%85ehv3LG zZJXeJ2fBiY*E;Q{HDluIQ`~Yzmt>L5;;sV33w6!JoOhHYU3U6`q;*4ZIHD8$EtpQy zR-2hMqt<1MqiGMhJNyqi3q?OdejcA}MHWT+6FgHLgkvx(p8~%1Cu%KbE2mJj*rzQa zICe4#WK%$MI?CUpp))6PufJO^*x?V_@dY|(5FEG{+&qPYR*Hng@!Ac_lY?>s0Ezy|)wgmw+#$5E-}+3>FDv#N*P>J#-&8h(%Ur~Eb;YA*ZTywNOb zJYB~kAZOGzUqIWQ)(0KA(_>%f7zpyI zC%^B|6@E&;b;)j{n`|@gG|d#g?vQQ5(i>@}Qiqq{Rt07~V+WHQF0E}~A(adyVsaH9 z(Z?H(OT`@IQbQF-cD4^ERc|y3S9OgYyvfDzlb$3}%nr07D~XJuoMa)ahK?gqs?W1e z{Iro706S9^A3@P1f?5uJG>+;H)FPYS0=jIg;%tWf9&a>ZmR9oJ6yA zB88!z)dE?bc!LPHKr6jkZzONNG1CkQP@Z)uF>9jS!XrJfr>d}ihF9ZZ`xPOUABu$TyUX&;8tvKYaF;rcWA2Y7S3srxGGnm3<^hy^x@i)+9sC ziH62kmnMlrY%s&C_-ROD<)N zlJ8J#OT=FGL+MjH4ONk;GGbqI_$kZY*I(r08}F1gR{|YVV$T-QOdH463)jr1mD2<4 zo|4PuUYp$#m7RuEn5U8udUY75%kBh|0r`?6u7jI3vtV@=g(!OnMb?8z+Ld3G-aX0~ zR`-zCHv`b^Q+m%&#}aeUb15cNjcFhpC%msr@?za`;p%)8__mMZ3GiJDBS_N#h=SL%H>=O217fC%A>K1w$Q7GuSO%LX>-JPJ|!e2q_LwYaN8`LBG za1kRY>O?s5iQ5EFf+VWDf{q;o4v3niG9E|l7&~6xim^X`)Y;3`tN{6#%s*d{H;$CN z$XY@8U_WqCL><*PZ@t2EiX&pwjbubYlne8IQ(RKpkMzL^b%DNL;eM~pF9{Q+&p^l3O@|EsLR^ z2aD$mEQG{*mM6GK-%eudeHl7HEU0wXDbY?O`v-oVO)p9Bu6QpqhXi5jAcRK@t3r)Y z@dT!QOTtNGqMB+jFd$mh7h_>C5#BJnb0?s(aX?@lSU5JGa#VdojZCWPI&ttV$~lis zRo6xjYA5RiiEc?9kM1igJn?qbf9vbwe_eU>w=_l<^8ZUN^Jrlafzu>x^)KX75Kk?V zU(%*pEqFV>DB1SO`I2v1q*1YG$|^n60`SdWr&`tp8lL+I_xm7)6i^VC&++tK_N#ou zFOcDyrWz?7LRO-c&F7F82Ku-`UOPlIp!Z^)cQAv$Vd#DIdM1|`0~iyEpk0wgpACJ7 zB%MDIvM@`o#bHSM{^W&;8M^s4J6Z zR{3;|X51fo6M$Mk473Qdczv0S{}6HxJ9oZv-KCyuBC1Ye7_cG(o= zg4)q&I4m^G`{^c?VZc7LWSJj~R)Z8zX*@MkFG~6H`R>0EP;#691rApB68?V?#aaIs zO8b8&iVI51ONt2pPf?ul|4$TW`;REj&VkRs!uH=qakl?Q6sL!x6VkU6H#RplbHZo- z57YgBd*c6AB%JiE%nb!>Os$OZ|J^D&8C$F1GthJVe_-N5bP{y3baHeGbV_vk|5)+= zfZ`@}=Kq}({|_i`Yhz4n=U{6`XZL^E;!du%|Kox4e<8;IBZ~hQVw~-N`7ZyH7-whv zFT^-I!@oEDAB+E$80TPQ|34+hJ&ctywKrJchH)amT!DrukXH{>wgQFhTua;j&BTQ4 zUkQhc*@wH&#B$wDPtw&NUp3X^z0Z4I+h-(HkSG~JjY$a%>j=cLtq#YACZ-0Ua2?_~EV|Oqjvv0;~Z-@R@+A{s63jakHFm7TG*D8zUW={ zVgi^=W8+x6`}3orp_wR>fs2{cbyGA}FYA6OO-4lJaQe`iWf2M2PXV(D)|8-U9&o7QjlstP#wu*(7Xua}1NZyUZE58iOFO{>5dc6W^ZexFG5S4k_*KpHRX_vl z)lP3o4o&r+^sPdL-ZR+;se7mcR@(_tni^39v9kUi*#Nwc z^(r{A<>Uys-uCH0Kw`NYC2l_yte@7v&!GDU|&BcZ|gqfz1^Z zgDQ;+GyPj=(RZyF8+HdwXKZ8%>Zt|SH(lxXilDMp-NiUjfK-Kb<@cd`IzPS` zcB~(;um3p}`l+PPciubk8(tki?jbTRAc%3$cV2pP;X_F99tofZUgE zSSAjD(mUG0J`e!xPjnj~|DZ1sF2LNGZdh_K3INDAYy+U*KT_P5X8IRwms0&3y1^01 zuLa-JvF^T?NNv|`?H9J^nClC+$C&*GwrAey1Nx^l1dFkh z1;m?y&Bs&qT{Eo8zp%T#5_NLZt+8i)*XGx&_z@4b?5CUQH-&~8#^qV>z)ec;hp- zSSmZda;eb)>f*ny2nUfTU&P>$$ZySWC5mW%#>DQ*Q9+rnfLghSs_=eA_R`WfpF;dZJnq}vj1bmb&C6qPaBKr9w%9P zn=Bb1fFop23Q>^K#>ECUyliE>nJ!SXx^zYa|)r zh(04`Pw}pmE`g{_qQBz-hj8 zINnf0%4XS>?dXzKW~j>Z3A<=S+4vl6zo!?gdmy!I?&ifw5oj9M__!(Em4V^01`Coofdx-S(h7QRcaCRGs80mYCntRT4LO99G7hoRV6?f>t zzt6EBr9zys7;!Ceig8m&Z;J=*RxC2RHv^!i9V93NOT~P%93PgiA4Yz{w;n=^LN2#2 zk(BksJmqN-wkZfGP@RE}i0x#^CiGFPqu?!G_e_L%fjZFvm2BSEOC&Q9Kdin=qGpmm zUpTC&31JaUNC6q7Yo;Oj^B0%&)Ta>kgWE;P6RI=}d}F*bTz*lm59p8g)i#$=48k|@ z�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 My8&W6r-1g3K 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

    ZbBb&f1D74t}w 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%0D=i=sVAqLw*&U`xDmi@3HD=$9Vgmn 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 Date: Sun, 18 Aug 2024 13:19:21 +0200 Subject: [PATCH 5/9] Fix import order --- .../org/jabref/gui/mergeentries/DiffHighlightingTest.java | 4 ++-- .../java/org/jabref/gui/search/GetLastSearchHistoryTest.java | 4 ++-- .../importer/fileformat/BiblioscapeImporterTypesTest.java | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/test/java/org/jabref/gui/mergeentries/DiffHighlightingTest.java b/src/test/java/org/jabref/gui/mergeentries/DiffHighlightingTest.java index f0da5e434c7..8284c4c289d 100644 --- a/src/test/java/org/jabref/gui/mergeentries/DiffHighlightingTest.java +++ b/src/test/java/org/jabref/gui/mergeentries/DiffHighlightingTest.java @@ -9,12 +9,12 @@ import org.jabref.testutils.category.GUITest; import org.junit.jupiter.api.Assertions; - -import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.testfx.framework.junit5.ApplicationExtension; +import static org.junit.jupiter.api.Assertions.assertThrows; + @GUITest @ExtendWith(ApplicationExtension.class) class DiffHighlightingTest { diff --git a/src/test/java/org/jabref/gui/search/GetLastSearchHistoryTest.java b/src/test/java/org/jabref/gui/search/GetLastSearchHistoryTest.java index a3e5b2a5a43..4dd28d92f39 100644 --- a/src/test/java/org/jabref/gui/search/GetLastSearchHistoryTest.java +++ b/src/test/java/org/jabref/gui/search/GetLastSearchHistoryTest.java @@ -8,12 +8,12 @@ import org.jabref.testutils.category.GUITest; import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.extension.ExtendWith; import org.testfx.framework.junit5.ApplicationExtension; import org.testfx.framework.junit5.Start; +import static org.junit.jupiter.api.Assertions.assertEquals; + @GUITest @ExtendWith(ApplicationExtension.class) class GetLastSearchHistoryTest { diff --git a/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTypesTest.java b/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTypesTest.java index 5aadf0309fe..a0fbfd3dafa 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTypesTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTypesTest.java @@ -13,11 +13,11 @@ import org.jabref.model.entry.types.StandardEntryType; import org.junit.jupiter.params.ParameterizedTest; - -import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; +import static org.junit.jupiter.api.Assertions.assertEquals; + class BiblioscapeImporterTypesTest { private static Stream types() { From 77cf0df747814742b8bead57c0052f2cf99953e6 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 18 Aug 2024 13:27:16 +0200 Subject: [PATCH 6/9] Fix GVK test --- .../importer/fetcher/transformers/GVKQueryTransformerTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformerTest.java index 98b0ce26de1..4ffdc684466 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformerTest.java @@ -43,7 +43,7 @@ public void convertYearField() throws Exception { QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional query = getTransformer().transformLuceneQuery(luceneQuery); - Optional expected = Optional.of("ver:2018"); + Optional expected = Optional.of("pica.erj=2018"); assertEquals(expected, query); } From f93c33ef026651171b8ddfafabc5b2b4971b2ded Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 18 Aug 2024 13:33:23 +0200 Subject: [PATCH 7/9] Fix more tests --- .../fetcher/transformers/ArXivQueryTransformerTest.java | 6 +++--- .../YearRangeByFilteringQueryTransformerTest.java | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformerTest.java index 4e6f03c3dbb..26c5f283972 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformerTest.java @@ -39,11 +39,11 @@ public String getTitlePrefix() { @Test public void convertYearField() throws Exception { ArXivQueryTransformer transformer = getTransformer(); - String queryString = "2018"; + String queryString = "year:2018"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional query = transformer.transformLuceneQuery(luceneQuery); assertEquals(Optional.of("2018"), query); - assertEquals(2018, transformer.getStartYear()); - assertEquals(2018, transformer.getEndYear()); + assertEquals(Optional.of(2018), transformer.getStartYear()); + assertEquals(Optional.of(2018), transformer.getEndYear()); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java index ce8eb38d453..bb68beb5cd5 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java @@ -22,8 +22,7 @@ public void convertYearRangeField() throws Exception { // The API does not support querying for a year range // The implementation of the fetcher filters the results manually - // The implementations returns an empty query - assertEquals(Optional.of(""), result); + assertEquals(Optional.empty(), result); // The implementation sets the start year and end year values according to the query assertEquals(2018, transformer.getStartYear()); From b3116b44cd9717f2e1bc86684ab2f92d2caf92ee Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 18 Aug 2024 22:32:17 +0200 Subject: [PATCH 8/9] Fix query transformer and tests --- CHANGELOG.md | 1 + .../transformers/JstorQueryTransformer.java | 2 +- ...cienceBibliographiesQueryTransformerTest.java | 2 +- .../transformers/DBLPQueryTransformerTest.java | 16 ++++++++++------ ...YearRangeByFilteringQueryTransformerTest.java | 6 +++--- ...YearRangeByFilteringQueryTransformerTest.java | 4 ++-- 6 files changed, 18 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ea8e73f4da0..5ebbe929c6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,7 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv - We fixed an issue where JabRef put file paths as absolute path when an entry was created using drag and drop of a PDF file. [#11173](https://github.com/JabRef/jabref/issues/11173) - We fixed an issue that online and offline mode for new library creation were handled incorrectly. [#11565](https://github.com/JabRef/jabref/pull/11565) - We fixed an issue with colors in the search bar when dark theme is enabled. [#11569](https://github.com/JabRef/jabref/issues/11569) +- We fixed an issue with query transformers (JStor and others). [#11643](https://github.com/JabRef/jabref/pull/11643) - We fixed an issue where a new unsaved library was not marked with an asterisk. [#11519](https://github.com/JabRef/jabref/pull/11519) - We fixed an issue where JabRef starts without window decorations. [#11440](https://github.com/JabRef/jabref/pull/11440) diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformer.java b/src/main/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformer.java index a8862de9106..876d79c3ac5 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformer.java +++ b/src/main/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformer.java @@ -33,7 +33,7 @@ protected String handleJournal(String journalTitle) { @Override protected String handleYear(String year) { - return "sd:" + year + getLogicalAndOperator() + "ed: " + year; + return "sd:" + year + getLogicalAndOperator() + "ed:" + year; } @Override diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformerTest.java index 55ea4529c0d..93f421bdc54 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformerTest.java @@ -38,7 +38,7 @@ public String getTitlePrefix() { @Override @Test public void convertYearField() throws Exception { - String queryString = "2018"; + String queryString = "year:2018"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional query = getTransformer().transformLuceneQuery(luceneQuery); assertEquals(Optional.of("year:2018"), query); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformerTest.java index 4dc762da921..8851f075daf 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformerTest.java @@ -40,9 +40,11 @@ public String getTitlePrefix() { public void convertYearField() throws Exception { String queryString = "year:2015"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); - Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); - Optional expected = Optional.of("2015"); - assertEquals(expected, searchQuery); + DBLPQueryTransformer transformer = getTransformer(); + Optional searchQuery = transformer.transformLuceneQuery(luceneQuery); + assertEquals(Optional.empty(), searchQuery); + assertEquals(Optional.of(2015), transformer.getStartYear()); + assertEquals(Optional.of(2015), transformer.getEndYear()); } @Override @@ -50,8 +52,10 @@ public void convertYearField() throws Exception { public void convertYearRangeField() throws Exception { String queryString = "year-range:2012-2015"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); - Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); - Optional expected = Optional.of("2012|2013|2014|2015"); - assertEquals(expected, searchQuery); + DBLPQueryTransformer transformer = getTransformer(); + Optional searchQuery = transformer.transformLuceneQuery(luceneQuery); + assertEquals(Optional.empty(), searchQuery); + assertEquals(Optional.of(2012), transformer.getStartYear()); + assertEquals(Optional.of(2015), transformer.getEndYear()); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformerTest.java index 70b20f217ec..3c327b65c16 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformerTest.java @@ -16,8 +16,8 @@ public void convertYearField() throws Exception { String queryString = "year:2021"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional query = transformer.transformLuceneQuery(luceneQuery); - assertEquals(Optional.of(""), query); - assertEquals(2021, transformer.getStartYear()); - assertEquals(2021, transformer.getEndYear()); + assertEquals(Optional.empty(), query); + assertEquals(Optional.of(2021), transformer.getStartYear()); + assertEquals(Optional.of(2021), transformer.getEndYear()); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java index bb68beb5cd5..3f8730addb9 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java @@ -25,7 +25,7 @@ public void convertYearRangeField() throws Exception { assertEquals(Optional.empty(), result); // The implementation sets the start year and end year values according to the query - assertEquals(2018, transformer.getStartYear()); - assertEquals(2021, transformer.getEndYear()); + assertEquals(Optional.of(2018), transformer.getStartYear()); + assertEquals(Optional.of(2021), transformer.getEndYear()); } } From 9e903db9e83441ef86bd8f784dd0712bff412ace Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Mon, 19 Aug 2024 21:55:06 +0200 Subject: [PATCH 9/9] Compilefix - and enumare rules explicitely --- rewrite.yml | 9 ++++++++- .../logic/importer/fetcher/SpringerFetcherTest.java | 8 ++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/rewrite.yml b/rewrite.yml index 9dff6a410d2..77e3a3c8bac 100644 --- a/rewrite.yml +++ b/rewrite.yml @@ -196,6 +196,13 @@ recipeList: - org.openrewrite.staticanalysis.WhileInsteadOfFor # - org.openrewrite.staticanalysis.WriteOctalValuesAsDecimal + # - org.openrewrite.java.testing.junit5.JUnit5BestPractices -- cannot be used directly, because one recipe is not working (see below) + - org.openrewrite.java.testing.cleanup.AssertLiteralBooleanToFailRecipe - org.openrewrite.java.testing.cleanup.RemoveTestPrefix + # - org.openrewrite.java.testing.cleanup.TestsShouldNotBePublic -- does not work due to https://github.com/openrewrite/rewrite-testing-frameworks/issues/458 - org.openrewrite.java.testing.junit5.CleanupAssertions - - org.openrewrite.java.testing.junit5.JUnit5BestPractices + - org.openrewrite.java.testing.junit5.AddParameterizedTestAnnotation + - org.openrewrite.java.testing.junit5.RemoveDuplicateTestTemplates + - org.openrewrite.java.testing.junit5.RemoveTryCatchFailBlocks + - org.openrewrite.java.testing.junit5.LifecycleNonPrivate + - org.openrewrite.java.testing.junit5.StaticImports diff --git a/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java index 53d2eadace7..a1e5bd7e982 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java @@ -157,25 +157,25 @@ void searchByEmptyQueryFindsNothing() throws Exception { @Test @Disabled("Year search is currently broken, because the API returns mutliple years.") @Override - void supportsYearSearch() { + public void supportsYearSearch() { } @Test @Disabled("Year range search is not natively supported by the API, but can be emulated by multiple single year searches.") @Override - void supportsYearRangeSearch() { + public void supportsYearRangeSearch() { } @Test @Disabled("401 as of 2024-08-18") @Override - void supportsAuthorSearch() { + public void supportsAuthorSearch() { } @Test @Disabled("401 as of 2024-08-18") @Override - void supportsJournalSearch() { + public void supportsJournalSearch() { } @Test