package org.jabref.logic.journals; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; public class JournalAbbreviationRepositoryTest { @Test public void empty() { JournalAbbreviationRepository repository = new JournalAbbreviationRepository(); assertEquals(0, repository.size()); assertTrue(repository.getAbbreviations().isEmpty()); } @Test public void oneElement() { JournalAbbreviationRepository repository = new JournalAbbreviationRepository(); repository.addEntry(new Abbreviation("Long Name", "L. N.")); assertEquals(1, repository.size()); assertFalse(repository.getAbbreviations().isEmpty()); assertEquals("L. N.", repository.getIsoAbbreviation("Long Name").orElse("WRONG")); assertEquals("UNKNOWN", repository.getIsoAbbreviation("?").orElse("UNKNOWN")); assertEquals("L N", repository.getMedlineAbbreviation("Long Name").orElse("WRONG")); assertEquals("UNKNOWN", repository.getMedlineAbbreviation("?").orElse("UNKNOWN")); assertEquals("L. N.", repository.getNextAbbreviation("Long Name").orElse("WRONG")); assertEquals("L N", repository.getNextAbbreviation("L. N.").orElse("WRONG")); assertEquals("Long Name", repository.getNextAbbreviation("L N").orElse("WRONG")); assertEquals("UNKNOWN", repository.getNextAbbreviation("?").orElse("UNKNOWN")); assertTrue(repository.isKnownName("Long Name")); assertTrue(repository.isKnownName("L. N.")); assertTrue(repository.isKnownName("L N")); assertFalse(repository.isKnownName("?")); } @Test public void testSorting() { JournalAbbreviationRepository repository = new JournalAbbreviationRepository(); repository.addEntry(new Abbreviation("Long Name", "L. N.")); repository.addEntry(new Abbreviation("A Long Name", "AL. N.")); assertEquals("A Long Name", repository.getAbbreviations().first().getName()); assertEquals("Long Name", repository.getAbbreviations().last().getName()); } @Test public void testDuplicates() { JournalAbbreviationRepository repository = new JournalAbbreviationRepository(); repository.addEntry(new Abbreviation("Long Name", "L. N.")); repository.addEntry(new Abbreviation("Long Name", "L. N.")); assertEquals(1, repository.size()); } @Test public void testDuplicatesIsoOnly() { JournalAbbreviationRepository repository = new JournalAbbreviationRepository(); repository.addEntry(new Abbreviation("Old Long Name", "L. N.")); repository.addEntry(new Abbreviation("New Long Name", "L. N.")); assertEquals(2, repository.size()); assertEquals("L N", repository.getNextAbbreviation("L. N.").orElse("WRONG")); assertEquals("New Long Name", repository.getNextAbbreviation("L N").orElse("WRONG")); } @Test public void testDuplicateKeys() { JournalAbbreviationRepository repository = new JournalAbbreviationRepository(); repository.addEntry(new Abbreviation("Long Name", "L. N.")); assertEquals(1, repository.size()); assertEquals("L. N.", repository.getIsoAbbreviation("Long Name").orElse("WRONG")); repository.addEntry(new Abbreviation("Long Name", "LA. N.")); assertEquals(1, repository.size()); assertEquals("LA. N.", repository.getIsoAbbreviation("Long Name").orElse("WRONG")); } }