package org.jabref.logic.exporter; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.TreeMap; import org.jabref.logic.formatter.casechanger.LowerCaseFormatter; import org.jabref.logic.util.OS; import org.jabref.model.bibtexkeypattern.GlobalBibtexKeyPattern; import org.jabref.model.cleanup.FieldFormatterCleanup; import org.jabref.model.cleanup.FieldFormatterCleanups; import org.jabref.model.metadata.ContentSelector; import org.jabref.model.metadata.MetaData; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; public class MetaDataSerializerTest { private MetaData metaData; private GlobalBibtexKeyPattern pattern; @Before public void setUp() { metaData = new MetaData(); pattern = GlobalBibtexKeyPattern.fromPattern("[auth][year]"); } @Test public void serializeNewMetadataReturnsEmptyMap() throws Exception { assertEquals(Collections.emptyMap(), MetaDataSerializer.getSerializedStringMap(metaData, pattern)); } @Test public void serializeSingleSaveAction() { FieldFormatterCleanups saveActions = new FieldFormatterCleanups(true, Collections.singletonList(new FieldFormatterCleanup("title", new LowerCaseFormatter()))); metaData.setSaveActions(saveActions); Map<String, String> expectedSerialization = new TreeMap<>(); expectedSerialization.put("saveActions", "enabled;" + OS.NEWLINE + "title[lower_case]" + OS.NEWLINE + ";"); assertEquals(expectedSerialization, MetaDataSerializer.getSerializedStringMap(metaData, pattern)); } @Test public void serializeSingleContentSelectors() { List<String> values = new ArrayList(4); values.add("approved"); values.add("captured"); values.add("received"); values.add("status"); metaData.addContentSelector(new ContentSelector("status", values)); Map<String, String> expectedSerialization = new TreeMap<>(); expectedSerialization.put("selector_status", "approved;captured;received;status;"); assertEquals(expectedSerialization, MetaDataSerializer.getSerializedStringMap(metaData, pattern)); } }