Merge pull request #385 from clark800/get-orders

Convert getOrders and add unit test
This commit is contained in:
Chris Clark
2015-06-26 10:46:41 -07:00
14 changed files with 661 additions and 146 deletions

View File

@@ -27,6 +27,7 @@ const accountTransactionsResponse =
const trustlinesResponse = require('./fixtures/trustlines-response');
const walletResponse = require('./fixtures/wallet.json');
const getSettingsResponse = require('./fixtures/get-settings-response');
const getOrdersResponse = require('./fixtures/get-orders-response');
function checkResult(expected, done, error, response) {
if (error) {
@@ -131,4 +132,9 @@ describe('RippleAPI', function() {
_.partial(checkResult, getSettingsResponse, done));
});
it('getOrders', function(done) {
this.api.getOrders(address, {},
_.partial(checkResult, getOrdersResponse, done));
});
});

View File

@@ -18,9 +18,7 @@
"counterparty": "rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM"
}
},
"paths": "[[{\"currency\":\"USD\",\"issuer\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"type\":48,\"type_hex\":\"0000000000000030\"},{\"account\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"currency\":\"USD\",\"issuer\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"type\":49,\"type_hex\":\"0000000000000031\"}]]",
"allowPartialPayment": false,
"noDirectRipple": false
"paths": "[[{\"currency\":\"USD\",\"issuer\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"type\":48,\"type_hex\":\"0000000000000030\"},{\"account\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"currency\":\"USD\",\"issuer\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"type\":49,\"type_hex\":\"0000000000000031\"}]]"
},
"outcome": {
"result": "tesSUCCESS",
@@ -104,9 +102,7 @@
"counterparty": "rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM"
}
},
"paths": "[[{\"currency\":\"USD\",\"issuer\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"type\":48,\"type_hex\":\"0000000000000030\"},{\"account\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"currency\":\"USD\",\"issuer\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"type\":49,\"type_hex\":\"0000000000000031\"}]]",
"allowPartialPayment": false,
"noDirectRipple": false
"paths": "[[{\"currency\":\"USD\",\"issuer\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"type\":48,\"type_hex\":\"0000000000000030\"},{\"account\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"currency\":\"USD\",\"issuer\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"type\":49,\"type_hex\":\"0000000000000031\"}]]"
},
"outcome": {
"result": "tesSUCCESS",

255
test/fixtures/acct-offers-response.js vendored Normal file
View File

@@ -0,0 +1,255 @@
'use strict';
const _ = require('lodash');
const addresses = require('./addresses');
module.exports = function(request, options={}) {
_.defaults(options, {
account: addresses.ACCOUNT,
validated: true
});
return JSON.stringify({
'id': request.id,
'result': {
'account': options.account,
'marker': options.marker,
'limit': options.limit,
'ledger_index': options.ledger,
'offers': [
{
'flags': 131072,
'seq': 719930,
'taker_gets': {
'currency': 'EUR',
'issuer': 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q',
'value': '17.70155237781915'
},
'taker_pays': {
'currency': 'USD',
'issuer': 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q',
'value': '1122.990930900328'
}
},
{
'flags': 0,
'seq': 757002,
'taker_gets': {
'currency': 'USD',
'issuer': 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q',
'value': '18.46856867857617'
},
'taker_pays': {
'currency': 'USD',
'issuer': 'rpDMez6pm6dBve2TJsmDpv7Yae6V5Pyvy2',
'value': '19.50899530491766'
}
},
{
'flags': 0,
'seq': 756999,
'taker_gets': {
'currency': 'USD',
'issuer': 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q',
'value': '19.11697137482289'
},
'taker_pays': {
'currency': 'EUR',
'issuer': 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q',
'value': '750'
}
},
{
'flags': 0,
'seq': 757003,
'taker_gets': {
'currency': 'USD',
'issuer': 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q',
'value': '14.40727807030772'
},
'taker_pays': {
'currency': 'USD',
'issuer': 'rpDMez6pm6dBve2TJsmDpv7Yae6V5Pyvy2',
'value': '1445.796633544794'
}
},
{
'flags': 0,
'seq': 782148,
'taker_gets': {
'currency': 'NZD',
'issuer': 'rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc',
'value': '9.178557969538755'
},
'taker_pays': {
'currency': 'USD',
'issuer': 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q',
'value': '750'
}
},
{
'flags': 0,
'seq': 787368,
'taker_gets': {
'currency': 'USD',
'issuer': 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q',
'value': '9.94768291869523'
},
'taker_pays': {
'currency': 'USD',
'issuer': 'rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B',
'value': '500'
}
},
{
'flags': 0,
'seq': 787408,
'taker_gets': {
'currency': 'USD',
'issuer': 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q',
'value': '9.994805759894176'
},
'taker_pays': {
'currency': 'USD',
'issuer': 'rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B',
'value': '10000'
}
},
{
'flags': 0,
'seq': 803438,
'taker_gets': {
'currency': 'USD',
'issuer': 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q',
'value': '11.67691646304319'
},
'taker_pays': {
'currency': 'MXN',
'issuer': 'rG6FZ31hDHN1K5Dkbma3PSB5uVCuVVRzfn',
'value': '15834.53653918684'
}
},
{
'flags': 0,
'seq': 807858,
'taker_gets': {
'currency': 'XAU',
'issuer': 'r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH',
'value': '0.03206299605333101'
},
'taker_pays': {
'currency': 'USD',
'issuer': 'r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH',
'value': '3968.240250979598'
}
},
{
'flags': 0,
'seq': 807896,
'taker_gets': {
'currency': 'XAU',
'issuer': 'r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH',
'value': '0.03347459066593226'
},
'taker_pays': {
'currency': 'USD',
'issuer': 'rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B',
'value': '4139.022125516302'
}
},
{
'flags': 0,
'seq': 814018,
'taker_gets': {
'currency': 'NZD',
'issuer': 'rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc',
'value': '6.840555705'
},
'taker_pays': '115760190000'
},
{
'flags': 0,
'seq': 827522,
'taker_gets': {
'currency': 'EUR',
'issuer': 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q',
'value': '14.40843766044656'
},
'taker_pays': {
'currency': 'USD',
'issuer': 'rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B',
'value': '902.4050961259154'
}
},
{
'flags': 0,
'seq': 833592,
'taker_gets': {
'currency': 'XAG',
'issuer': 'r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH',
'value': '1.128432823485991'
},
'taker_pays': {
'currency': 'USD',
'issuer': 'r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH',
'value': '1814.887131319799'
}
},
{
'flags': 0,
'seq': 833591,
'taker_gets': {
'currency': 'XAG',
'issuer': 'r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH',
'value': '1.128432823485989'
},
'taker_pays': {
'currency': 'USD',
'issuer': 'r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH',
'value': '181.4887131319798'
}
},
{
'flags': 0,
'seq': 838954,
'taker_gets': {
'currency': 'XAG',
'issuer': 'r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH',
'value': '0.7283371225235964'
},
'taker_pays': {
'currency': 'USD',
'issuer': 'rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B',
'value': '118.6872603846736'
}
},
{
'flags': 0,
'seq': 843730,
'taker_gets': '2229229447',
'taker_pays': {
'currency': 'XAU',
'issuer': 'r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH',
'value': '1'
}
},
{
'flags': 0,
'seq': 844068,
'taker_gets': {
'currency': 'USD',
'issuer': 'rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B',
'value': '17.77537376072202'
},
'taker_pays': {
'currency': 'EUR',
'issuer': 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q',
'value': '750'
}
}
],
'validated': options.validated
},
'status': 'success',
'type': 'response'
});
};

307
test/fixtures/get-orders-response.json vendored Normal file
View File

@@ -0,0 +1,307 @@
[
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "USD",
"value": "1122.990930900328",
"counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"
},
"totalPrice": {
"currency": "EUR",
"value": "17.70155237781915",
"counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"
},
"immediateOrCancel": true
},
"state": {
"sequence": 719930
}
},
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "EUR",
"value": "750",
"counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"
},
"totalPrice": {
"currency": "USD",
"value": "19.11697137482289",
"counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"
}
},
"state": {
"sequence": 756999
}
},
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "USD",
"value": "19.50899530491766",
"counterparty": "rpDMez6pm6dBve2TJsmDpv7Yae6V5Pyvy2"
},
"totalPrice": {
"currency": "USD",
"value": "18.46856867857617",
"counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"
}
},
"state": {
"sequence": 757002
}
},
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "USD",
"value": "1445.796633544794",
"counterparty": "rpDMez6pm6dBve2TJsmDpv7Yae6V5Pyvy2"
},
"totalPrice": {
"currency": "USD",
"value": "14.40727807030772",
"counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"
}
},
"state": {
"sequence": 757003
}
},
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "USD",
"value": "750",
"counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"
},
"totalPrice": {
"currency": "NZD",
"value": "9.178557969538755",
"counterparty": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc"
}
},
"state": {
"sequence": 782148
}
},
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "USD",
"value": "500",
"counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"
},
"totalPrice": {
"currency": "USD",
"value": "9.94768291869523",
"counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"
}
},
"state": {
"sequence": 787368
}
},
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "USD",
"value": "10000",
"counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"
},
"totalPrice": {
"currency": "USD",
"value": "9.994805759894176",
"counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"
}
},
"state": {
"sequence": 787408
}
},
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "MXN",
"value": "15834.53653918684",
"counterparty": "rG6FZ31hDHN1K5Dkbma3PSB5uVCuVVRzfn"
},
"totalPrice": {
"currency": "USD",
"value": "11.67691646304319",
"counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"
}
},
"state": {
"sequence": 803438
}
},
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "USD",
"value": "3968.240250979598",
"counterparty": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH"
},
"totalPrice": {
"currency": "XAU",
"value": "0.03206299605333101",
"counterparty": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH"
}
},
"state": {
"sequence": 807858
}
},
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "USD",
"value": "4139.022125516302",
"counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"
},
"totalPrice": {
"currency": "XAU",
"value": "0.03347459066593226",
"counterparty": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH"
}
},
"state": {
"sequence": 807896
}
},
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "XRP",
"value": "115760.19"
},
"totalPrice": {
"currency": "NZD",
"value": "6.840555705",
"counterparty": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc"
}
},
"state": {
"sequence": 814018
}
},
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "USD",
"value": "902.4050961259154",
"counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"
},
"totalPrice": {
"currency": "EUR",
"value": "14.40843766044656",
"counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"
}
},
"state": {
"sequence": 827522
}
},
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "USD",
"value": "181.4887131319798",
"counterparty": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH"
},
"totalPrice": {
"currency": "XAG",
"value": "1.128432823485989",
"counterparty": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH"
}
},
"state": {
"sequence": 833591
}
},
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "USD",
"value": "1814.887131319799",
"counterparty": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH"
},
"totalPrice": {
"currency": "XAG",
"value": "1.128432823485991",
"counterparty": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH"
}
},
"state": {
"sequence": 833592
}
},
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "USD",
"value": "118.6872603846736",
"counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"
},
"totalPrice": {
"currency": "XAG",
"value": "0.7283371225235964",
"counterparty": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH"
}
},
"state": {
"sequence": 838954
}
},
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "XAU",
"value": "1",
"counterparty": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH"
},
"totalPrice": {
"currency": "XRP",
"value": "2229.229447"
}
},
"state": {
"sequence": 843730
}
},
{
"specification": {
"direction": "buy",
"quantity": {
"currency": "EUR",
"value": "750",
"counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"
},
"totalPrice": {
"currency": "USD",
"value": "17.77537376072202",
"counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"
}
},
"state": {
"sequence": 844068
}
}
]

