/*
 *    GeoTools - The Open Source Java GIS Toolkit
 *    http://geotools.org
 *
 *    (C) 2002-2008, Open Source Geospatial Foundation (OSGeo)
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License as published by the Free Software Foundation;
 *    version 2.1 of the License.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 */
package org.geotools.data.mysql;

import java.util.HashMap;
import junit.framework.TestCase;
import org.geotools.jdbc.JDBCDataStoreFactory;

/** @source $URL$ */
public class MySQLDataStoreFactoryTest extends TestCase {
    MySQLDataStoreFactory factory;

    protected void setUp() throws Exception {
        factory = new MySQLDataStoreFactory();
    }

    public void testCanProcess() throws Exception {
        HashMap params = new HashMap();
        assertFalse(factory.canProcess(params));

        params.put(JDBCDataStoreFactory.NAMESPACE.key, "http://www.geotools.org/test");
        params.put(JDBCDataStoreFactory.DATABASE.key, "geotools");
        params.put(JDBCDataStoreFactory.DBTYPE.key, "mysql");

        params.put(JDBCDataStoreFactory.HOST.key, "localhost");
        params.put(JDBCDataStoreFactory.PORT.key, "3306");
        params.put(JDBCDataStoreFactory.USER.key, "mysqluser");
        assertTrue(factory.canProcess(params));
    }
}

@@ -732,16 +732,57 @@
 estCase;
+%0A%0Aimport org.geotools.jdbc.JDBCDataStore;
 %0Aimport 
@@ -1638,10 +1638,733 @@
 ;%0A    %7D%0A
+    %0A    %0A    /**%0A     * check fix of possible NPE issue during MySQLVersion56 check (pull request #2033)%0A     * %0A     * @throws Exception%0A     */%0A    public void testNoNpeOnConnectionFailure() throws Exception %7B%0A        // create a dummy JDBC store%0A        JDBCDataStore store = new JDBCDataStore();%0A        store.setSQLDialect(new MySQLDialectBasic(store));%0A%0A        // Connection creation should fail since store does not%0A        // actually exist. Test ensures that no NPE is thrown%0A        // from final block of method%0A        try %7B%0A            factory.isMySqlVersion56(store);%0A        %7D catch (NullPointerException e) %7B%0A            fail(%22an exception occured during checking of MySQL version %22 + e);%0A        %7D%0A    %7D%0A
 %7D%0A

Add test to ensure fix of NPE (based on PR #2033)