package org.jfox.ejb.examples.meta;
import java.io.ObjectOutputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.FileInputStream;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.ejb.EJBMetaData;
import javax.ejb.HomeHandle;
import javax.ejb.Handle;
import junit.framework.TestCase;
public class HelloTest extends TestCase {
private static HelloHome home = null;
private static Hello hello = null;
static {
try {
Context ctx = new InitialContext();
Object obj = ctx.lookup("/" + "org/jfox/ejb/examples/meta/HelloEJB");
home = (HelloHome)javax.rmi.PortableRemoteObject.narrow(obj,HelloHome.class);
hello = home.create();
}
catch(Exception e){
e.printStackTrace();
}
}
protected void setUp() throws Exception {
}
public void testToString() {
System.out.println(home.toString());
System.out.println(hello);
}
public void testGetEJBMetaData() {
try {
System.out.print("test getEJBMetaData()...");
EJBMetaData meta = home.getEJBMetaData();
System.out.println("EJBMetaData: " + meta);
}
catch(Exception e){
e.printStackTrace();
fail(e.toString());
}
}
public void testGetVoice() {
try {
System.out.print("test method getVoice()...");
assertTrue(hello.getVoice().equals("Hello,World"));
System.out.println("OK!");
}
catch(Exception e){
e.printStackTrace();
fail(e.toString());
}
}
public void testHomeHandle() {
try {
System.out.print("test HomeHandle serialize & deserialize...");
HomeHandle homeHandle = home.getHomeHandle();
writeHandle(homeHandle);
homeHandle = (HomeHandle)readHandle();
home = (HelloHome)homeHandle.getEJBHome();
hello = home.create();
assertTrue(hello.getVoice().equals("Hello,World"));
System.out.println("OK!");
}
catch(Exception e){
e.printStackTrace();
fail(e.toString());
}
}
public void testHandle() {
try {
System.out.print("test Handle serialize & deserialize...");
Handle handle = hello.getHandle();
writeHandle(handle);
handle = (Handle)readHandle();
hello = (Hello)handle.getEJBObject();
assertTrue(hello.getVoice().equals("Hello,World"));
System.out.println("OK!");
}
catch(Exception e){
e.printStackTrace();
fail(e.toString());
}
}
public void testGetWorld() {
try {
System.out.print("test getCount()...");
int count = hello.getCount();
System.out.println(count + " OK!");
}
catch(Exception e){
e.printStackTrace();
fail(e.toString());
}
}
private void writeHandle(Object obj) throws Exception {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(this.getClass() + ".ser"));
out.writeObject(obj);
out.close();
}
private Object readHandle() throws Exception {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(this.getClass() + ".ser"));
Object handle = in.readObject();
in.close();
return handle;
}
public static void main(String[] args) {
junit.textui.TestRunner.run(HelloTest.class);
}
}