/*
 * Copyright 2016-2018 shardingsphere.io.
 * <p>
 * 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.
 * </p>
 */

package io.shardingsphere.shardingjdbc.orchestration.internal.util;

import io.shardingsphere.core.config.DataSourceConfiguration;
import org.junit.Test;

import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;

import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

public class DataSourceConverterTest {
    
    @Test
    public void assertGetDataSourceMap() {
        Map<String, DataSourceConfiguration> dataSourceConfigurationMap = new HashMap<>(2, 1);
        DataSourceConfiguration dataSourceConfiguration0 = mock(DataSourceConfiguration.class);
        DataSource dataSource0 = mock(DataSource.class);
        when(dataSourceConfiguration0.createDataSource()).thenReturn(dataSource0);
        dataSourceConfigurationMap.put("ds_0", dataSourceConfiguration0);
        DataSourceConfiguration dataSourceConfiguration1 = mock(DataSourceConfiguration.class);
        DataSource dataSource1 = mock(DataSource.class);
        when(dataSourceConfiguration1.createDataSource()).thenReturn(dataSource1);
        dataSourceConfigurationMap.put("ds_1", dataSourceConfiguration1);
        Map<String, DataSource> actual = DataSourceConverter.getDataSourceMap(dataSourceConfigurationMap);
        assertThat(actual.size(), is(2));
        assertThat(actual.get("ds_0"), is(dataSource0));
        assertThat(actual.get("ds_1"), is(dataSource1));
    }
    
    @Test
    public void assertGetDataSourceConfigurationMap() {
    }
}
    
@@ -744,16 +744,65 @@
 ration;%0A
+import org.apache.commons.dbcp2.BasicDataSource;%0A
 import o
@@ -872,16 +872,48 @@
 ashMap;%0A
+import java.util.LinkedHashMap;%0A
 import j
@@ -971,16 +971,62 @@
 ers.is;%0A
+import static org.junit.Assert.assertNotNull;%0A
 import s
@@ -2301,12 +2301,879 @@
     
-%7D%0A%7D%0A
     
+Map%3CString, DataSourceConfiguration%3E actual = DataSourceConverter.getDataSourceConfigurationMap(createDataSourceMap());%0A        assertThat(actual.size(), is(2));%0A        assertNotNull(actual.get(%22ds_0%22));%0A        assertNotNull(actual.get(%22ds_1%22));%0A    %7D%0A    %0A    private Map%3CString, DataSource%3E createDataSourceMap() %7B%0A        Map%3CString, DataSource%3E result = new LinkedHashMap%3C%3E(2, 1);%0A        result.put(%22ds_0%22, createDataSource(%22ds_0%22));%0A        result.put(%22ds_1%22, createDataSource(%22ds_1%22));%0A        return result;%0A    %7D%0A    %0A    private DataSource createDataSource(final String name) %7B%0A        BasicDataSource result = new BasicDataSource();%0A        result.setDriverClassName(%22com.mysql.jdbc.Driver%22);%0A        result.setUrl(%22jdbc:mysql://localhost:3306/%22 + name);%0A        result.setUsername(%22root%22);%0A        result.setPassword(%22root%22);%0A        return result;%0A    %7D%0A%7D%0A

add assertGetDataSourceConfigurationMap()