blob: d525b045cd9cf520f0aa78ff8464d24dbce94f5d (
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
|
package scala
import org.junit.Test
import org.junit.Assert._
import org.junit.runner.RunWith
import org.junit.runners.JUnit4
@RunWith(classOf[JUnit4])
class PartialFunctionSerializationTest {
val pf1: PartialFunction[Int, Int] = {
case n if n > 0 => 1
}
val pf2: PartialFunction[Int, Int] = {
case n if n <= 0 => 2
}
private def assertSerializable[A,B](fn: A => B) = {
import java.io._
new ObjectOutputStream(new ByteArrayOutputStream()).writeObject(fn)
}
@Test def canSerializeLiteral= assertSerializable(pf1)
@Test def canSerializeLifted= assertSerializable(pf1.lift)
@Test def canSerializeOrElse = assertSerializable(pf1 orElse pf2)
@Test def canSerializeUnlifted = assertSerializable(Function.unlift((x: Int) => Some(x)))
@Test def canSerializeAndThen = assertSerializable(pf1.andThen((x: Int) => x))
@Test def canSerializeEmpty = assertSerializable(PartialFunction.empty)
}
|