package org.jabref.logic.specialfields;
import java.util.List;
import java.util.Optional;
import org.jabref.model.FieldChange;
import org.jabref.model.entry.BibEntry;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class SpecialFieldsUtilsTest {
@Test
public void syncKeywordsFromSpecialFieldsWritesToKeywords() {
BibEntry entry = new BibEntry();
entry.setField("ranking", "rank2");
SpecialFieldsUtils.syncKeywordsFromSpecialFields(entry, ',');
assertEquals(Optional.of("rank2"), entry.getField("keywords"));
}
@Test
public void syncKeywordsFromSpecialFieldsCausesChange() {
BibEntry entry = new BibEntry();
entry.setField("ranking", "rank2");
List<FieldChange> changes = SpecialFieldsUtils.syncKeywordsFromSpecialFields(entry, ',');
assertTrue(changes.size() > 0);
}
@Test
public void syncKeywordsFromSpecialFieldsOverwritesKeywords() {
BibEntry entry = new BibEntry();
entry.setField("ranking", "rank2");
entry.setField("keywords", "rank3");
SpecialFieldsUtils.syncKeywordsFromSpecialFields(entry, ',');
assertEquals(Optional.of("rank2"), entry.getField("keywords"));
}
@Test
public void syncKeywordsFromSpecialFieldsForEmptyFieldCausesNoChange() {
BibEntry entry = new BibEntry();
List<FieldChange> changes = SpecialFieldsUtils.syncKeywordsFromSpecialFields(entry, ',');
assertFalse(changes.size() > 0);
}
@Test
public void syncSpecialFieldsFromKeywordWritesToSpecialField() {
BibEntry entry = new BibEntry();
entry.setField("keywords", "rank2");
SpecialFieldsUtils.syncSpecialFieldsFromKeywords(entry, ',');
assertEquals(Optional.of("rank2"), entry.getField("ranking"));
}
@Test
public void syncSpecialFieldsFromKeywordCausesChange() {
BibEntry entry = new BibEntry();
entry.setField("keywords", "rank2");
List<FieldChange> changes = SpecialFieldsUtils.syncSpecialFieldsFromKeywords(entry, ',');
assertTrue(changes.size() > 0);
}
@Test
public void syncSpecialFieldsFromKeywordCausesNoChangeWhenKeywordsAreEmpty() {
BibEntry entry = new BibEntry();
List<FieldChange> changes = SpecialFieldsUtils.syncSpecialFieldsFromKeywords(entry, ',');
assertFalse(changes.size() > 0);
}
}