Package org.apache.harmony.sql.tests.javax.sql.rowset.spi

Source Code of org.apache.harmony.sql.tests.javax.sql.rowset.spi.SyncFactoryTest

/*
* 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.harmony.sql.tests.javax.sql.rowset.spi;

import java.util.Enumeration;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.rowset.spi.SyncFactory;
import javax.sql.rowset.spi.SyncFactoryException;
import javax.sql.rowset.spi.SyncProvider;

import junit.framework.TestCase;

public class SyncFactoryTest extends TestCase {

    /**
     * Test method for
     * {@link javax.sql.rowset.spi.SyncFactory#registerProvider(java.lang.String)}
     * and
     * {@link javax.sql.rowset.spi.SyncFactory#unregisterProvider(java.lang.String)}
     *
     * @throws SyncFactoryException
     */
    public void test_registerProvider_Ljava_lang_String()
            throws SyncFactoryException {
        final String proID = "org.apache.harmony.sql.tests.TestProvider";
        SyncFactory.registerProvider(proID);
        Enumeration<SyncProvider> providers = SyncFactory
                .getRegisteredProviders();
        boolean ifContains = false;
        while (providers.hasMoreElements()) {
            if (providers.nextElement().getProviderID().equals(proID)) {
                ifContains = true;
                break;
            }
        }
        assertTrue("register provider error", ifContains);
        SyncFactory.unregisterProvider(proID);
        providers = SyncFactory.getRegisteredProviders();
        ifContains = false;
        while (providers.hasMoreElements()) {
            if (providers.nextElement().getProviderID().equals(proID)) {
                ifContains = true;
                break;
            }
        }
        assertFalse("unregister provider error", ifContains);
        try {
            SyncFactory.registerProvider(null);
            fail("should throw SyncFactoryException");
        } catch (SyncFactoryException e) {
            // expected
        }
        try {
            SyncFactory.registerProvider("");
            fail("should throw SyncFactoryException");
        } catch (SyncFactoryException e) {
            // expected
        }
        try {
            SyncFactory.unregisterProvider("test");
            fail("should throw SyncFactoryException");
        } catch (SyncFactoryException e) {
            // expected
        }
        try {
            SyncFactory.unregisterProvider(null);
            fail("should throw NullPointerException");
        } catch (NullPointerException e) {
            // expected
        }

    }

    /**
     * Test method for {@link javax.sql.rowset.spi.SyncFactory#getSyncFactory()}
     */
    public void test_getSyncFactory() {
        SyncFactory fac1 = SyncFactory.getSyncFactory();
        SyncFactory fac2 = SyncFactory.getSyncFactory();
        assertSame("SyncFactory instance should be Singleton", fac1, fac2);
    }

    /**
     * Test method for
     * {@link javax.sql.rowset.spi.SyncFactory#getInstance(java.lang.String)}.
     *
     * @throws SyncFactoryException
     */
    public void test_getInstance_Ljava_lang_String()
            throws SyncFactoryException {
        Enumeration<SyncProvider> providers = SyncFactory
                .getRegisteredProviders();
        SyncProvider expected = providers.nextElement();
        String id = expected.getProviderID();
        SyncProvider provider = SyncFactory.getInstance(id);
        assertEquals("getInstance error", expected.getVersion(), provider
                .getVersion());
        provider = SyncFactory.getInstance("nonExist");// should return default
        assertNotNull(provider);
        try {
            provider = SyncFactory.getInstance(null);
            fail("should throw NullPointerException");
        } catch (NullPointerException e) {
            // expected
        }
    }

    /**
     * Test method for
     * {@link javax.sql.rowset.spi.SyncFactory#setLogger(java.util.logging.Logger)}
     * {@link javax.sql.rowset.spi.SyncFactory#getLogger()} .
     *
     * @throws SyncFactoryException
     */
    public void test_setLogger_Ljava_util_logging_Logger()
            throws SyncFactoryException {
        Logger logger = Logger.getAnonymousLogger();
        SyncFactory.setLogger(logger);
        assertEquals(logger, SyncFactory.getLogger());
        SyncFactory.setLogger(null);
        try {
            SyncFactory.getLogger();
            fail("should throw SyncFactoryException");
        } catch (SyncFactoryException e) {
            // expected
        }
    }

    /**
     * Test method for
     * {@link javax.sql.rowset.spi.SyncFactory#setLogger(java.util.logging.Logger, java.util.logging.Level)}
     *
     * @throws SyncFactoryException
     */
    public void test_setLogger_Ljava_util_logging_LoggerLjava_util_logging_Level()
            throws SyncFactoryException {
        Logger logger = Logger.getAnonymousLogger();
        Level level = Level.parse("WARNING");
        SyncFactory.setLogger(logger, level);
        Logger actual = SyncFactory.getLogger();
        assertEquals("set logger or get logger error", logger, actual);
        assertEquals("set logger error in set level", level, logger.getLevel());
        try {
            SyncFactory.setLogger(null, level);
            fail("should throw NullPointerException");
        } catch (NullPointerException e) {
            // expected
        }
        SyncFactory.setLogger(logger, null);
        assertNull(SyncFactory.getLogger().getLevel());
    }

    /**
     * Test method for
     * {@link javax.sql.rowset.spi.SyncFactory#setJNDIContext(javax.naming.Context)}
     *
     * @throws NamingException
     * @throws SyncFactoryException
     */
    public void test_setJNDIContext_Ljavax_naming_Context()
            throws NamingException, SyncFactoryException {
        try {
            SyncFactory.setJNDIContext(null);
            fail("Should throw SyncFactoryException");
        } catch (SyncFactoryException e) {
            // expected
        }
        SyncFactory.setJNDIContext(new InitialContext());
    }
}
TOP

Related Classes of org.apache.harmony.sql.tests.javax.sql.rowset.spi.SyncFactoryTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.