001: //========================================================================
002: //$Id: BufferTest.java,v 1.2 2005/11/05 08:32:42 gregwilkins Exp $
003: //Copyright 2004-2005 Mort Bay Consulting Pty. Ltd.
004: //------------------------------------------------------------------------
005: //Licensed under the Apache License, Version 2.0 (the "License");
006: //you may not use this file except in compliance with the License.
007: //You may obtain a copy of the License at
008: //http://www.apache.org/licenses/LICENSE-2.0
009: //Unless required by applicable law or agreed to in writing, software
010: //distributed under the License is distributed on an "AS IS" BASIS,
011: //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012: //See the License for the specific language governing permissions and
013: //limitations under the License.
014: //========================================================================
015:
016: package org.mortbay.io;
017:
018: import junit.framework.TestCase;
019:
020: import org.mortbay.io.nio.NIOBuffer;
021: import org.mortbay.util.StringUtil;
022:
023: /**
024: * @author gregw
025: *
026: * To change the template for this generated type comment go to
027: * Window - Preferences - Java - Code Generation - Code and Comments
028: */
029: public class BufferTest extends TestCase {
030: Buffer[] buffer;
031:
032: public static void main(String[] args) {
033: }
034:
035: /*
036: * @see TestCase#setUp()
037: */
038: protected void setUp() throws Exception {
039: super .setUp();
040: buffer = new Buffer[] { new ByteArrayBuffer(10),
041: new NIOBuffer(10, false), new NIOBuffer(10, true) };
042: }
043:
044: /*
045: * @see TestCase#tearDown()
046: */
047: protected void tearDown() throws Exception {
048: super .tearDown();
049: }
050:
051: /*
052: *
053: */
054: public void testBuffer() throws Exception {
055: for (int i = 0; i < buffer.length; i++) {
056: String t = "t" + i;
057: Buffer b = buffer[i];
058:
059: assertEquals(t, 0, b.length());
060: assertEquals(t, 10, b.capacity());
061: assertEquals(t, 10, b.space());
062:
063: b.put((byte) 0);
064: b.put((byte) 1);
065: b.put((byte) 2);
066: assertEquals(t, 3, b.length());
067: assertEquals(t, 10, b.capacity());
068: assertEquals(t, 7, b.space());
069:
070: assertEquals(t, 0, b.get());
071: assertEquals(t, 1, b.get());
072: assertEquals(t, 1, b.length());
073: assertEquals(t, 10, b.capacity());
074: assertEquals(t, 7, b.space());
075: b.compact();
076: assertEquals(t, 9, b.space());
077:
078: byte[] ba = { (byte) -1, (byte) 3, (byte) 4, (byte) 5,
079: (byte) 6 };
080:
081: b.put(ba, 1, 3);
082: assertEquals(t, 4, b.length());
083: assertEquals(t, 6, b.space());
084:
085: byte[] bg = new byte[4];
086: b.get(bg, 1, 2);
087: assertEquals(t, 2, bg[1]);
088: assertEquals(t, 3, bg[2]);
089:
090: }
091: }
092:
093: public void testHash() throws Exception {
094: Buffer[] b = { new ByteArrayBuffer("Test1234 "),
095: new ByteArrayBuffer("tEST1234 "),
096: new NIOBuffer(4096, true), };
097: b[2].put("TeSt1234 ".getBytes(StringUtil.__UTF8));
098:
099: for (int i = 0; i < b.length; i++)
100: assertEquals("t" + i, b[0].hashCode(), b[i].hashCode());
101: }
102:
103: public void testInsensitive() {
104: Buffer cs0 = new ByteArrayBuffer("Test 1234");
105: Buffer cs1 = new ByteArrayBuffer("Test 1234");
106: Buffer cs2 = new ByteArrayBuffer("tEst 1234");
107: Buffer cs3 = new ByteArrayBuffer("Other ");
108: Buffer ci0 = new ByteArrayBuffer.CaseInsensitive("Test 1234");
109: Buffer ci1 = new ByteArrayBuffer.CaseInsensitive("Test 1234");
110: Buffer ci2 = new ByteArrayBuffer.CaseInsensitive("tEst 1234");
111: Buffer ci3 = new ByteArrayBuffer.CaseInsensitive("oTher ");
112:
113: assertTrue(cs0.equals(cs0));
114: assertTrue(cs0.equals(cs1));
115: assertTrue(!cs0.equals(cs2));
116: assertTrue(!cs0.equals(cs3));
117: assertTrue(cs0.equals(ci0));
118: assertTrue(cs0.equals(ci1));
119: assertTrue(cs0.equals(ci2));
120: assertTrue(!cs0.equals(ci3));
121:
122: assertTrue(cs1.equals(cs0));
123: assertTrue(cs1.equals(cs1));
124: assertTrue(!cs1.equals(cs2));
125: assertTrue(!cs1.equals(cs3));
126: assertTrue(cs1.equals(ci0));
127: assertTrue(cs1.equals(ci1));
128: assertTrue(cs1.equals(ci2));
129: assertTrue(!cs1.equals(ci3));
130:
131: assertTrue(!cs2.equals(cs0));
132: assertTrue(!cs2.equals(cs1));
133: assertTrue(cs2.equals(cs2));
134: assertTrue(!cs2.equals(cs3));
135: assertTrue(cs2.equals(ci0));
136: assertTrue(cs2.equals(ci1));
137: assertTrue(cs2.equals(ci2));
138: assertTrue(!cs2.equals(ci3));
139:
140: assertTrue(!cs3.equals(cs0));
141: assertTrue(!cs3.equals(cs1));
142: assertTrue(!cs3.equals(cs2));
143: assertTrue(cs3.equals(cs3));
144: assertTrue(!cs3.equals(ci0));
145: assertTrue(!cs3.equals(ci1));
146: assertTrue(!cs3.equals(ci2));
147: assertTrue(cs3.equals(ci3));
148:
149: assertTrue(ci0.equals(cs0));
150: assertTrue(ci0.equals(cs1));
151: assertTrue(ci0.equals(cs2));
152: assertTrue(!ci0.equals(cs3));
153: assertTrue(ci0.equals(ci0));
154: assertTrue(ci0.equals(ci1));
155: assertTrue(ci0.equals(ci2));
156: assertTrue(!ci0.equals(ci3));
157:
158: assertTrue(ci1.equals(cs0));
159: assertTrue(ci1.equals(cs1));
160: assertTrue(ci1.equals(cs2));
161: assertTrue(!ci1.equals(cs3));
162: assertTrue(ci1.equals(ci0));
163: assertTrue(ci1.equals(ci1));
164: assertTrue(ci1.equals(ci2));
165: assertTrue(!ci1.equals(ci3));
166:
167: assertTrue(ci2.equals(cs0));
168: assertTrue(ci2.equals(cs1));
169: assertTrue(ci2.equals(cs2));
170: assertTrue(!ci2.equals(cs3));
171: assertTrue(ci2.equals(ci0));
172: assertTrue(ci2.equals(ci1));
173: assertTrue(ci2.equals(ci2));
174: assertTrue(!ci2.equals(ci3));
175:
176: assertTrue(!ci3.equals(cs0));
177: assertTrue(!ci3.equals(cs1));
178: assertTrue(!ci3.equals(cs2));
179: assertTrue(ci3.equals(cs3));
180: assertTrue(!ci3.equals(ci0));
181: assertTrue(!ci3.equals(ci1));
182: assertTrue(!ci3.equals(ci2));
183: assertTrue(ci3.equals(ci3));
184:
185: }
186:
187: public void testView() {
188: Buffer b = new ByteArrayBuffer(" Test 1234 ".getBytes());
189: b.setGetIndex(b.getIndex() + 1);
190: b.setPutIndex(b.putIndex() - 1);
191: View v0 = new View(b);
192: View v1 = new View(b);
193: View v2 = new View(v0);
194:
195: String s = b.toString();
196: String s0 = v0.toString();
197: String s1 = v1.toString();
198: String s2 = v2.toString();
199: String s3 = v0.toString();
200: String s4 = v1.toString();
201: String s5 = v2.toString();
202:
203: assertEquals(s, s0);
204: assertEquals(s0, s1);
205: assertEquals(s1, s2);
206: assertEquals(s2, s3);
207: assertEquals(s3, s4);
208: assertEquals(s4, s5);
209:
210: }
211:
212: }
|