blob: 3356a854ce8da5b783b26c436e8caa7dd1f2a429 (
plain) (
blame)
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
45
46
47
|
package scala.scalajs.testsuite.javalib
import java.io._
/** A ByteArrayOutputStream that exposes various hooks for testing purposes. */
class MockByteArrayOutputStream extends ByteArrayOutputStream {
private var _flushed: Boolean = true
private var _closed: Boolean = false
var throwing: Boolean = false
def flushed: Boolean = _flushed
def closed: Boolean = _closed
private def maybeThrow(): Unit = {
if (throwing)
throw new IOException("MockByteArrayOutputStream throws")
}
private def writeOp[A](op: => A): A = {
maybeThrow()
_flushed = false
op
}
override def flush(): Unit = {
maybeThrow()
super.flush()
_flushed = true
}
override def close(): Unit = {
maybeThrow()
super.close()
_closed = true
}
override def write(c: Int): Unit =
writeOp(super.write(c))
override def write(b: Array[Byte]): Unit =
writeOp(super.write(b))
override def write(b: Array[Byte], off: Int, len: Int): Unit =
writeOp(super.write(b, off, len))
}
|