diff --git a/test/send-test.js b/test/send-test.js index 990afe2121..cbc9c10133 100644 --- a/test/send-test.js +++ b/test/send-test.js @@ -464,14 +464,14 @@ buster.testCase("Indirect ripple", { testutils.create_accounts(self.remote, "root", "10000", ["alice", "bob", "mtgox"], callback); }, function (callback) { - self.what = "Set alice's limit."; + self.what = "Set credit limits."; - testutils.credit_limit(self.remote, "alice", "600/USD/mtgox", callback); - }, - function (callback) { - self.what = "Set bob's limit."; - - testutils.credit_limit(self.remote, "bob", "700/USD/mtgox", callback); + testutils.credit_limits(self.remote, + { + "alice" : "600/USD/mtgox", + "bob" : "700/USD/mtgox", + }, + callback); }, function (callback) { self.what = "Give alice some mtgox."; @@ -534,14 +534,14 @@ buster.testCase("Indirect ripple", { testutils.create_accounts(self.remote, "root", "10000", ["alice", "bob", "mtgox"], callback); }, function (callback) { - self.what = "Set alice's limit."; + self.what = "Set credit limits."; - testutils.credit_limit(self.remote, "alice", "600/USD/mtgox", callback); - }, - function (callback) { - self.what = "Set bob's limit."; - - testutils.credit_limit(self.remote, "bob", "700/USD/mtgox", callback); + testutils.credit_limits(self.remote, + { + "alice" : "600/USD/mtgox", + "bob" : "700/USD/mtgox", + }, + callback); }, function (callback) { self.what = "Give alice some mtgox."; @@ -593,29 +593,15 @@ buster.testCase("Indirect ripple", { testutils.create_accounts(self.remote, "root", "10000", ["alice", "bob", "carol", "amazon", "mtgox"], callback); }, function (callback) { - self.what = "Set alice's limit with bob."; + self.what = "Set credit limits."; - testutils.credit_limit(self.remote, "bob", "600/USD/alice", callback); - }, - function (callback) { - self.what = "Set alice's limit with carol."; - - testutils.credit_limit(self.remote, "carol", "700/USD/alice", callback); - }, - function (callback) { - self.what = "Set bob's mtgox limit."; - - testutils.credit_limit(self.remote, "bob", "1000/USD/mtgox", callback); - }, - function (callback) { - self.what = "Set carol's mtgox limit."; - - testutils.credit_limit(self.remote, "carol", "1000/USD/mtgox", callback); - }, - function (callback) { - self.what = "Set amazon's mtgox limit."; - - testutils.credit_limit(self.remote, "amazon", "2000/USD/mtgox", callback); + testutils.credit_limits(self.remote, + { + "amazon" : "2000/USD/mtgox", + "bob" : [ "600/USD/alice", "1000/USD/mtgox" ], + "carol" : [ "700/USD/alice", "1000/USD/mtgox" ], + }, + callback); }, function (callback) { self.what = "Give bob some mtgox."; @@ -675,29 +661,15 @@ buster.testCase("Indirect ripple", { testutils.transfer_rate(self.remote, "mtgox", 1.1e9, callback); }, function (callback) { - self.what = "Set alice's limit with bob."; + self.what = "Set credit limits."; - testutils.credit_limit(self.remote, "bob", "600/USD/alice", callback); - }, - function (callback) { - self.what = "Set alice's limit with carol."; - - testutils.credit_limit(self.remote, "carol", "700/USD/alice", callback); - }, - function (callback) { - self.what = "Set bob's mtgox limit."; - - testutils.credit_limit(self.remote, "bob", "1000/USD/mtgox", callback); - }, - function (callback) { - self.what = "Set carol's mtgox limit."; - - testutils.credit_limit(self.remote, "carol", "1000/USD/mtgox", callback); - }, - function (callback) { - self.what = "Set amazon's mtgox limit."; - - testutils.credit_limit(self.remote, "amazon", "2000/USD/mtgox", callback); + testutils.credit_limits(self.remote, + { + "amazon" : "2000/USD/mtgox", + "bob" : [ "600/USD/alice", "1000/USD/mtgox" ], + "carol" : [ "700/USD/alice", "1000/USD/mtgox" ], + }, + callback); }, function (callback) { self.what = "Give bob some mtgox."; diff --git a/test/testutils.js b/test/testutils.js index 4d1d9ec2d5..097032876b 100644 --- a/test/testutils.js +++ b/test/testutils.js @@ -129,6 +129,30 @@ var credit_limit = function (remote, src, amount, callback) { .submit(); }; +var credit_limits = function (remote, balances, callback) { + assert(3 === arguments.length); + + var limits = []; + + for (var src in balances) { + var values_src = balances[src]; + var values = 'string' === typeof values_src ? [ values_src ] : values_src; + + for (var index in values) { + limits.push( { "source" : src, "amount" : values[index] } ); + } + } + + async.every(limits, + function (limit, callback) { + credit_limit(remote, limit.source, limit.amount, + function (mismatch) { callback(!mismatch); }); + }, + function (every) { + callback(!every); + }); +}; + var payment = function (remote, src, dst, amount, callback) { assert(5 === arguments.length); @@ -212,6 +236,7 @@ var verify_balances = function (remote, balances, callback) { exports.build_setup = build_setup; exports.create_accounts = create_accounts; exports.credit_limit = credit_limit; +exports.credit_limits = credit_limits; exports.payment = payment; exports.build_teardown = build_teardown; exports.transfer_rate = transfer_rate;