001/*
002 * $Id: SocketChannelTest.java 4093 2012-08-12 10:51:06Z kredel $
003 */
004
005// from package edu.unima.ky.parallel;
006package edu.jas.util;
007
008import java.io.IOException;
009
010import junit.framework.Test;
011import junit.framework.TestCase;
012import junit.framework.TestSuite;
013
014
015import org.apache.log4j.BasicConfigurator;
016
017/**
018 * SocketChannel tests with JUnit.
019 * Refactored for java.util.concurrent.
020 * @author Akitoshi Yoshida
021 * @author Heinz Kredel.
022 */
023
024public class SocketChannelTest extends TestCase {
025
026   public static void main (String[] args) {
027       BasicConfigurator.configure();
028       junit.textui.TestRunner.run( suite() );
029   }
030
031   public SocketChannelTest(String name) {
032          super(name);
033   }
034
035   public static Test suite() {
036     TestSuite suite= new TestSuite(SocketChannelTest.class);
037     return suite;
038   }
039
040   private ChannelFactory cf;
041   private SocketChannel sc1;
042   private SocketChannel sc2;
043   private String host;
044   private int port;
045
046   protected void setUp() {
047       host = "localhost";
048       port = 4711;
049       cf = new ChannelFactory(port);       
050       cf.init();
051       try {
052        sc1 = cf.getChannel(host,port);
053        sc2 = cf.getChannel();
054       } catch(IOException e) {
055           fail("IOException"+e);
056       } catch (InterruptedException e) {
057        fail("InterruptedException"+e);
058       }
059   }
060
061   protected void tearDown() {
062       cf.terminate();
063       sc1.close();
064       sc2.close();
065       try {
066           Thread.sleep(1);
067       } catch(InterruptedException e) {
068           fail("InterruptedException"+e);
069       }
070   }
071
072   public void testSocketChannel0() {
073       // test setUp() and tearDown()
074   }
075
076   public void testSocketChannel1() {
077       Object o = Integer.valueOf(0);
078       try {
079           sc1.send(o);
080           assertEquals(o,sc2.receive());
081       } catch(IOException e) {
082           fail("Exception"+e);
083       } catch(ClassNotFoundException e) {
084           fail("Exception"+e);
085       }
086   }
087
088   public void testSocketChannel2() {
089       Object o = Integer.valueOf(0);
090       try {
091           sc1.send(o);
092           sc2.send(o);
093           assertEquals(o,sc1.receive());
094           assertEquals(o,sc2.receive());
095       } catch(IOException e) {
096           fail("Exception"+e);
097       } catch(ClassNotFoundException e) {
098           fail("Exception"+e);
099       }
100   }
101
102   public void testSocketChannel3() {
103       int n = 10;
104       Object o;
105       try {
106           for (int i = 0; i < n; i++) {
107               o = Integer.valueOf(i);
108               sc1.send(o);
109           }
110           for (int i = 0; i < n; i++) {
111               o = Integer.valueOf(i);
112               assertEquals(o,sc2.receive());
113           }
114       } catch(IOException e) {
115           fail("Exception"+e);
116       } catch(ClassNotFoundException e) {
117           fail("Exception"+e);
118       }
119   }
120
121}
122