package org.solrmarc.index.indexer;
import org.junit.Before;
import org.junit.Test;
import org.marc4j.MarcPermissiveStreamReader;
import org.marc4j.MarcReader;
import org.marc4j.marc.Record;
import org.solrmarc.index.indexer.AbstractValueIndexer;
import org.solrmarc.index.indexer.MultiValueIndexer;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Properties;
import static org.junit.Assert.assertEquals;
public class MoreValueIndexerFactoryTests
{
private Record testRecord;
private final static String inputfilename="./test/data/records/u5278992.mrc";
private static ValueIndexerFactory factory;
static
{
factory = ValueIndexerFactory.initialize(new String[]{System.getProperty("test.data.dir", "test/data")});
}
@Before
public void setup() throws FileNotFoundException
{
InputStream input = new BufferedInputStream(new FileInputStream(inputfilename));
MarcReader reader = new MarcPermissiveStreamReader(input, true, true);
testRecord = reader.next();
testRecord.setId(1L);
}
// "LNK245ab"
@Test
public void testFieldSpecMultiFieldIndexer() throws Exception
{
final Properties configs = new Properties();
configs.put("linked_title_facet", "LNK245ab, join( : ), cleanEach");
final AbstractValueIndexer<?> valueIndexer = factory.createValueIndexer("linked_title_facet", "LNK245ab, join( : ), cleanEach");
final MultiValueIndexer indexer = (MultiValueIndexer) valueIndexer;
assertEquals(1, indexer.getSolrFieldNames().size());
assertEquals("linked_title_facet", indexer.getSolrFieldNames().iterator().next());
@SuppressWarnings("unused")
Object linked_title_facet = indexer.getFieldData(testRecord);
}
}