| Index: tests/stub-generator/src/MintMakerFullyIsolatedTest.dart
|
| ===================================================================
|
| --- tests/stub-generator/src/MintMakerFullyIsolatedTest.dart (revision 626)
|
| +++ tests/stub-generator/src/MintMakerFullyIsolatedTest.dart (working copy)
|
| @@ -4,6 +4,8 @@
|
|
|
| // IsolateStubs=MintMakerFullyIsolatedTest.dart:Mint,Purse,PowerfulPurse
|
|
|
| +#import("../../isolate/src/TestFramework.dart");
|
| +
|
| interface Purse {
|
| Purse();
|
| int queryBalance();
|
| @@ -163,75 +165,46 @@
|
|
|
| class MintMakerFullyIsolatedTest {
|
|
|
| - static void testMain() {
|
| + static void testMain(TestExpectation expect) {
|
| Mint$Proxy mint = new Mint$ProxyImpl.createIsolate();
|
| Purse$Proxy purse = mint.createPurse(100);
|
| // FIXME(benl): how do I write this?
|
| //PowerfulPurse$Proxy power = (PowerfulPurse$Proxy)purse;
|
| //expectEqualsStr("xxx", power.grab());
|
| - expectEquals(100, purse.queryBalance());
|
| + Promise<int> balance = purse.queryBalance();
|
| + expect.completesWithValue(balance, 100);
|
|
|
| Purse$Proxy sprouted = purse.sproutPurse();
|
| - expectEquals(0, sprouted.queryBalance());
|
| + expect.completesWithValue(sprouted.queryBalance(), 0);
|
|
|
| Promise<int> done = sprouted.deposit(5, purse);
|
| + Promise<int> d3 = expect.completesWithValue(done, 5);
|
| + Promise<int> inner = new Promise<int>();
|
| + Promise<int> inner2 = new Promise<int>();
|
| // FIXME(benl): it should not be necessary to wait here, I think,
|
| // but without this, the tests seem to execute prematurely.
|
| - expectEquals(5, done);
|
| - done.then((int) {
|
| - expectEquals(0 + 5, sprouted.queryBalance());
|
| - expectEquals(100 - 5, purse.queryBalance());
|
| + Promise<int> d1 = done.then((val) {
|
| + expect.completesWithValue(sprouted.queryBalance(), 0 + 5);
|
| + expect.completesWithValue(purse.queryBalance(), 100 - 5);
|
|
|
| done = sprouted.deposit(42, purse);
|
| - expectEquals(5 + 42, done);
|
| - done.then((int) {
|
| - expectEquals(0 + 5 + 42, sprouted.queryBalance());
|
| - expectEquals(100 - 5 - 42, purse.queryBalance());
|
| -
|
| - expectDone(8);
|
| + expect.completesWithValue(done, 5 + 42);
|
| + Promise<int> d2 = done.then((val) {
|
| + expect.completesWithValue(sprouted.queryBalance(), 0 + 5 + 42)
|
| + .then((int value) => inner.complete(0));
|
| + expect.completesWithValue(purse.queryBalance(), 100 - 5 - 42)
|
| + .then((int value) => inner2.complete(0));
|
| });
|
| + expect.completes(d2);
|
| });
|
| + expect.completes(d1);
|
| + Promise<int> allDone = new Promise<int>();
|
| + allDone.waitFor([d3, inner, inner2], 3);
|
| + allDone.then((_) => expect.succeeded());
|
| }
|
|
|
| - static List<Promise> results;
|
| -
|
| - static void expectEqualsStr(String expected, Promise<String> promise) {
|
| - if (results === null) {
|
| - results = new List<Promise>();
|
| - }
|
| - results.add(promise.then((String actual) {
|
| - //print('done ' + expected + '/' + actual);
|
| - Expect.equals(expected, actual);
|
| - }));
|
| - }
|
| -
|
| - static void expectEquals(int expected, Promise<int> promise) {
|
| - if (results === null) {
|
| - results = new List<Promise>();
|
| - }
|
| - results.add(promise.then((int actual) {
|
| - //print('done ' + expected + '/' + actual);
|
| - Expect.equals(expected, actual);
|
| - }));
|
| - }
|
| -
|
| - static void expectDone(int n) {
|
| - if (results === null) {
|
| - Expect.equals(0, n);
|
| - print('##DONE##');
|
| - } else {
|
| - Promise done = new Promise();
|
| - done.waitFor(results, results.length);
|
| - done.then((ignored) {
|
| - //print('done all ' + n + '/' + results.length);
|
| - Expect.equals(n, results.length);
|
| - print('##DONE##');
|
| - });
|
| - }
|
| - }
|
| -
|
| }
|
|
|
| main() {
|
| - MintMakerFullyIsolatedTest.testMain();
|
| + runTests([MintMakerFullyIsolatedTest.testMain]);
|
| }
|
|
|