Package org.apache.geronimo.naming.java

Source Code of org.apache.geronimo.naming.java.BasicContextTest

/**
*
* Copyright 2003-2004 The Apache Software Foundation
*
*  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 org.apache.geronimo.naming.java;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.NoSuchElementException;

import javax.naming.Binding;
import javax.naming.CompositeName;
import javax.naming.CompoundName;
import javax.naming.Context;
import javax.naming.NameClassPair;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;

/**
* Unit tests for basic ops on an {@link javax.naming.InitialContext}.
*
* @version $Rev: 355877 $ $Date: 2005-12-11 03:48:27 +0100 (Sun, 11 Dec 2005) $
*/
public class BasicContextTest extends AbstractContextTest {

    public void testInitialContext() throws NamingException {
        assertEquals("Hello", initialContext.lookup("java:comp/env/hello"));
        assertEquals("Hello", initialContext.lookup(new CompositeName("java:comp/env/hello")));
    }

    public void testLookup() throws NamingException {
        assertEquals("Hello", envContext.lookup("hello"));
        assertEquals("Hello", compContext.lookup("env/hello"));
        try {
            envContext.lookup("foo");
            fail();
        } catch (NamingException e) {
            // OK
        }
        assertEquals("Hello", envContext.lookup(new CompositeName("hello")));
        assertEquals("Hello", compContext.lookup(new CompositeName("env/hello")));
        assertEquals("Hello", envContext.lookup(new CompoundName("hello", syntax)));
        assertEquals("Hello", compContext.lookup(new CompoundName("env/hello", syntax)));

        assertEquals(envContext, envContext.lookup(""));
    }

    public void testSubContext() throws NamingException {
        assertEquals("long name", initialContext.lookup("java:comp/env/here/there/anywhere"));
        Context intermediate = (Context)initialContext.lookup("java:comp/env/here/there");
        assertNotNull(intermediate);
        assertEquals("long name", intermediate.lookup("anywhere"));
    }

    public void testSchemeLookup() throws NamingException {
//        envContext.lookup("dns:apache.org");
        assertEquals("Hello", envContext.lookup("java:comp/env/hello"));
        assertEquals("Hello", compContext.lookup("java:comp/env/hello"));
    }

    public void testLookupLink() throws NamingException {
        assertEquals("Hello", envContext.lookup("link"));
    }

    public void testComposeName() throws NamingException {
        assertEquals("org/research/user/jane", envContext.composeName("user/jane", "org/research"));
        assertEquals("research/user/jane", envContext.composeName("user/jane", "research"));
        assertEquals(new CompositeName("org/research/user/jane"), envContext.composeName(new CompositeName("user/jane"), new CompositeName("org/research")));
        assertEquals(new CompositeName("research/user/jane"), envContext.composeName(new CompositeName("user/jane"), new CompositeName("research")));
    }

    public void testList() throws NamingException {
        NamingEnumeration ne;
        Map expected;
        Map result;

        expected = new HashMap();
        for (Iterator i = envBinding.entrySet().iterator(); i.hasNext();) {
            Map.Entry entry = (Map.Entry) i.next();
            expected.put(entry.getKey(), entry.getValue().getClass().getName());
        }
        ne = envContext.list("");
        result = new HashMap();
        while (ne.hasMore()) {
            NameClassPair pair = (NameClassPair) ne.next();
            result.put(pair.getName(), pair.getClassName());
        }
        assertEquals(expected, result);

        try {
            ne.next();
            fail();
        } catch (NoSuchElementException e) {
            // ok
        }
        try {
            ne.nextElement();
            fail();
        } catch (NoSuchElementException e) {
            // ok
        }
    }

    public void testListBindings() throws NamingException {
        NamingEnumeration ne;
        ne = envContext.listBindings("");
        int count = 0;
        while (ne.hasMore()) {
            count ++;
            Binding pair = (Binding) ne.next();
            assertTrue(envBinding.containsKey(pair.getName()));
            if (! (envBinding.get(pair.getName()) instanceof ReadOnlyContext)) {
                assertEquals(pair.getObject(), envBinding.get(pair.getName()));
            }
        }
        assertEquals(envBinding.size(), count);

        try {
            ne.next();
            fail();
        } catch (NoSuchElementException e) {
            // ok
        }
        try {
            ne.nextElement();
            fail();
        } catch (NoSuchElementException e) {
            // ok
        }
    }

    public void testSpeed() throws NamingException {
        Context comp = (Context) initialContext.lookup("java:comp");

        long start = System.currentTimeMillis();
        for (int i=0; i < 1000000; i++) {
            // initialContext.lookup("java:comp/hello"); // this is sloooow due to scheme resolution
            // envContext.lookup("hello");
            comp.lookup("env/hello");
        }

        long end = System.currentTimeMillis();
        System.out.println("lookup(String) milliseconds: " + (end - start));
    }

}
TOP

Related Classes of org.apache.geronimo.naming.java.BasicContextTest

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.