Github user squito commented on a diff in the pull request:
https://github.com/apache/spark/pull/22557#discussion_r221056128
--- Diff:
core/src/test/scala/org/apache/spark/security/CryptoStreamUtilsSuite.scala ---
@@ -164,6 +167,34 @@ class CryptoStreamUtilsSuite extends SparkFunSuite {
}
}
+ test("error handling wrapper") {
+ val wrapped = mock(classOf[ReadableByteChannel])
+ val decrypted = mock(classOf[ReadableByteChannel])
+ val errorHandler = new
CryptoStreamUtils.ErrorHandlingReadableChannel(decrypted, wrapped)
+
+ when(decrypted.read(any(classOf[ByteBuffer])))
+ .thenThrow(new IOException())
+ .thenThrow(new InternalError())
+ .thenReturn(1)
+
+ val out = ByteBuffer.allocate(1)
+ intercept[IOException] {
+ errorHandler.read(out)
+ }
+ intercept[InternalError] {
+ errorHandler.read(out)
+ }
+ intercept[IOException] {
+ errorHandler.read(out)
+ }
--- End diff --
since you're throwing a mock IOException above, this would be a little more
clear if here you checked the message too
```scala
assert(intercept[IOException] {
errorHandler.read(out)
}.getMessage() === ("Cipher stream is closed."))
```
(you can also use `assertThrows` if you're not looking at the exception at
all, though doesn't really matter)
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]