| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You 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 org.apache.camel.component.cassandra; |
| |
| import com.datastax.driver.core.Cluster; |
| import com.datastax.driver.core.Session; |
| import org.cassandraunit.CQLDataLoader; |
| import org.cassandraunit.CassandraCQLUnit; |
| import org.cassandraunit.dataset.CQLDataSet; |
| import org.cassandraunit.dataset.cql.ClassPathCQLDataSet; |
| import org.cassandraunit.utils.EmbeddedCassandraServerHelper; |
| |
| import static org.apache.camel.component.cassandra.BaseCassandraTest.canTest; |
| |
| /** |
| * Util methods to manage Cassandra in Unit tests |
| */ |
| public final class CassandraUnitUtils { |
| public static final String HOST = "127.0.0.1"; |
| public static final String KEYSPACE = "camel_ks"; |
| |
| private static CassandraCQLUnit cassandraCQLUnit; |
| |
| private CassandraUnitUtils() { |
| } |
| |
| /** |
| * Create Cassandra JUnit Rule. |
| */ |
| public static CassandraCQLUnit cassandraCQLUnit() { |
| if (canTest()) { |
| if (cassandraCQLUnit == null) { |
| cassandraCQLUnit = cassandraCQLUnit("BasicDataSet.cql"); |
| } |
| } |
| return cassandraCQLUnit; |
| } |
| |
| public static CassandraCQLUnit cassandraCQLUnit(String dataSetCql) { |
| if (canTest()) { |
| return cassandraCQLUnit(cqlDataSet(dataSetCql)); |
| } else { |
| return null; |
| } |
| } |
| |
| public static CQLDataSet cqlDataSet(String dataSetCql) { |
| if (canTest()) { |
| return new ClassPathCQLDataSet(dataSetCql, KEYSPACE); |
| } else { |
| return null; |
| } |
| } |
| |
| public static void loadCQLDataSet(Session session, String dataSetCql) { |
| if (canTest()) { |
| CQLDataLoader loader = new CQLDataLoader(session); |
| loader.load(cqlDataSet(dataSetCql)); |
| } |
| } |
| |
| public static CassandraCQLUnit cassandraCQLUnit(CQLDataSet dataset) { |
| if (canTest()) { |
| return new CassandraCQLUnit(dataset, "/camel-cassandra.yaml"); |
| } else { |
| return null; |
| } |
| } |
| |
| /** |
| * Start embedded Cassandra. |
| */ |
| public static void startEmbeddedCassandra() throws Exception { |
| if (canTest()) { |
| EmbeddedCassandraServerHelper.startEmbeddedCassandra("/camel-cassandra.yaml", "target/camel-cassandra", 30000); |
| } |
| } |
| |
| /** |
| * Clean embedded Cassandra. |
| */ |
| public static void cleanEmbeddedCassandra() throws Exception { |
| if (canTest()) { |
| EmbeddedCassandraServerHelper.cleanEmbeddedCassandra(); |
| } |
| } |
| |
| public static Cluster cassandraCluster() { |
| if (canTest()) { |
| return Cluster.builder() |
| .addContactPoint(HOST) |
| .withClusterName("camel-cluster") |
| .build(); |
| } else { |
| return null; |
| } |
| } |
| } |