/* * Copyright 1999-2015 dangdang.com. *

* 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 io.shardingjdbc.orchestration.spring; import io.shardingjdbc.core.jdbc.core.datasource.ShardingDataSource; import io.shardingjdbc.core.rule.ShardingRule; import io.shardingjdbc.orchestration.spring.util.EmbedTestingServer; import io.shardingjdbc.orchestration.spring.util.FieldValueUtil; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; @ContextConfiguration(locations = "classpath:META-INF/rdb/shardingMasterSlaveNamespace.xml") public class OrchestrationShardingMasterSlaveNamespaceTest extends AbstractJUnit4SpringContextTests { @BeforeClass public static void init() { EmbedTestingServer.start(); } @Test @Ignore public void testDefaultShardingDataSource() { ShardingRule shardingRule = getShardingRule(); assertNotNull(shardingRule.getDataSourceMap().get("randomMasterSlaveDataSource")); assertNotNull(shardingRule.getDataSourceMap().get("refMasterSlaveDataSource")); assertThat(shardingRule.getDefaultDataSourceName(), is("randomMasterSlaveDataSource")); assertThat(shardingRule.getTableRules().size(), is(1)); assertThat(shardingRule.getTableRules().iterator().next().getLogicTable(), is("t_order")); } private ShardingRule getShardingRule() { ShardingDataSource shardingDataSource = this.applicationContext.getBean("defaultShardingDataSource", ShardingDataSource.class); Object shardingContext = FieldValueUtil.getFieldValue(shardingDataSource, "shardingContext", true); return (ShardingRule) FieldValueUtil.getFieldValue(shardingContext, "shardingRule"); } }