summaryrefslogtreecommitdiff
path: root/test/junit
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@typesafe.com>2015-11-24 08:58:57 +0100
committerLukas Rytz <lukas.rytz@typesafe.com>2015-11-24 08:58:57 +0100
commit3d0cbf9d10416fab8017b5fb46af44f59ee89fd1 (patch)
tree5f53b0943e5b1b12b85a23d951eb1d64cfb7fe8f /test/junit
parent543ebf6a0a930ec9e85bba1a4ad6df26ba541e6e (diff)
parent22addc63096986b16d38dcd796d843eb6678fc01 (diff)
downloadscala-3d0cbf9d10416fab8017b5fb46af44f59ee89fd1.tar.gz
scala-3d0cbf9d10416fab8017b5fb46af44f59ee89fd1.tar.bz2
scala-3d0cbf9d10416fab8017b5fb46af44f59ee89fd1.zip
Merge pull request #4854 from triggerNZ/serializable-partial-functions
SI-9363 fix
Diffstat (limited to 'test/junit')
-rw-r--r--test/junit/scala/PartialFunctionSerializationTest.scala36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/junit/scala/PartialFunctionSerializationTest.scala b/test/junit/scala/PartialFunctionSerializationTest.scala
new file mode 100644
index 0000000000..d525b045cd
--- /dev/null
+++ b/test/junit/scala/PartialFunctionSerializationTest.scala
@@ -0,0 +1,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)
+}