/**
* Copyright 2016 Netflix, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.netflix.dyno.contrib;
import static org.junit.Assert.assertTrue;
import java.util.Map;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import org.junit.Before;
import org.junit.Test;
import com.netflix.dyno.connectionpool.ConnectionPoolConfiguration;
public class ElasticConnectionPoolConfigurationPublisherTest {
private ConnectionPoolConfiguration config;
@Before
public void before() {
config = new ArchaiusConnectionPoolConfiguration("UnitTest")
.setLoadBalancingStrategy(ConnectionPoolConfiguration.LoadBalancingStrategy.RoundRobin)
.setMaxConnsPerHost(100);
}
@Test
public void testLibraryVersion() {
ElasticConnectionPoolConfigurationPublisher publisher =
new ElasticConnectionPoolConfigurationPublisher("ClientApp", "dyno_cluster_1", "unit-test-vip", config);
Map<String, String> versions = publisher.getLibraryVersion(this.getClass(), "dyno-core");
assertTrue(versions.size() == 1 || versions.size() == 0); // dyno-contrib depends on dyno-core
}
@Test
public void testFindVersionFindIndex() {
ElasticConnectionPoolConfigurationPublisher publisher =
new ElasticConnectionPoolConfigurationPublisher("ClientApp", "dyno_cluster_1", "unit-test-vip", config);
assertTrue(publisher.findVersionStartIndex(null) < 0);
assertTrue(publisher.findVersionStartIndex("foo") < 0);
assertTrue(publisher.findVersionStartIndex("foo-bar.jar") < 0);
assertTrue(publisher.findVersionStartIndex("foo-bar-2.3") == 8);
assertTrue(publisher.findVersionStartIndex("foo-bar-2.3.1-SNAPSHOT") == 8);
assertTrue(publisher.findVersionStartIndex("foo-bar-baz-2.3") == 12);
}
@Test(expected = IllegalArgumentException.class)
public void testCreateJsonFromConfigNullConfig() throws JSONException {
ElasticConnectionPoolConfigurationPublisher publisher =
new ElasticConnectionPoolConfigurationPublisher("ClientApp", "dyno_cluster_1", "unit-test-vip", config);
publisher.createJsonFromConfig(null);
}
@Test
public void testCreateJsonFromConfig() throws JSONException {
ElasticConnectionPoolConfigurationPublisher publisher =
new ElasticConnectionPoolConfigurationPublisher("ClientApp", "dyno_cluster_1", "unit-test-vip", config);
JSONObject json = publisher.createJsonFromConfig(config);
assertTrue(json.has("ApplicationName"));
assertTrue(json.has("DynomiteClusterName"));
assertTrue(json.has("MaxConnsPerHost"));
}
}