package gnu.testlet.java.io;
import java.io.*;
import gnu.testlet.*;
public class ByteArrayOutputStreamTest implements Testlet {
public int getExpectedPass() { return 30; }
public int getExpectedFail() { return 0; }
public int getExpectedKnownFail() { return 0; }
public void test(TestHarness th) {
ByteArrayOutputStream s = new ByteArrayOutputStream();
th.check(s.size() == 0);
th.check(s.toString().equals(""));
th.check(s.toByteArray().length == 0);
s.write(48);
th.check(s.size() == 1);
th.check(s.toString().equals("0"));
th.check(s.toByteArray().length == 1);
th.check(s.toByteArray()[0] == 48);
s.write("_test_".getBytes(), 1, 4);
th.check(s.size() == 5);
th.check(s.toString().equals("0test"));
th.check(s.toByteArray().length == 5);
th.check(s.toByteArray()[4] == 116);
s.reset();
//12
th.check(s.size() == 0);
th.check(s.toString().equals(""));
th.check(s.toByteArray().length == 0);
s.write(645);
th.check(s.size() == 1);
th.check(s.toByteArray().length == 1);
th.check(s.toByteArray()[0] == -123);
s.write(-129);
th.check(s.size() == 2);
th.check(s.toByteArray().length == 2);
th.check(s.toByteArray()[1] == 127);
try {
s.flush();
th.check(true);
s.close();
th.check(true);
} catch (IOException e) {
e.printStackTrace();
th.check(false);
}
th.check(s.size() == 2);
th.check(s.toByteArray().length == 2);
s = new ByteArrayOutputStream(3);
//26
th.check(s.size(), 0);
th.check(s.toString(), "");
th.check(s.toByteArray().length, 0);
byte[] bb = "ściółka冷蔵庫".getBytes();
for (int i = 0; i < bb.length; i++) {
s.write(bb[i]);
}
th.check(s.size(), 19);
th.check(s.toString(), "ściółka冷蔵庫");
try {
new ByteArrayOutputStream(-3);
th.check(false);
} catch (IllegalArgumentException e) {
th.check(true);
}
}
}