Package org.jacorb.test.bugs.bug380

Source Code of org.jacorb.test.bugs.bug380.BugJac380Test

/*
*        JacORB  - a free Java ORB
*
*   Copyright (C) 1997-2006 The JacORB project.
*
*   This library is free software; you can redistribute it and/or
*   modify it under the terms of the GNU Library General Public
*   License as published by the Free Software Foundation; either
*   version 2 of the License, or (at your option) any later version.
*
*   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
*   Library General Public License for more details.
*
*   You should have received a copy of the GNU Library General Public
*   License along with this library; if not, write to the Free
*   Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/

package org.jacorb.test.bugs.bug380;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Properties;

import org.jacorb.orb.Delegate;
import org.jacorb.orb.ParsedIOR;
import org.jacorb.orb.util.PrintIOR;
import org.jacorb.test.BasicServerHelper;
import org.jacorb.test.common.ORBSetup;
import org.jacorb.test.common.ORBTestCase;
import org.jacorb.test.common.TestUtils;
import org.omg.CORBA.Policy;
import org.omg.CORBA.portable.ObjectImpl;
import org.omg.PortableServer.IdAssignmentPolicyValue;
import org.omg.PortableServer.POA;
import org.omg.PortableServer.POAPackage.AdapterAlreadyExists;
import org.omg.PortableServer.POAPackage.InvalidPolicy;
import org.omg.PortableServer.POAPackage.WrongPolicy;

/**
* @author Alphonse Bendt
* @version $Id$
*/
public class BugJac380Test extends ORBTestCase
{
    public void testSetIORProxyHostToIP() throws Exception
    {
        Properties props = new Properties();
        props.setProperty("jacorb.ior_proxy_host", "192.168.1.1");
        final String profileDetails = getProfileDetails(props);
        assertTrue(profileDetails, profileDetails.indexOf("192.168.1.1") >= 0);
    }

    public void testSetIORProxy_DNSEnabled() throws Exception
    {
        Properties props = new Properties();
        props.setProperty("jacorb.ior_proxy_host", "localhost");
        props.setProperty("jacorb.dns.enable", "on");
        final String profileDetails = getProfileDetails(props);
       
        // Really this should be returning "localhost" in the IOR but Windows appears
        // not to do that and always returns "127.0.0.1".
        assertTrue(profileDetails,
            (TestUtils.isWindows() ? profileDetails.indexOf("127.0.0.1") >= 0 : profileDetails.indexOf("localhost") >= 0));
    }

    public void testSetIORProxy_DNSDisabled() throws Exception
    {
        Properties props = new Properties();
        props.setProperty("jacorb.ior_proxy_host", "localhost");
        props.setProperty("jacorb.dns.enable", "off");
        final String profileDetails = getProfileDetails(props);
        assertTrue(profileDetails, profileDetails.indexOf("127.0.0.1") >= 0);
    }

    /**
     * create a reference and return its details as string printed using dior.
     */
    private String getProfileDetails(Properties props) throws Exception, InvalidPolicy, AdapterAlreadyExists, WrongPolicy
    {
        ORBSetup setup = new ORBSetup(this, props);
        try
        {
            setup.setUp();

            POA rootPOA = setup.getRootPOA();
            POA testPOA = rootPOA.create_POA("MyPOA", rootPOA.the_POAManager(), new Policy[] {rootPOA.create_id_assignment_policy(IdAssignmentPolicyValue.USER_ID)});
            byte[] key = new byte[] {1, 2, 3, 4};
            org.omg.CORBA.Object object = testPOA.create_reference_with_id(key, BasicServerHelper.id());

            ObjectImpl objectImpl = (ObjectImpl) object;
            Delegate delegate = (Delegate) objectImpl._get_delegate();

            ParsedIOR parsedIOR = delegate.getParsedIOR();

            StringWriter out = new StringWriter();
            final PrintWriter printWriter = new PrintWriter(out);
            PrintIOR.printIOR(parsedIOR, printWriter);
            printWriter.close();

            return out.toString();
        }
        finally
        {
            setup.tearDown();
        }
    }
}
TOP

Related Classes of org.jacorb.test.bugs.bug380.BugJac380Test

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.