Use try-with-resources

This commit is contained in:
Gary Gregory 2023-02-05 17:23:19 -05:00
parent c7903f3105
commit a824636506
1 changed files with 38 additions and 36 deletions

View File

@ -1600,59 +1600,61 @@ public class StrBuilderTest extends AbstractLangTest {
reader.close();
assertTrue(reader.ready());
final Reader r = sb.asReader();
final char[] arr = new char[3];
assertThrows(IndexOutOfBoundsException.class, () -> r.read(arr, -1, 0));
assertThrows(IndexOutOfBoundsException.class, () -> r.read(arr, 0, -1));
assertThrows(IndexOutOfBoundsException.class, () -> r.read(arr, 100, 1));
assertThrows(IndexOutOfBoundsException.class, () -> r.read(arr, 0, 100));
assertThrows(IndexOutOfBoundsException.class, () -> r.read(arr, Integer.MAX_VALUE, Integer.MAX_VALUE));
try (Reader r = sb.asReader()) {
final char[] arr = new char[3];
assertThrows(IndexOutOfBoundsException.class, () -> r.read(arr, -1, 0));
assertThrows(IndexOutOfBoundsException.class, () -> r.read(arr, 0, -1));
assertThrows(IndexOutOfBoundsException.class, () -> r.read(arr, 100, 1));
assertThrows(IndexOutOfBoundsException.class, () -> r.read(arr, 0, 100));
assertThrows(IndexOutOfBoundsException.class, () -> r.read(arr, Integer.MAX_VALUE, Integer.MAX_VALUE));
assertEquals(0, r.read(arr, 0, 0));
assertEquals(0, arr[0]);
assertEquals(0, arr[1]);
assertEquals(0, arr[2]);
assertEquals(0, r.read(arr, 0, 0));
assertEquals(0, arr[0]);
assertEquals(0, arr[1]);
assertEquals(0, arr[2]);
r.skip(9);
assertEquals(-1, r.read(arr, 0, 1));
r.skip(9);
assertEquals(-1, r.read(arr, 0, 1));
r.reset();
array = new char[30];
assertEquals(9, r.read(array, 0, 30));
r.reset();
array = new char[30];
assertEquals(9, r.read(array, 0, 30));
}
}
@Test
public void testAsWriter() throws Exception {
final StrBuilder sb = new StrBuilder("base");
final Writer writer = sb.asWriter();
try (Writer writer = sb.asWriter()) {
writer.write('l');
assertEquals("basel", sb.toString());
writer.write('l');
assertEquals("basel", sb.toString());
writer.write(new char[] {'i', 'n'});
assertEquals("baselin", sb.toString());
writer.write(new char[] { 'i', 'n' });
assertEquals("baselin", sb.toString());
writer.write(new char[] {'n', 'e', 'r'}, 1, 2);
assertEquals("baseliner", sb.toString());
writer.write(new char[] { 'n', 'e', 'r' }, 1, 2);
assertEquals("baseliner", sb.toString());
writer.write(" rout");
assertEquals("baseliner rout", sb.toString());
writer.write(" rout");
assertEquals("baseliner rout", sb.toString());
writer.write("ping that server", 1, 3);
assertEquals("baseliner routing", sb.toString());
writer.write("ping that server", 1, 3);
assertEquals("baseliner routing", sb.toString());
writer.flush(); // no effect
assertEquals("baseliner routing", sb.toString());
writer.flush(); // no effect
assertEquals("baseliner routing", sb.toString());
writer.close(); // no effect
assertEquals("baseliner routing", sb.toString());
writer.close(); // no effect
assertEquals("baseliner routing", sb.toString());
writer.write(" hi"); // works after close
assertEquals("baseliner routing hi", sb.toString());
writer.write(" hi"); // works after close
assertEquals("baseliner routing hi", sb.toString());
sb.setLength(4); // mix and match
writer.write('d');
assertEquals("based", sb.toString());
sb.setLength(4); // mix and match
writer.write('d');
assertEquals("based", sb.toString());
}
}
@Test