aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala
diff options
context:
space:
mode:
authorphaller <philipp.haller@typesafe.com>2012-11-09 10:11:19 +0100
committerphaller <philipp.haller@typesafe.com>2012-11-09 10:11:19 +0100
commitbab1cbc10a4c15cefecda7435ffaf9be51fbe3c4 (patch)
tree37c58afe94914a63346410ab859513f03268337a /src/test/scala
parent7dbf0a0da4987e8fd5b223437d8f5316ff33616e (diff)
downloadscala-async-bab1cbc10a4c15cefecda7435ffaf9be51fbe3c4.tar.gz
scala-async-bab1cbc10a4c15cefecda7435ffaf9be51fbe3c4.tar.bz2
scala-async-bab1cbc10a4c15cefecda7435ffaf9be51fbe3c4.zip
Add failing test case for local classes inside async blocks
Diffstat (limited to 'src/test/scala')
-rw-r--r--src/test/scala/scala/async/run/local-classes0/LocalClasses0Spec.scala45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/test/scala/scala/async/run/local-classes0/LocalClasses0Spec.scala b/src/test/scala/scala/async/run/local-classes0/LocalClasses0Spec.scala
new file mode 100644
index 0000000..6b8fc4b
--- /dev/null
+++ b/src/test/scala/scala/async/run/local-classes0/LocalClasses0Spec.scala
@@ -0,0 +1,45 @@
+package scala.async
+package run
+package await0
+
+/**
+ * Copyright (C) 2012 Typesafe Inc. <http://www.typesafe.com>
+ */
+
+import language.{reflectiveCalls, postfixOps}
+
+import scala.concurrent.{Future, ExecutionContext, future, Await}
+import scala.concurrent.duration._
+import scala.async.Async.{async, await}
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+import org.junit.Test
+
+class LocalClasses0Class {
+
+ import ExecutionContext.Implicits.global
+
+ def base(x: Int): Future[Int] = future {
+ x + 2
+ }
+
+ def methodWithLocalClass(): Future[Int] = async {
+ case class Person(name: String)
+ val fut = base(10)
+ val x = await(fut)
+ x + 1
+ }
+}
+
+@RunWith(classOf[JUnit4])
+class LocalClasses0Spec {
+
+ @Test
+ def `An async method should reject local classes without crashing`() {
+ val o = new LocalClasses0Class
+ val fut = o.methodWithLocalClass()
+ val res = Await.result(fut, 2 seconds)
+ res mustBe (13)
+ }
+}
+