View File

@@ -17,9 +17,7 @@
"counterparty": "rMH4UxPrbuMa1spCBR98hLLyNJp4d8p4tM"
}
},
"paths": "[[{\"currency\":\"USD\",\"issuer\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"type\":48,\"type_hex\":\"0000000000000030\"},{\"account\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"currency\":\"USD\",\"issuer\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"type\":49,\"type_hex\":\"0000000000000031\"}]]",
"allowPartialPayment": false,
"noDirectRipple": false
"paths": "[[{\"currency\":\"USD\",\"issuer\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"type\":48,\"type_hex\":\"0000000000000030\"},{\"account\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"currency\":\"USD\",\"issuer\":\"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo\",\"type\":49,\"type_hex\":\"0000000000000031\"}]]"
},
"outcome": {
"result": "tesSUCCESS",

View File

@@ -6,6 +6,7 @@ const EventEmitter2 = require('eventemitter2').EventEmitter2;
const fixtures = require('./fixtures/mock');
const addresses = require('./fixtures/addresses');
const hashes = require('./fixtures/hashes');
const accountOffersResponse = require('./fixtures/acct-offers-response');
module.exports = function(port) {
const mock = new WebSocketServer({port: port});
@@ -120,5 +121,13 @@ module.exports = function(port) {
}
});
mock.on('request_account_offers', function(request, conn) {
if (request.account === addresses.ACCOUNT) {
conn.send(accountOffersResponse(request));
} else {
assert(false, 'Unrecognized account address: ' + request.account);
}
});
return mock;
};