public void testSubstring() { client.split(store, new StringBuffer(testAIn), 3); StringBuffer sb = new StringBuffer(); for (int i = 0; i < 2; i++) { int L = testAOut[i].length(); sb.setLength(0); store.getPart(sb, i); assertEquals("i=" + i, testAOut[i], sb.toString()); assertEquals("i=" + i, testAOut[i].length(), store.getPartLen(i)); sb.setLength(0); store.getPart(sb, i, 1, -1); assertEquals("i=" + i, testAOut[i].substring(1, L - 1), sb.toString()); sb.setLength(0); store.getPart(sb, i, -3, 0); assertEquals(testAOut[i].substring(L - 3, L), sb.toString()); sb.setLength(0); store.getPart(sb, i, 2, 2); assertEquals("", sb.toString()); sb.setLength(0); store.getPart(sb, i, 2, 3); assertEquals(testAOut[i].substring(2, 3), sb.toString()); // test left index too small sb.setLength(0); store.getPart(sb, i, -100, 0); assertEquals(testAOut[i], sb.toString()); // Exception e = null; // try { // store.getPart(sb, i, -100, 0); // System.out.println("*************"+sb); // } catch( Exception _e) { // e = _e; // } // assertTrue(e instanceof StringIndexOutOfBoundsException); // test left index much too large sb.setLength(0); store.getPart(sb, i, 10000, 0); assertEquals("", sb.toString()); // e = null; // try { // store.getPart(sb, i, 10000, 0); // } catch( Exception _e) { // e = _e; // } // assertTrue(e instanceof StringIndexOutOfBoundsException); // test right index too small sb.setLength(0); store.getPart(sb, i, 0, -10000); assertEquals("", sb.toString()); // e = null; // try { // store.getPart(sb, i, 0, -10000); // } catch( Exception _e) { // e = _e; // } // assertTrue(e instanceof StringIndexOutOfBoundsException); // test right index far too large sb.setLength(0); store.getPart(sb, i, 0, 10000); assertEquals(testAOut[i], sb.toString()); // e = null; // try { // store.getPart(sb, i, 0, 10000); // } catch( Exception _e) { // e = _e; // } // assertTrue(e instanceof StringIndexOutOfBoundsException); // out of range part should return empty string sb.setLength(0); store.getPart(sb, 299, 0, 10000); assertEquals("", sb.toString()); // e = null; // try { // store.getPart(sb, 1000, 0, 1); // } catch( Exception _e) { // e = _e; // } // assertTrue(e instanceof ArrayIndexOutOfBoundsException); // yet another one, this time in getPartLen assertEquals(0, store.getPartLen(1000)); // e = null; // try { // store.getPartLen(1000); // } catch( Exception _e) { // e = _e; // } // assertTrue(e instanceof ArrayIndexOutOfBoundsException); } }