blob: 6f9aebe2cf75c6d65d3d674c90d32439be659be8 [file] [log] [blame]
/*********************************************************************************************************************
* Copyright (c) 2008, 2015 Empolis Information Management GmbH and brox IT Solutions GmbH. All rights reserved.
* This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
**********************************************************************************************************************/
package org.eclipse.smila.solr;
import junit.framework.TestCase;
import org.apache.commons.lang.NullArgumentException;
import org.eclipse.smila.datamodel.AnyMap;
import org.eclipse.smila.datamodel.AnySeq;
import org.eclipse.smila.datamodel.DataFactory;
public class SolrConfig_Test extends TestCase {
private AnyMap getSampleConfig() {
final AnyMap config = DataFactory.DEFAULT.createAnyMap();
config.put("key", "value");
config.put("mode", SolrConfig.Mode.CLOUD.toString());
final AnySeq seq = config.getSeq("seq", true);
seq.add("seqValue");
return config;
}
public void test_SolrConfig() {
final SolrConfig solrConfig = new SolrConfig(getSampleConfig());
final AnyMap config = solrConfig.getConfigMap();
assertEquals("value", config.getStringValue("key"));
assertEquals("seqValue", config.getSeq("seq").get(0).asValue().asString());
assertEquals(SolrConfig.Mode.CLOUD.toString(), solrConfig.getMode().toString());
}
public void test_SolrConfigModeException() {
final SolrConfig solrConfig = new SolrConfig(getSampleConfig());
final AnyMap config = solrConfig.getConfigMap();
config.put("mode", "any");
try {
solrConfig.getMode();
} catch (Exception e) {
if (e instanceof IllegalArgumentException) {
return;
}
}
fail();
}
public void test_SolrConfigMode() {
final SolrConfig solrConfig = new SolrConfig(DataFactory.DEFAULT.createAnyMap());
try {
solrConfig.getMode();
} catch (final Exception e) {
if (e instanceof NullArgumentException) {
return;
}
}
fail();
}
public void test_getIdField() {
final SolrConfig solrConfig = new SolrConfig(getSampleConfig());
final AnyMap config = solrConfig.getConfigMap();
final AnyMap idFields = config.getMap(SolrConfig.ID_FIELDS, true);
final String index = "index";
final String id = "_recordid";
idFields.put(index, id);
assertEquals(id, solrConfig.getIdField(index));
}
public void test_getIdFieldDefault() {
final SolrConfig solrConfig = new SolrConfig(getSampleConfig());
final String index = "index";
assertEquals(SolrConfig.ID_FIELD_DEFAULT, solrConfig.getIdField(index));
}
public void test_getRestUri() {
final String uri = "http://localhost:8983/solr";
final SolrConfig solrConfig = new SolrConfig(getSampleConfig());
final AnyMap config = solrConfig.getConfigMap();
config.put(SolrConfig.REST_URI, uri);
assertEquals(uri, solrConfig.getRestUri());
}
public void test_getRestUriBlank() {
final SolrConfig solrConfig = new SolrConfig(getSampleConfig());
try {
solrConfig.getRestUri();
} catch (Exception e) {
if (e instanceof NullArgumentException) {
return;
}
}
fail();
}
public void test_isFetchFacetFieldType() {
final SolrConfig solrConfig = new SolrConfig(getSampleConfig());
final AnyMap config = solrConfig.getConfigMap();
config.put(SolrConfig.FETCH_FACET_FIELD_TYPE, true);
assertTrue(solrConfig.isFetchFacetFieldType());
}
public void test_isFetchFacetFieldTypeNull() {
final SolrConfig solrConfig = new SolrConfig(getSampleConfig());
assertFalse(solrConfig.isFetchFacetFieldType());
}
public void test_getLoadBalancedSolrServerServerUrls() {
final SolrConfig solrConfig = new SolrConfig(getSampleConfig());
final AnyMap config = solrConfig.getConfigMap();
final AnySeq serverUrls = config.getSeq(SolrConfig.SERVER_URLS, true);
final String server1 = "http://localhost:8983/solr";
final String server2 = "https://localhost:9983/solr";
final String server3 = "egal";
serverUrls.add(server1);
serverUrls.add(server2);
serverUrls.add(server3);
assertEquals(server1, solrConfig.getLoadBalancedSolrServerServerUrls()[0]);
assertEquals(server2, solrConfig.getLoadBalancedSolrServerServerUrls()[1]);
assertEquals(server3, solrConfig.getLoadBalancedSolrServerServerUrls()[2]);
}
public void test_getLoadBalancedSolrServerServerUrlsNull() {
final SolrConfig solrConfig = new SolrConfig(getSampleConfig());
try {
solrConfig.getLoadBalancedSolrServerServerUrls();
} catch (Exception e) {
if (e instanceof NullArgumentException) {
return;
}
}
fail();
}
public void test_ZkHost() {
final AnyMap config = DataFactory.DEFAULT.createAnyMap();
final String testValue = "zkHost.localhost";
config.put(SolrConfig.ZK_HOST, testValue);
final SolrConfig solrConfig = new SolrConfig(config);
assertEquals(testValue, solrConfig.getCloudSolrServerZkHost());
}
public void test_ZkHostNull() {
final AnyMap config = DataFactory.DEFAULT.createAnyMap();
final SolrConfig solrConfig = new SolrConfig(config);
try {
solrConfig.getCloudSolrServerZkHost();
} catch (final Exception e) {
if (e instanceof NullArgumentException) {
return;
}
}
fail();
}
// Cloud Config
public void test_getUpdatesToLeaders() {
final AnyMap config = DataFactory.DEFAULT.createAnyMap();
final boolean testValue = false;
config.put(SolrConfig.UPDATES_TO_LEADERS, testValue);
final SolrConfig solrConfig = new SolrConfig(config);
assertEquals(testValue, solrConfig.getCloudSolrServerUpdatesToLeaders());
}
public void test_getUpdatesToLeadersDefault() {
final AnyMap config = DataFactory.DEFAULT.createAnyMap();
final SolrConfig solrConfig = new SolrConfig(config);
assertEquals(SolrConfig.UPDATES_TO_LEADERS_DEFAULT, solrConfig.getCloudSolrServerUpdatesToLeaders());
}
// Embedded Config
public void test_getSolrHome() {
final AnyMap config = DataFactory.DEFAULT.createAnyMap();
final String testValue = "localhost";
config.put(SolrConfig.SOLR_HOME, testValue);
final SolrConfig solrConfig = new SolrConfig(config);
assertEquals(testValue, solrConfig.getEmbeddedSolrServerSolrHome());
}
public void test_getSolrHomeNull() {
try {
new SolrConfig(DataFactory.DEFAULT.createAnyMap()).getEmbeddedSolrServerSolrHome();
} catch (final Exception e) {
if (e instanceof NullArgumentException) {
return;
}
}
fail();
}
// SolrConfig
public void test_getBaseUrl() {
final AnyMap config = DataFactory.DEFAULT.createAnyMap();
final String testValue = "localhost";
config.put(SolrConfig.BASE_URL, testValue);
final SolrConfig solrConfig = new SolrConfig(config);
assertEquals(testValue, solrConfig.getHttpSolrServerBaseUrl());
}
public void test_getBaseUrlNull() {
try {
new SolrConfig(DataFactory.DEFAULT.createAnyMap()).getHttpSolrServerBaseUrl();
} catch (final Exception e) {
if (e instanceof NullArgumentException) {
return;
}
}
}
}