package org.jabref.logic.bibtex.comparator; import org.jabref.model.entry.BibtexString; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class BibtexStringComparatorTest { private final BibtexStringComparator bsc1 = new BibtexStringComparator(false); private final BibtexStringComparator bsc2 = new BibtexStringComparator(true); @Test public 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"); // Same string assertEquals(0, bsc1.compare(bs1, bs1)); // Same content assertEquals(0, bsc1.compare(bs2, bs3)); // Alphabetical order assertTrue(bsc1.compare(bs1, bs2) > 0); assertTrue(bsc1.compare(bs2, bs1) < 0); // Same, but with the comparator checking for internal strings (none) assertEquals(0, bsc2.compare(bs1, bs1)); assertEquals(0, bsc2.compare(bs2, bs3)); assertTrue(bsc2.compare(bs1, bs2) > 0); assertTrue(bsc2.compare(bs2, bs1) < 0); // Create string with internal string BibtexString bs4 = new BibtexString("DSPVLSI", "#VLSI# #DSP#"); // bs4 before bs1 if not considering that bs4 contains bs1 assertTrue(bsc1.compare(bs1, bs4) > 0); assertTrue(bsc1.compare(bs4, bs1) < 0); // bs4 after bs1 if considering that bs4 contains bs1 assertTrue(bsc2.compare(bs1, bs4) < 0); assertTrue(bsc2.compare(bs4, bs1) > 0); } }