package org.example;
import javax.naming.*;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import static org.junit.Assert.*;
public class HelloBeanTest {
private static InitialContext ic;
private Hello hello;
private Wrapper wrapper;
public HelloBeanTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
props.put(Context.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interfaces");
props.put(Context.PROVIDER_URL, "localhost:1099");
ic = new InitialContext(props);
}
@AfterClass
public static void tearDownClass() throws Exception {
ic.close();
}
@Before
public void setUp() {
try {
hello = (Hello)ic.lookup("HelloBean/remote");
wrapper = (Wrapper)ic.lookup("WrapperBean/remote");
} catch (NamingException e) {
e.printStackTrace();
}
}
@After
public void tearDown() {
}
@Test
public void testSayHello() {
// hello.sayHello("john");
wrapper.wrap("john");
assertTrue(true);
}
@Ignore
public void testSayHello_String() {
ExecutorService executor1 = Executors.newSingleThreadExecutor();
ExecutorService executor2 = Executors.newSingleThreadExecutor();
for (int i = 0; i < 1; i ++) {
executor1.execute(new HelloTask("root"));
executor2.execute(new HelloTask("john"));
}
executor1.shutdown();
executor2.shutdown();
try {
executor1.awaitTermination(30, TimeUnit.SECONDS);
executor2.awaitTermination(30, TimeUnit.SECONDS);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
assertTrue(true);
}
class HelloTask implements Runnable {
private String user;
public HelloTask(String user) {
this.user = user;
}
public void run() {
hello.sayHello(user);
}
}
}