| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library RequestReplyTest; | 5 library RequestReplyTest; |
| 6 | 6 |
| 7 import 'dart:isolate'; | 7 import 'dart:isolate'; |
| 8 import '../../pkg/unittest/lib/unittest.dart'; | 8 import '../../pkg/unittest/lib/unittest.dart'; |
| 9 | 9 |
| 10 void entry() { | 10 void entry(initPort) { |
| 11 port.receive((message, SendPort replyTo) { | 11 ReceivePort port = new ReceivePort(); |
| 12 initPort.send(port.sendPort); |
| 13 port.listen((pair) { |
| 14 var message = pair[0]; |
| 15 SendPort replyTo = pair[1]; |
| 12 replyTo.send(message + 87); | 16 replyTo.send(message + 87); |
| 13 port.close(); | 17 port.close(); |
| 14 }); | 18 }); |
| 15 } | 19 } |
| 16 | 20 |
| 17 void main() { | 21 void main() { |
| 18 test("call", () { | |
| 19 SendPort port = spawnFunction(entry); | |
| 20 port.call(42).then(expectAsync1((message) { | |
| 21 expect(message, 42 + 87); | |
| 22 })); | |
| 23 }); | |
| 24 | |
| 25 test("send", () { | 22 test("send", () { |
| 26 SendPort port = spawnFunction(entry); | 23 ReceivePort init = new ReceivePort(); |
| 27 ReceivePort reply = new ReceivePort(); | 24 Isolate.spawn(entry, init.sendPort); |
| 28 port.send(99, reply.toSendPort()); | 25 init.first.then(expectAsync1((port) { |
| 29 reply.receive(expectAsync2((message, replyTo) { | 26 ReceivePort reply = new ReceivePort(); |
| 30 expect(message, 99 + 87); | 27 port.send([99, reply.sendPort]); |
| 31 reply.close(); | 28 reply.listen(expectAsync1((message) { |
| 29 expect(message, 99 + 87); |
| 30 reply.close(); |
| 31 })); |
| 32 })); | 32 })); |
| 33 }); | 33 }); |
| 34 } | 34 } |
| OLD | NEW |