Make test suites pass (with tip of ripple-lib). Needs refactoring to use mocha

This commit is contained in:
Nicholas Dudfield
2013-07-27 12:46:26 -07:00
parent 9112c6e80a
commit c13f759ada
2 changed files with 123 additions and 45 deletions

View File

@@ -67,7 +67,7 @@ buster.testCase("Offer tests", {
}
], function (error) {
// console.log("result: error=%s", error);
buster.refute(error);
buster.refute(error, self.what || "Unspecifide Error");
done();
});
@@ -95,7 +95,7 @@ buster.testCase("Offer tests", {
buster.assert.equals('tesSUCCESS', m.metadata.TransactionResult);
buster.assert(final_create);
if (3 === ++dones)
if (3 === ++dones)
done();
})
.submit();
@@ -116,7 +116,7 @@ buster.testCase("Offer tests", {
buster.assert.equals('tesSUCCESS', m.metadata.TransactionResult);
buster.assert(final_create);
if (3 === ++dones)
if (3 === ++dones)
done();
})
.submit();
@@ -146,7 +146,7 @@ buster.testCase("Offer tests", {
buster.assert.equals('tesSUCCESS', m.metadata.TransactionResult);
buster.assert(final_create);
if (3 === ++dones)
if (3 === ++dones)
done();
})
.submit();
@@ -161,7 +161,7 @@ buster.testCase("Offer tests", {
}
], function (error) {
// console.log("result: error=%s", error);
buster.refute(error);
buster.refute(error, self.what);
done();
});
@@ -207,21 +207,23 @@ buster.testCase("Offer tests", {
function (done) {
var self = this;
var alices_initial_balance = 499946999680;
var bobs_initial_balance = 10199999920;
async.waterfall([
function (callback) {
self.what = "Create mtgox account.";
testutils.payment(self.remote, "root", "mtgox", "1149999730", callback);
testutils.payment(self.remote, "root", "mtgox", 1149999730, callback);
},
function (callback) {
self.what = "Create alice account.";
testutils.payment(self.remote, "root", "alice", "499946999680", callback);
testutils.payment(self.remote, "root", "alice", alices_initial_balance, callback);
},
function (callback) {
self.what = "Create bob account.";
testutils.payment(self.remote, "root", "bob", "10199999920", callback);
testutils.payment(self.remote, "root", "bob", bobs_initial_balance, callback);
},
function (callback) {
self.what = "Set transfer rate.";
@@ -286,7 +288,7 @@ buster.testCase("Offer tests", {
callback);
},
function (callback) {
self.what = "Verify balances.";
self.what = "Verify balances. 1";
testutils.verify_balances(self.remote,
{
@@ -308,12 +310,36 @@ buster.testCase("Offer tests", {
.submit();
},
function (callback) {
self.what = "Verify balances.";
self.what = "Verify balances. 2";
var alices_fees, alices_num_transactions, alices_tx_fee_units_total,
alices_tx_fee_units_total, alices_final_balance,
bobs_fees, bobs_num_transactions, bobs_tx_fee_units_total,
bobs_tx_fee_units_total, bobs_final_balance;
alices_num_transactions = 3;
alices_tx_fee_units_total = alices_num_transactions * Transaction.fee_units["default"]
alices_tx_fees_total = self.remote.fee_tx(alices_tx_fee_units_total);
alices_final_balance = Amount.from_json(alices_initial_balance)
.subtract(alices_tx_fees_total);
bobs_num_transactions = 2;
bobs_tx_fee_units_total = bobs_num_transactions * Transaction.fee_units["default"]
bobs_tx_fees_total = self.remote.fee_tx(bobs_tx_fee_units_total);
bobs_final_balance = Amount.from_json(bobs_initial_balance)
.subtract(bobs_tx_fees_total);
testutils.verify_balances(self.remote,
{
"alice" : [ "-50/USD/mtgox", String(499946999680-3*(Transaction.fees['default'].to_number())) ],
"bob" : [ "2710505431213761e-33/USD/mtgox", String(10199999920-2*(Transaction.fees['default'].to_number())) ],
"alice" : [ "-50/USD/mtgox", alices_final_balance.to_json()],
"bob" : [ "2710505431213761e-33/USD/mtgox",
bobs_final_balance.to_json()
// bobs_final_balance.to_json()
// String(10199999920-(self.remote.fee_tx(2*(Transaction.fee_units['default'])))).to_number()
],
},
callback);
},
@@ -397,8 +423,9 @@ buster.testCase("Offer tests", {
testutils.verify_balances(self.remote,
{
"alice" : [ "499/USD/mtgox", String(100000000000+4000000000-2*(Transaction.fees['default'].to_number())) ],
"bob" : [ "1/USD/mtgox", String(100000000000-4000000000-2*(Transaction.fees['default'].to_number())) ],
// "bob" : [ "1/USD/mtgox", String(100000000000-4000000000-(Number(self.remote.fee_tx(Transaction.fee_units['default'] * 2).to_json()))) ],
"bob" : [ "1/USD/mtgox", String(100000000000-4000000000-(self.remote.fee_tx(Transaction.fee_units['default'] * 2).to_number())) ],
"alice" : [ "499/USD/mtgox", String(100000000000+4000000000-(self.remote.fee_tx(Transaction.fee_units['default'] * 2).to_number())) ],
},
callback);
},
@@ -482,8 +509,8 @@ buster.testCase("Offer tests", {
testutils.verify_balances(self.remote,
{
"alice" : [ "499/USD/mtgox", String(100000000000+3000000000-2*(Transaction.fees['default'].to_number())) ],
"bob" : [ "1/USD/mtgox", String(100000000000-3000000000-2*(Transaction.fees['default'].to_number())) ],
"alice" : [ "499/USD/mtgox", String(100000000000+3000000000-(self.remote.fee_tx(2*(Transaction.fee_units['default'])).to_number())) ],
"bob" : [ "1/USD/mtgox", String(100000000000-3000000000-(self.remote.fee_tx(2*(Transaction.fee_units['default'])).to_number())) ],
},
callback);
},
@@ -561,7 +588,7 @@ buster.testCase("Offer tests", {
self.what = "Create crossing offer.";
self.remote.transaction()
.offer_create("bob", "1/USD/mtgox", "3000.0") //
.offer_create("bob", "1/USD/mtgox", "3000.0") //
.on('proposed', function (m) {
// console.log("PROPOSED: offer_create: %s", JSON.stringify(m));
@@ -574,8 +601,8 @@ buster.testCase("Offer tests", {
testutils.verify_balances(self.remote,
{
"alice" : [ "499/USD/mtgox", String(100000000000+3000000000-2*(Transaction.fees['default'].to_number())) ],
"bob" : [ "1/USD/mtgox", String(100000000000-3000000000-1*(Transaction.fees['default'].to_number())) ],
"alice" : [ "499/USD/mtgox", String(100000000000+3000000000-(self.remote.fee_tx(2*(Transaction.fee_units['default'])).to_number())) ],
"bob" : [ "1/USD/mtgox", String(100000000000-3000000000-(self.remote.fee_tx(1*(Transaction.fee_units['default'])).to_number())) ],
},
callback);
},
@@ -676,7 +703,7 @@ buster.testCase("Offer tests", {
},
], function (error) {
// console.log("result: error=%s", error);
buster.refute(error);
buster.refute(error, self.what);
if (error) done();
});
@@ -771,7 +798,7 @@ buster.testCase("Offer tests", {
},
], function (error) {
// console.log("result: error=%s", error);
buster.refute(error);
buster.refute(error, self.what);
if (error) done();
});
},
@@ -849,7 +876,7 @@ buster.testCase("Offer tests", {
}
], function (error) {
// console.log("result: error=%s", error);
buster.refute(error);
buster.refute(error, self.what);
done();
});
@@ -947,7 +974,7 @@ buster.testCase("Offer tests", {
testutils.verify_balances(self.remote,
{
"alice" : [ "0/USD/mtgox", String(10000000000+500-2*(Transaction.fees['default'].to_number())) ],
"alice" : [ "0/USD/mtgox", String(10000000000+500-(self.remote.fee_tx(2*(Transaction.fee_units['default'])).to_number())) ],
"bob" : "100/USD/mtgox",
},
callback);
@@ -1110,7 +1137,7 @@ buster.testCase("Offer tests", {
testutils.verify_balances(self.remote,
{
"alice" : [ "160/USD/mtgox", String(10000000000+200-2*(Transaction.fees['default'].to_number())) ],
"alice" : [ "160/USD/mtgox", String(10000000000+200-(self.remote.fee_tx(2*(Transaction.fee_units['default'])).to_number())) ],
"bob" : "40/USD/mtgox",
},
callback);
@@ -1152,7 +1179,7 @@ buster.testCase("Offer tests", {
testutils.verify_balances(self.remote,
{
"alice" : [ "100/USD/mtgox", String(10000000000+200+300-4*(Transaction.fees['default'].to_number())) ],
"alice" : [ "100/USD/mtgox", String(10000000000+200+300-(self.remote.fee_tx(4*(Transaction.fee_units['default'])).to_number())) ],
"bob" : "100/USD/mtgox",
},
callback);
@@ -1456,15 +1483,43 @@ buster.testCase("Offer tests 3", {
// Provide micro amounts to compensate for fees to make results round nice.
self.what = "Create accounts.";
testutils.create_accounts(self.remote, "root", "350.000020", ["alice", "bob", "mtgox"], callback);
// Alice has 3 entries in the ledger, via trust lines
var max_owner_count = 3; //
// We start off with a
var reserve_amount = self.remote.reserve(max_owner_count);
// console.log("\n");
// console.log("reserve_amount reserve(max_owner_count=%s): %s", max_owner_count, reserve_amount.to_human());
// this.tx_json.Fee = this.remote.fee_tx(this.fee_units()).to_json();
// 1 for each trust limit == 3 (alice < mtgox/amazon/bitstamp)
// 1 for payment == 4
var max_txs_per_user = 4;
// We don't have access to the tx object[s] created below so we
// just dig into fee_units straight away
var fee_units_for_all_txs = ( Transaction.fee_units["default"] *
max_txs_per_user );
starting_xrp = reserve_amount.add(self.remote.fee_tx(fee_units_for_all_txs))
// console.log("starting_xrp after %s fee units: ", fee_units_for_all_txs, starting_xrp.to_human());
starting_xrp = starting_xrp.add(Amount.from_json('100.0'));
// console.log("starting_xrp adding 100 xrp to sell", starting_xrp.to_human());
testutils.create_accounts(self.remote,
"root",
starting_xrp.to_json(),
["alice", "bob", "mtgox", "amazon", "bitstamp"],
callback);
},
function (callback) {
self.what = "Set limits.";
testutils.credit_limits(self.remote,
{
"alice" : "1000/USD/mtgox",
"bob" : "1000/USD/mtgox",
"alice" : ["1000/USD/mtgox", "1000/USD/amazon","1000/USD/bitstamp"],
"bob" : ["1000/USD/mtgox", "1000/USD/amazon"],
},
callback);
},
@@ -1485,7 +1540,6 @@ buster.testCase("Offer tests 3", {
.on('proposed', function (m) {
// console.log("proposed: offer_create: %s", json.stringify(m));
callback(m.result !== 'tesSUCCESS');
seq_carol = m.tx_json.sequence;
})
.submit();
@@ -1521,14 +1575,14 @@ buster.testCase("Offer tests 3", {
testutils.verify_balances(self.remote,
{
"alice" : [ "100/USD/mtgox", "250.0" ],
"bob" : "400/USD/mtgox",
"alice" : [ "100/USD/mtgox", "350.0"],
"bob" : ["400/USD/mtgox", ],
},
callback);
},
], function (error) {
// console.log("result: error=%s", error);
buster.refute(error);
buster.refute(error, self.what);
done();
});
@@ -1635,7 +1689,7 @@ buster.testCase("Offer tests 3", {
},
], function (error) {
// console.log("result: error=%s", error);
buster.refute(error);
buster.refute(error, self.what);
done();
});
@@ -1751,8 +1805,13 @@ buster.testCase("Offer tfSell", {
function (callback) {
// Provide micro amounts to compensate for fees to make results round nice.
self.what = "Create accounts.";
testutils.create_accounts(self.remote, "root", "350.000020", ["alice", "bob", "mtgox"], callback);
var starting_xrp = self.amount_for({
ledger_entries: 1,
default_transactions: 2,
extra: '100.0'
});
testutils.create_accounts(self.remote, "root", starting_xrp, ["alice", "bob", "mtgox"], callback);
},
function (callback) {
self.what = "Set limits.";
@@ -1783,7 +1842,6 @@ buster.testCase("Offer tfSell", {
.on('proposed', function (m) {
// console.log("proposed: offer_create: %s", json.stringify(m));
callback(m.result !== 'tesSUCCESS');
seq_carol = m.tx_json.sequence;
})
.submit();
@@ -1832,7 +1890,7 @@ buster.testCase("Offer tfSell", {
},
], function (error) {
// console.log("result: error=%s", error);
buster.refute(error);
buster.refute(error, self.what);
done();
});
@@ -1854,8 +1912,14 @@ buster.testCase("Client Issue #535", {
function (callback) {
// Provide micro amounts to compensate for fees to make results round nice.
self.what = "Create accounts.";
var starting_xrp = self.amount_for({
ledger_entries: 1,
default_transactions: 2,
extra: '100.0'
});
testutils.create_accounts(self.remote, "root", "350.000020", ["alice", "bob", "mtgox"], callback);
testutils.create_accounts(self.remote, "root", starting_xrp, ["alice", "bob", "mtgox"], callback);
},
function (callback) {
self.what = "Set limits.";
@@ -1928,7 +1992,7 @@ buster.testCase("Client Issue #535", {
], function (error) {
if (error)
console.log("result: %s: error=%s", self.what, error);
buster.refute(error);
buster.refute(error, self.what);
done();
});

View File

@@ -1,10 +1,11 @@
var async = require("async");
var async = require("async");
var Amount = require("ripple-lib").Amount;
var Remote = require("ripple-lib").Remote;
var Server = require("./server").Server;
var Amount = require("ripple-lib").Amount;
var Remote = require("ripple-lib").Remote;
var Server = require("./server").Server;
var Transaction = require("ripple-lib").Transaction;
var config = require('ripple-lib').config.load(require('./config'));
var config = require('ripple-lib').config.load(require('./config'));
var account_dump = function (remote, account, callback) {
var self = this;
@@ -74,6 +75,18 @@ var build_setup = function (opts, host) {
return function (done) {
var self = this;
self.compute_fees_amount_for_txs = function(txs) {
var fee_units = Transaction.fee_units["default"] * txs;
return self.remote.fee_tx(fee_units);
};
self.amount_for = function(options) {
var reserve = self.remote.reserve(options.ledger_entries || 0);
var fees = self.compute_fees_amount_for_txs(options.default_transactions || 0)
return reserve.add(fees)
.add(options.extra || 0);
};
host = host || config.server_default;
@@ -216,6 +229,7 @@ var verify_limit = function (remote, src, amount, callback) {
}
else
{
// console.log("_m", _m.length, _m);
// console.log("verify_limit: parsed: %s", JSON.stringify(_m, undefined, 2));
var _account_limit = _m[1];
var _quality_in = _m[2];