Package test.rmi

Source Code of test.rmi.ClientMain

/**
*
* 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 test.rmi;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.ObjectInputStream;
import java.io.Serializable;
import java.rmi.RemoteException;
import java.util.HashMap;

import javax.rmi.PortableRemoteObject;
import javax.rmi.CORBA.Stub;
import javax.rmi.CORBA.Util;

import org.omg.PortableServer.POA;
import org.omg.PortableServer.Servant;

import junit.framework.Assert;

public class ClientMain extends Assert {

  public static class Test extends Assert {
    private Sample sample;
    public Test(Sample sample) {
      this.sample = sample;
    }
   
    // Test invoking methods with primitive arguments
    public void testPrimitive() throws RemoteException {
      sample.setBoolean(true);
      assertTrue(sample.getBoolean());
      sample.setByte((byte)64);
      assertEquals((byte)64, sample.getByte());
      sample.setShort((short)128);
      assertEquals((short)128, sample.getShort());
      sample.setInt(256);
      assertEquals(256, sample.getInt());
      sample.setLong(512);
      assertEquals(512, sample.getLong())
      sample.setChar('a');
      assertEquals('a', sample.getChar());
    }
   
    // Invoke method with String argument
    public void testString() throws RemoteException {
      sample.setString("hello");
      assertEquals("hello", sample.getString());
    }
   
    public void testIntArray() throws RemoteException {
      int[] intArray = new int[] {1, 2, 3};
      sample.setIntArray(intArray);
      int[] intArray2 = sample.getIntArray();
      for(int i = 0; i < intArray.length; i++) {
        assertEquals(intArray[i], intArray2[i]);
      }     
    }
   
    public void testBasicSerializable() throws RemoteException {
      SampleSerializable ser = new SampleSerializable();
      sample.setSerializable(ser);
      SampleSerializable ser2 = (SampleSerializable) sample.getSerializable();
    }
   
    public void testRemoteAttributeOnServer() throws RemoteException {
      SampleSerializable ser = new SampleSerializable();
      ser.setRemote(sample);
      sample.setSerializable(ser);
      SampleSerializable ser2 = (SampleSerializable) sample.getSerializable();
      Sample sample2 = (Sample) PortableRemoteObject.narrow(ser2.getRemote(), Sample.class);
      assertEquals(sample, sample2);
     
    }
   
    public void testRemoteAttributeOnClient() throws RemoteException {
      SampleSerializable ser = new SampleSerializable();
      SampleRemote sampleRemote = new SampleRemoteImpl();
      ser.setRemote(sampleRemote);
      sample.setSerializable(ser);
      SampleSerializable ser2 = (SampleSerializable) sample.getSerializable();
      SampleRemote sampleRemote2 =
        (SampleRemote) PortableRemoteObject.narrow(ser2.getRemote(), SampleRemote.class);
      sampleRemote.setInt(42);
      assertEquals(42, sampleRemote2.getInt());
    }
   
    public void testComplexRemoteAttributeOnClient() throws RemoteException {
      SampleSerializable ser = new SampleSerializable();
      SampleRemoteImpl sampleRemote = new SampleRemoteImpl();
      ser.setSampleRemote(sampleRemote);
      sample.setSerializable(ser);
      SampleSerializable ser2 = (SampleSerializable) sample.getSerializable();
      SampleRemote sampleRemote2 = ser2.getSampleRemote();
      sampleRemote.setInt(42);
      assertEquals(42, sampleRemote2.getInt());
    }
   
    public void testComplexRemoteArgument() throws RemoteException {
      SampleRemoteImpl sampleRemote = new SampleRemoteImpl();
      sample.setSampleRemote(sampleRemote);
      sample.getSampleRemote();
    }
   
    public void testSerializableAttribute() throws RemoteException {
      SampleSerializable ser = new SampleSerializable();
      SampleSerializable attr = new SampleSerializable();
      ser.setSerializable(attr);
      attr.setInt(42);
      sample.setSerializable(ser);
      SampleSerializable serCopy = (SampleSerializable) sample.getSerializable();
      SampleSerializable attrCopy = (SampleSerializable) serCopy.getSerializable();
      assertEquals(attr.getInt(), attrCopy.getInt());
    }
   
    public void testSerializableSelfReference() throws RemoteException {
      SampleSerializable ser = new SampleSerializable();
      ser.setSerializableObject(ser);
      sample.setSerializable(ser);
      SampleSerializable ser2 = (SampleSerializable) sample.getSerializable();
      assertTrue(ser2 == ser2.getSerializableObject());
    }
   
    public void testRemoteObjectAttribute() throws RemoteException {
      SampleSerializable ser = new SampleSerializable();
      SampleRemoteImpl sampleRemote = new SampleRemoteImpl();
      ser.setRemoteObject(sampleRemote);
      sample.setSerializable(ser);
      SampleSerializable ser2 = (SampleSerializable) sample.getSerializable();
      SampleRemote sampleRemote2 =
        (SampleRemote) PortableRemoteObject.narrow(ser2.getRemoteObject(), SampleRemote.class);
      sampleRemote.setInt(42);
      assertEquals(42, sampleRemote2.getInt());
    }
   
    public void testCorbaAttribute(SampleCorba corbaRef) throws RemoteException {
      SampleSerializable ser = new SampleSerializable();
      ser.setCorbaObj(corbaRef);
      sample.setSerializable(ser);
      SampleSerializable ser2 = (SampleSerializable) sample.getSerializable();
      SampleCorba corbaRef2 = SampleCorbaHelper.narrow(ser2.getCorbaObj());
      corbaRef.i(42);
      assertEquals(42, corbaRef2.i());
    }
   
    public void testComplexCorbaAttribute(SampleCorba corbaRef) throws RemoteException {
      SampleSerializable ser = new SampleSerializable();
      ser.setSampleCorba(corbaRef);
      sample.setSerializable(ser);
      SampleSerializable ser2 = (SampleSerializable) sample.getSerializable();
      SampleCorba corbaRef2 = ser2.getSampleCorba();
    }
   
    public void testHashMap() throws RemoteException {
      HashMap map = new HashMap();
      String str = "hello";
      map.put(new Integer(0), str);
      map.put(new Integer(1), str);
      Integer i = new Integer(2);
      map.put(new Integer(3), i);
      map.put(new Integer(4), i);
      sample.setSerializable(map);
      HashMap map2 = (HashMap) sample.getSerializable();
      assertEquals(map, map2);     
      assertTrue(map2.get(new Integer(3)) == map2.get(new Integer(4)));
      assertTrue(map2.get(new Integer(0)) == map2.get(new Integer(1)));
    }
  }
 
  public static void main(String[] args) throws Exception {
    // Initialize ORB
    final org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(new String[0], null);
    POA rootPoa = (POA) orb.resolve_initial_references("RootPOA");
    rootPoa.the_POAManager().activate();
    System.out.println("ORB: " + orb.getClass().getName());
   
    // Bind a sample CORBA object
    SampleCorba_impl sampleCorba = new SampleCorba_impl();
    byte [] id = rootPoa.activate_object(sampleCorba);
    org.omg.CORBA.Object sampleCorbaRef = rootPoa.create_reference_with_id(id, sampleCorba._all_interfaces(rootPoa, id)[0]);

    // Get IOR to Sample on server
    BufferedReader reader = new BufferedReader(new FileReader("Sample.ref"));
    String ref = reader.readLine();
    org.omg.CORBA.Object sampleRef = orb.string_to_object(ref);
    Sample sample = (Sample) PortableRemoteObject.narrow(sampleRef, Sample.class);

    // Run RMI tests
    Test test = new Test(sample);
    test.testPrimitive();
    test.testString();
    test.testIntArray();
    test.testBasicSerializable();
    test.testRemoteObjectAttribute();
    test.testRemoteAttributeOnServer();
    test.testRemoteAttributeOnClient();
    test.testComplexRemoteAttributeOnClient();
    test.testComplexRemoteArgument();
    test.testSerializableAttribute();
    test.testSerializableSelfReference();
    test.testCorbaAttribute(SampleCorbaHelper.narrow(sampleCorbaRef));
    test.testComplexCorbaAttribute(SampleCorbaHelper.narrow(sampleCorbaRef));
    test.testHashMap();
    //myORB.destroy();
  }
}
TOP

Related Classes of test.rmi.ClientMain

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.