| 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 |