package org.compass.core.test.config.schema;
import java.util.Map;
import junit.framework.TestCase;
import org.compass.core.accessor.DirectPropertyAccessor;
import org.compass.core.config.CompassConfiguration;
import org.compass.core.config.CompassEnvironment;
import org.compass.core.config.CompassSettings;
import org.compass.core.engine.naming.DynamicPropertyNamingStrategy;
import org.compass.core.lucene.LuceneEnvironment;
import org.compass.core.lucene.engine.store.jdbc.C3P0DataSourceProvider;
import org.compass.core.lucene.engine.store.jdbc.DbcpDataSourceProvider;
import org.compass.core.lucene.engine.store.jdbc.DriverManagerDataSourceProvider;
import org.compass.core.lucene.engine.store.jdbc.ExternalDataSourceProvider;
import org.compass.core.lucene.engine.store.jdbc.JndiDataSourceProvider;
import org.compass.core.transaction.JTASyncTransactionFactory;
import org.compass.core.transaction.manager.JBoss;
/**
* @author kimchy
*/
public class SchemaSimpleTests extends TestCase {
public void testSimpleSchema() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/simple.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("default", settings.getSetting(CompassEnvironment.NAME));
assertEquals("file://target/test-index", settings.getSetting(CompassEnvironment.CONNECTION));
}
public void testLocalCacheSettings() {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/localcache.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("ram://", settings.getSetting(LuceneEnvironment.LocalCache.PREFIX + "." + LuceneEnvironment.LocalCache.DEFAULT_NAME + "." + LuceneEnvironment.LocalCache.CONNECTION));
assertEquals("file://", settings.getSetting(LuceneEnvironment.LocalCache.PREFIX + ".a." + LuceneEnvironment.LocalCache.CONNECTION));
}
public void testIndexDeletionPolicyKeepLastCommit() {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/idp-keeplastcommit.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals(LuceneEnvironment.IndexDeletionPolicy.KeepLastCommit.NAME, settings.getSetting(LuceneEnvironment.IndexDeletionPolicy.TYPE));
}
public void testIndexDeletionPolicyKeepAll() {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/idp-keepall.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals(LuceneEnvironment.IndexDeletionPolicy.KeepAll.NAME, settings.getSetting(LuceneEnvironment.IndexDeletionPolicy.TYPE));
}
public void testIndexDeletionPolicyKeepNoneOnInit() {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/idp-keepnoneoninit.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals(LuceneEnvironment.IndexDeletionPolicy.KeepNoneOnInit.NAME, settings.getSetting(LuceneEnvironment.IndexDeletionPolicy.TYPE));
}
public void testIndexDeletionPolicyExpirationTime() {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/idp-expirationtime.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals(LuceneEnvironment.IndexDeletionPolicy.ExpirationTime.NAME, settings.getSetting(LuceneEnvironment.IndexDeletionPolicy.TYPE));
assertEquals("10", settings.getSetting(LuceneEnvironment.IndexDeletionPolicy.ExpirationTime.EXPIRATION_TIME_IN_SECONDS));
}
public void testIndexDeletionPolicyKeepLastN() {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/idp-keeplastn.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals(LuceneEnvironment.IndexDeletionPolicy.KeepLastN.NAME, settings.getSetting(LuceneEnvironment.IndexDeletionPolicy.TYPE));
assertEquals("10", settings.getSetting(LuceneEnvironment.IndexDeletionPolicy.KeepLastN.NUM_TO_KEEP));
}
public void testLockFactory() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/lockfactory.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("nativefs", settings.getSetting(LuceneEnvironment.LockFactory.TYPE));
assertEquals("test/#subindex#", settings.getSetting(LuceneEnvironment.LockFactory.PATH));
}
public void testRamTransLog() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/ramtranslog.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("ram://", settings.getSetting(LuceneEnvironment.Transaction.Processor.ReadCommitted.TransLog.CONNECTION));
assertEquals("true", settings.getSetting(LuceneEnvironment.Transaction.Processor.ReadCommitted.TransLog.OPTIMIZE_TRANS_LOG));
}
public void testFsTransLog() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/fstranslog.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("file://", settings.getSetting(LuceneEnvironment.Transaction.Processor.ReadCommitted.TransLog.CONNECTION));
assertEquals("false", settings.getSetting(LuceneEnvironment.Transaction.Processor.ReadCommitted.TransLog.OPTIMIZE_TRANS_LOG));
}
public void testTxProcessorAsync() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/tx-processor-async.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("100", settings.getSetting(LuceneEnvironment.Transaction.Processor.Async.ADD_TIMEOUT));
assertEquals("50", settings.getSetting(LuceneEnvironment.Transaction.Processor.Async.BACKLOG));
assertEquals("99", settings.getSetting(LuceneEnvironment.Transaction.Processor.Async.BATCH_JOBS_SIZE));
assertEquals("30", settings.getSetting(LuceneEnvironment.Transaction.Processor.Async.BATCH_JOBS_TIMEOUT));
assertEquals("7", settings.getSetting(LuceneEnvironment.Transaction.Processor.Async.CONCURRENCY_LEVEL));
assertEquals("subindex", settings.getSetting(LuceneEnvironment.Transaction.Processor.Async.HASHING));
assertEquals("89", settings.getSetting(LuceneEnvironment.Transaction.Processor.Async.NON_BLOCKING_BATCH_JOBS_SIZE));
assertEquals("false", settings.getSetting(LuceneEnvironment.Transaction.Processor.Async.PROCESS_BEFORE_CLOSE));
}
public void testQueryParser() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/queryParser.cfg.xml");
CompassSettings settings = conf.getSettings();
Map groupSettings = settings.getSettingGroups(LuceneEnvironment.QueryParser.PREFIX);
assertEquals(1, groupSettings.size());
settings = (CompassSettings) groupSettings.get("test");
assertNotNull(settings);
assertEquals("eg.QueryParser", settings.getSetting(LuceneEnvironment.QueryParser.TYPE));
assertEquals("value1", settings.getSetting("param1"));
}
public void testOsem() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/osem.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("false", settings.getSetting(CompassEnvironment.Osem.SUPPORT_UNMARSHALL));
assertEquals("not_analyzed", settings.getSetting(CompassEnvironment.Osem.MANAGED_ID_INDEX));
}
public void testLocking() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/locking.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("15", settings.getSetting(LuceneEnvironment.Transaction.LOCK_TIMEOUT));
assertEquals("200", settings.getSetting(LuceneEnvironment.Transaction.LOCK_POLL_INTERVAL));
}
public void testOptimizer() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/optimizer.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("true", settings.getSetting(LuceneEnvironment.Optimizer.SCHEDULE));
assertEquals("90", settings.getSetting(LuceneEnvironment.Optimizer.SCHEDULE_PERIOD));
assertEquals("2", settings.getSetting(LuceneEnvironment.Optimizer.MAX_NUMBER_OF_SEGMENTS));
}
public void testDirectoryWrapperProvider() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/wrapper-connection.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("eg.DWPImpl", settings.getSetting(LuceneEnvironment.DirectoryWrapper.PREFIX + ".test."
+ LuceneEnvironment.DirectoryWrapper.TYPE));
assertEquals("value1", settings.getSetting(LuceneEnvironment.DirectoryWrapper.PREFIX + ".test.setting1"));
}
public void testRamConnectionSchema() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/ram-connection.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("default", settings.getSetting(CompassEnvironment.NAME));
assertEquals("ram://target/test-index", settings.getSetting(CompassEnvironment.CONNECTION));
}
public void testMmapConnectionSchema() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/mmap-connection.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("default", settings.getSetting(CompassEnvironment.NAME));
assertEquals("mmap://target/test-index", settings.getSetting(CompassEnvironment.CONNECTION));
}
public void testNIOFSConnectionSchema() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/niofs-connection.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("default", settings.getSetting(CompassEnvironment.NAME));
assertEquals("niofs://target/test-index", settings.getSetting(CompassEnvironment.CONNECTION));
}
public void testPropertiesSchema() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/properties.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("alias1", settings.getSetting(CompassEnvironment.Alias.NAME));
assertEquals("all1", settings.getSetting(CompassEnvironment.All.NAME));
assertEquals("yes", settings.getSetting(CompassEnvironment.All.TERM_VECTOR));
}
public void testPropertyNamingStrategySchema() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/propertyNamingStrategy.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals(DynamicPropertyNamingStrategy.class.getName(), settings.getSetting(CompassEnvironment.NamingStrategy.TYPE));
}
public void testJtaSchema() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/jta.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals(JTASyncTransactionFactory.class.getName(), settings.getSetting(CompassEnvironment.Transaction.FACTORY));
assertEquals("true", settings.getSetting(CompassEnvironment.Transaction.COMMIT_BEFORE_COMPLETION));
assertEquals(JBoss.class.getName(), settings.getSetting(CompassEnvironment.Transaction.MANAGER_LOOKUP));
}
public void testJdbcDriverManagerSchema() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/jdbc-drivermanager.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("true", settings.getSetting(LuceneEnvironment.JdbcStore.MANAGED));
assertEquals(DriverManagerDataSourceProvider.class.getName(),
settings.getSetting(LuceneEnvironment.JdbcStore.DataSourceProvider.CLASS));
assertEquals("testusername", settings.getSetting(LuceneEnvironment.JdbcStore.Connection.USERNAME));
assertEquals("testpassword", settings.getSetting(LuceneEnvironment.JdbcStore.Connection.PASSWORD));
assertEquals("testDriverClass", settings.getSetting(LuceneEnvironment.JdbcStore.Connection.DRIVER_CLASS));
assertEquals("jdbc://testurl", settings.getSetting(CompassEnvironment.CONNECTION));
}
public void testJdbcDbcp() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/jdbc-dbcp.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("true", settings.getSetting(LuceneEnvironment.JdbcStore.MANAGED));
assertEquals("true", settings.getSetting(LuceneEnvironment.JdbcStore.DISABLE_SCHEMA_OPERATIONS));
assertEquals(DbcpDataSourceProvider.class.getName(),
settings.getSetting(LuceneEnvironment.JdbcStore.DataSourceProvider.CLASS));
assertEquals("testusername", settings.getSetting(LuceneEnvironment.JdbcStore.Connection.USERNAME));
assertEquals("testpassword", settings.getSetting(LuceneEnvironment.JdbcStore.Connection.PASSWORD));
assertEquals("testDriverClass", settings.getSetting(LuceneEnvironment.JdbcStore.Connection.DRIVER_CLASS));
assertEquals("jdbc://testurl", settings.getSetting(CompassEnvironment.CONNECTION));
assertEquals("10", settings.getSetting(LuceneEnvironment.JdbcStore.DataSourceProvider.Dbcp.MAX_ACTIVE));
assertEquals("5", settings.getSetting(LuceneEnvironment.JdbcStore.DataSourceProvider.Dbcp.MAX_WAIT));
assertEquals("2", settings.getSetting(LuceneEnvironment.JdbcStore.DataSourceProvider.Dbcp.MAX_IDLE));
assertEquals("3", settings.getSetting(LuceneEnvironment.JdbcStore.DataSourceProvider.Dbcp.INITIAL_SIZE));
assertEquals("4", settings.getSetting(LuceneEnvironment.JdbcStore.DataSourceProvider.Dbcp.MIN_IDLE));
assertEquals("true", settings.getSetting(LuceneEnvironment.JdbcStore.DataSourceProvider.Dbcp.POOL_PREPARED_STATEMENTS));
assertEquals("2", settings.getSetting(LuceneEnvironment.JdbcStore.DataSourceProvider.Dbcp.DEFAULT_TRANSACTION_ISOLATION));
}
public void testJdbcC3p0() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/jdbc-c3p0.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("true", settings.getSetting(LuceneEnvironment.JdbcStore.MANAGED));
assertEquals("true", settings.getSetting(LuceneEnvironment.JdbcStore.DISABLE_SCHEMA_OPERATIONS));
assertEquals(C3P0DataSourceProvider.class.getName(),
settings.getSetting(LuceneEnvironment.JdbcStore.DataSourceProvider.CLASS));
assertEquals("testusername", settings.getSetting(LuceneEnvironment.JdbcStore.Connection.USERNAME));
assertEquals("testpassword", settings.getSetting(LuceneEnvironment.JdbcStore.Connection.PASSWORD));
assertEquals("testDriverClass", settings.getSetting(LuceneEnvironment.JdbcStore.Connection.DRIVER_CLASS));
assertEquals("jdbc://testurl", settings.getSetting(CompassEnvironment.CONNECTION));
}
public void testJdbcJndiSchema() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/jdbc-jndi.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("false", settings.getSetting(LuceneEnvironment.JdbcStore.MANAGED));
assertEquals(JndiDataSourceProvider.class.getName(),
settings.getSetting(LuceneEnvironment.JdbcStore.DataSourceProvider.CLASS));
assertEquals("testusername", settings.getSetting(LuceneEnvironment.JdbcStore.Connection.USERNAME));
assertEquals("testpassword", settings.getSetting(LuceneEnvironment.JdbcStore.Connection.PASSWORD));
assertEquals("jdbc://testds", settings.getSetting(CompassEnvironment.CONNECTION));
}
public void testJdbcExternalSchema() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/jdbc-external.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("false", settings.getSetting(LuceneEnvironment.JdbcStore.MANAGED));
assertEquals(ExternalDataSourceProvider.class.getName(),
settings.getSetting(LuceneEnvironment.JdbcStore.DataSourceProvider.CLASS));
assertEquals("testusername", settings.getSetting(LuceneEnvironment.JdbcStore.Connection.USERNAME));
assertEquals("testpassword", settings.getSetting(LuceneEnvironment.JdbcStore.Connection.PASSWORD));
assertEquals("jdbc://", settings.getSetting(CompassEnvironment.CONNECTION));
}
public void testJdbcFESchema() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/jdbc-fe.cfg.xml");
CompassSettings settings = conf.getSettings();
String defaultPrefix = LuceneEnvironment.JdbcStore.FileEntry.PREFIX + ".__default__.";
assertEquals("4096", settings.getSetting(defaultPrefix + LuceneEnvironment.JdbcStore.FileEntry.INDEX_INPUT_BUFFER_SIZE));
assertEquals("4096", settings.getSetting(defaultPrefix + LuceneEnvironment.JdbcStore.FileEntry.INDEX_OUTPUT_BUFFER_SIZE));
}
public void testJdbcDDLSchema() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/jdbc-ddl.cfg.xml");
CompassSettings settings = conf.getSettings();
assertEquals("myname", settings.getSetting(LuceneEnvironment.JdbcStore.DDL.NAME_NAME));
assertEquals("70", settings.getSetting(LuceneEnvironment.JdbcStore.DDL.NAME_LENGTH));
assertEquals("mysize", settings.getSetting(LuceneEnvironment.JdbcStore.DDL.SIZE_NAME));
}
public void testConvertersSchema() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/converters.cfg.xml");
CompassSettings settings = conf.getSettings();
Map groupSettings = settings.getSettingGroups(CompassEnvironment.Converter.PREFIX);
assertEquals(2, groupSettings.size());
settings = (CompassSettings) groupSettings.get("date");
assertNotNull(settings);
assertEquals("yyyy-MM-dd", settings.getSetting("format"));
settings = (CompassSettings) groupSettings.get("myConverter");
assertNotNull(settings);
}
public void testPropertyAcessorsSchema() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/property-accessors.cfg.xml");
CompassSettings settings = conf.getSettings();
Map groupSettings = settings.getSettingGroups(CompassEnvironment.PropertyAccessor.PREFIX);
assertEquals(1, groupSettings.size());
settings = (CompassSettings) groupSettings.get("myType");
assertNotNull(settings);
assertEquals(DirectPropertyAccessor.class.getName(), settings.getSetting("type"));
assertEquals("value", settings.getSetting("test"));
}
public void testAnalyzersSchema() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/analyzers.cfg.xml");
CompassSettings settings = conf.getSettings();
Map groupSettings = settings.getSettingGroups(LuceneEnvironment.Analyzer.PREFIX);
assertEquals(1, groupSettings.size());
settings = (CompassSettings) groupSettings.get("test");
assertNotNull(settings);
assertEquals("Snowball", settings.getSetting(LuceneEnvironment.Analyzer.TYPE));
assertEquals("Lovins", settings.getSetting(LuceneEnvironment.Analyzer.Snowball.NAME_TYPE));
assertEquals("+test,", settings.getSetting(LuceneEnvironment.Analyzer.STOPWORDS));
settings = conf.getSettings();
groupSettings = settings.getSettingGroups(LuceneEnvironment.AnalyzerFilter.PREFIX);
assertEquals(1, groupSettings.size());
settings = (CompassSettings) groupSettings.get("test");
assertNotNull(settings);
assertEquals("org.compass.test.Test", settings.getSetting(LuceneEnvironment.AnalyzerFilter.TYPE));
assertEquals("setValue", settings.getSetting("setName"));
}
public void testHighlightersSchema() throws Exception {
CompassConfiguration conf = new CompassConfiguration()
.configure("/org/compass/core/test/config/schema/highlighters.cfg.xml");
CompassSettings settings = conf.getSettings();
Map groupSettings = settings.getSettingGroups(LuceneEnvironment.Highlighter.PREFIX);
assertEquals(1, groupSettings.size());
settings = (CompassSettings) groupSettings.get("test1");
assertNotNull(settings);
assertEquals(LuceneEnvironment.Highlighter.Fragmenter.TYPE_SIMPLE,
settings.getSetting(LuceneEnvironment.Highlighter.Fragmenter.TYPE));
assertEquals(90, settings.getSettingAsInt(LuceneEnvironment.Highlighter.Fragmenter.SIMPLE_SIZE, 0));
assertEquals(LuceneEnvironment.Highlighter.Encoder.HTML,
settings.getSetting(LuceneEnvironment.Highlighter.Encoder.TYPE));
assertEquals(LuceneEnvironment.Highlighter.Formatter.SIMPLE,
settings.getSetting(LuceneEnvironment.Highlighter.Formatter.TYPE));
assertEquals("<tag>", settings.getSetting(LuceneEnvironment.Highlighter.Formatter.SIMPLE_PRE_HIGHLIGHT));
assertEquals("</tag>", settings.getSetting(LuceneEnvironment.Highlighter.Formatter.SIMPLE_POST_HIGHLIGHT));
}
}