package eu.dnetlib.iis.common.model.extrainfo.citations; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.Iterator; import java.util.SortedSet; import java.util.TreeSet; import org.junit.Test; import eu.dnetlib.iis.common.model.extrainfo.ExtraInfoConstants; public class AlphaNumericCitationComparatorTest { @Test public void testSorting() throws Exception { SortedSet<BlobCitationEntry> citations = new TreeSet<BlobCitationEntry>(); BlobCitationEntry c1 = new BlobCitationEntry("[1] test"); BlobCitationEntry c2 = new BlobCitationEntry("[10] test"); BlobCitationEntry c3 = new BlobCitationEntry("[2] test"); BlobCitationEntry c4 = new BlobCitationEntry("[1] test"); c4.setIdentifiers(new ArrayList<TypedId>()); c4.getIdentifiers().add(new TypedId("1", ExtraInfoConstants.CITATION_TYPE_OPENAIRE, 0.9f)); citations.add(c4); citations.add(c3); citations.add(c2); citations.add(c1); Iterator<BlobCitationEntry> citationsIt = citations.iterator(); assertTrue(c1==citationsIt.next()); assertTrue(c4==citationsIt.next()); assertTrue(c3==citationsIt.next()); assertTrue(c2==citationsIt.next()); assertFalse(citationsIt.hasNext()); } @Test public void testSortingWithNulls() throws Exception { SortedSet<BlobCitationEntry> citations = new TreeSet<BlobCitationEntry>(); BlobCitationEntry c2 = new BlobCitationEntry("[10] test"); BlobCitationEntry c3 = new BlobCitationEntry(null); citations.add(c3); citations.add(c2); Iterator<BlobCitationEntry> citationsIt = citations.iterator(); assertTrue(c2==citationsIt.next()); assertTrue(c3==citationsIt.next()); } @Test public void testSortingWithDuplicates() throws Exception { SortedSet<BlobCitationEntry> citations = new TreeSet<BlobCitationEntry>(); BlobCitationEntry c1 = new BlobCitationEntry("[1] test"); BlobCitationEntry c2 = new BlobCitationEntry("[1] test"); BlobCitationEntry c3 = new BlobCitationEntry("[2] test"); BlobCitationEntry c4 = new BlobCitationEntry("[2] test"); BlobCitationEntry c5 = new BlobCitationEntry("[2] test"); c3.setIdentifiers(new ArrayList<TypedId>()); c3.getIdentifiers().add(new TypedId("1", ExtraInfoConstants.CITATION_TYPE_OPENAIRE, 0.9f)); c4.setIdentifiers(new ArrayList<TypedId>()); c4.getIdentifiers().add(new TypedId("1", ExtraInfoConstants.CITATION_TYPE_OPENAIRE, 0.9f)); c5.setIdentifiers(new ArrayList<TypedId>()); c5.getIdentifiers().add(new TypedId("2", ExtraInfoConstants.CITATION_TYPE_OPENAIRE, 0.9f)); citations.add(c5); citations.add(c4); citations.add(c3); citations.add(c2); citations.add(c1); Iterator<BlobCitationEntry> citationsIt = citations.iterator(); assertTrue(c2==citationsIt.next()); assertTrue(c5==citationsIt.next()); assertTrue(c4==citationsIt.next()); assertFalse(citationsIt.hasNext()); } }