summaryrefslogtreecommitdiffstats
path: root/simple/simple-common/src/test/java/org/simpleframework/common/buffer/queue/BufferQueueTest.java
blob: 22eaba7ccd95c22d6f1ba70e4f320c5e42c04a21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package org.simpleframework.common.buffer.queue;

import java.io.InputStream;

import junit.framework.TestCase;

public class BufferQueueTest extends TestCase {
   
   public void testBufferQueue() throws Exception {
      final ByteQueue queue = new ArrayByteQueue(1024 * 1000);
      final BufferQueue buffer = new BufferQueue(queue);
      
      Thread reader = new Thread(new Runnable() {
         public void run() {
            try {
               InputStream source = buffer.open();
               for(int i = 0; i < 1000; i++) {
                  int octet = source.read();
                  System.err.write(octet);
                  System.err.flush();
               }
            }catch(Exception e) {
               e.printStackTrace();
            }
         }
      });
      Thread writer = new Thread(new Runnable() {
         public void run() {
            try {
               for(int i = 0; i < 1000; i++) {                 
                  buffer.append(("Test message: "+i+"\n").getBytes());                  
               }
            }catch(Exception e) {
               e.printStackTrace();
            }
         }
      });
      reader.start();
      writer.start();
      reader.join();
      writer.join();
   }

}