package org.jabref.logic.bibtex.comparator;
import org.jabref.model.entry.BibEntry;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class FieldComparatorTest {
@Test
public void compareMonthFieldIdentity() throws Exception {
FieldComparator comparator = new FieldComparator("month");
BibEntry equal = new BibEntry();
equal.setField("month", "1");
assertEquals(0, comparator.compare(equal, equal));
}
@Test
public void compareMonthFieldEquality() throws Exception {
FieldComparator comparator = new FieldComparator("month");
BibEntry equal = new BibEntry();
equal.setField("month", "1");
BibEntry equal2 = new BibEntry();
equal2.setField("month", "1");
assertEquals(0, comparator.compare(equal, equal2));
}
@Test
public void compareMonthFieldBiggerAscending() throws Exception {
FieldComparator comparator = new FieldComparator("month");
BibEntry smaller = new BibEntry();
smaller.setField("month", "jan");
BibEntry bigger = new BibEntry();
bigger.setField("month", "feb");
assertEquals(1, comparator.compare(bigger, smaller));
}
@Test
public void compareMonthFieldBiggerDescending() throws Exception {
FieldComparator comparator = new FieldComparator("month", true);
BibEntry smaller = new BibEntry();
smaller.setField("month", "feb");
BibEntry bigger = new BibEntry();
bigger.setField("month", "jan");
assertEquals(1, comparator.compare(bigger, smaller));
}
@Test
public void compareYearFieldIdentity() throws Exception {
FieldComparator comparator = new FieldComparator("year");
BibEntry equal = new BibEntry();
equal.setField("year", "2016");
assertEquals(0, comparator.compare(equal, equal));
}
@Test
public void compareYearFieldEquality() throws Exception {
FieldComparator comparator = new FieldComparator("year");
BibEntry equal = new BibEntry();
equal.setField("year", "2016");
BibEntry equal2 = new BibEntry();
equal2.setField("year", "2016");
assertEquals(0, comparator.compare(equal, equal2));
}
@Test
public void compareYearFieldBiggerAscending() throws Exception {
FieldComparator comparator = new FieldComparator("year");
BibEntry smaller = new BibEntry();
smaller.setField("year", "2000");
BibEntry bigger = new BibEntry();
bigger.setField("year", "2016");
assertEquals(1, comparator.compare(bigger, smaller));
}
@Test
public void compareYearFieldBiggerDescending() throws Exception {
FieldComparator comparator = new FieldComparator("year", true);
BibEntry smaller = new BibEntry();
smaller.setField("year", "2016");
BibEntry bigger = new BibEntry();
bigger.setField("year", "2000");
assertEquals(1, comparator.compare(bigger, smaller));
}
@Test
public void compareTypeFieldIdentity() throws Exception {
FieldComparator comparator = new FieldComparator("entrytype");
BibEntry equal = new BibEntry("article");
assertEquals(0, comparator.compare(equal, equal));
}
@Test
public void compareTypeFieldEquality() throws Exception {
FieldComparator comparator = new FieldComparator("entrytype");
BibEntry equal = new BibEntry("article");
equal.setId("1");
BibEntry equal2 = new BibEntry("article");
equal2.setId("1");
assertEquals(0, comparator.compare(equal, equal2));
}
@Test
public void compareTypeFieldBiggerAscending() throws Exception {
FieldComparator comparator = new FieldComparator("entrytype");
BibEntry smaller = new BibEntry("article");
BibEntry bigger = new BibEntry("book");
assertEquals(1, comparator.compare(bigger, smaller));
}
@Test
public void compareTypeFieldBiggerDescending() throws Exception {
FieldComparator comparator = new FieldComparator("entrytype", true);
BibEntry bigger = new BibEntry("article");
BibEntry smaller = new BibEntry("book");
assertEquals(1, comparator.compare(bigger, smaller));
}
@Test
public void compareStringFieldsIdentity() throws Exception {
FieldComparator comparator = new FieldComparator("title");
BibEntry equal = new BibEntry();
equal.setField("title", "title");
assertEquals(0, comparator.compare(equal, equal));
}
@Test
public void compareStringFieldsEquality() throws Exception {
FieldComparator comparator = new FieldComparator("title");
BibEntry equal = new BibEntry();
equal.setField("title", "title");
BibEntry equal2 = new BibEntry();
equal2.setField("title", "title");
assertEquals(0, comparator.compare(equal, equal2));
}
@Test
public void compareStringFieldsBiggerAscending() throws Exception {
FieldComparator comparator = new FieldComparator("title");
BibEntry bigger = new BibEntry();
bigger.setField("title", "b");
BibEntry smaller = new BibEntry();
smaller.setField("title", "a");
assertEquals(1, comparator.compare(bigger, smaller));
}
@Test
public void compareStringFieldsBiggerDescending() throws Exception {
FieldComparator comparator = new FieldComparator("title", true);
BibEntry bigger = new BibEntry();
bigger.setField("title", "a");
BibEntry smaller = new BibEntry();
smaller.setField("title", "b");
assertEquals(1, comparator.compare(bigger, smaller));
}
@Test
public void nameOfComparisonField() throws Exception {
FieldComparator comparator = new FieldComparator("title");
assertEquals("title", comparator.getFieldName());
}
@Test
public void nameOfComparisonFieldAlias() throws Exception {
FieldComparator comparator = new FieldComparator("author/editor");
assertEquals("author/editor", comparator.getFieldName());
}
}