web3.js/test/event.inputParser.js

114 lines
3.8 KiB
JavaScript
Raw Normal View History

2015-02-03 06:08:19 -08:00
var assert = require('assert');
2015-03-08 10:18:52 -07:00
var event = require('../lib/web3/event.js');
var f = require('../lib/solidity/formatters.js');
2015-02-03 06:08:19 -08:00
2015-03-25 14:17:35 -07:00
describe('lib/web3/event', function () {
2015-02-03 06:08:19 -08:00
describe('inputParser', function () {
it('should create basic filter input object', function () {
// given
var address = '0x012345';
var signature = '0x987654';
var e = {
name: 'Event',
inputs: [{"name":"a","type":"uint256","indexed":true},{"name":"b","type":"hash256","indexed":false}]
};
// when
var impl = event.inputParser(address, signature, e);
var result = impl();
// then
assert.equal(result.address, address);
2015-03-10 08:22:16 -07:00
assert.equal(result.topics.length, 1);
assert.equal(result.topics[0], signature);
2015-02-03 06:08:19 -08:00
});
it('should create filter input object with options', function () {
// given
var address = '0x012345';
var signature = '0x987654';
var options = {
2015-03-10 08:13:44 -07:00
fromBlock: 1,
toBlock: 2,
2015-02-03 06:08:19 -08:00
};
var e = {
name: 'Event',
inputs: [{"name":"a","type":"uint256","indexed":true},{"name":"b","type":"hash256","indexed":false}]
};
// when
var impl = event.inputParser(address, signature, e);
var result = impl({}, options);
// then
assert.equal(result.address, address);
2015-03-10 08:22:16 -07:00
assert.equal(result.topics.length, 1);
assert.equal(result.topics[0], signature);
2015-03-10 08:13:44 -07:00
assert.equal(result.fromBlock, options.fromBlock);
assert.equal(result.toBlock, options.toBlock);
2015-02-03 06:08:19 -08:00
});
it('should create filter input object with indexed params', function () {
// given
var address = '0x012345';
var signature = '0x987654';
var options = {
2015-03-10 08:13:44 -07:00
fromBlock: 1,
toBlock: 2
2015-02-03 06:08:19 -08:00
};
var e = {
name: 'Event',
inputs: [{"name":"a","type":"uint256","indexed":true},{"name":"b","type":"hash256","indexed":false}]
};
// when
var impl = event.inputParser(address, signature, e);
var result = impl({a: 4}, options);
// then
assert.equal(result.address, address);
2015-03-10 08:22:16 -07:00
assert.equal(result.topics.length, 2);
assert.equal(result.topics[0], signature);
2015-04-16 07:37:13 -07:00
assert.equal(result.topics[1], '0x' + f.formatInputInt(4).encode());
2015-03-10 08:13:44 -07:00
assert.equal(result.fromBlock, options.fromBlock);
assert.equal(result.toBlock, options.toBlock);
2015-02-03 06:08:19 -08:00
});
it('should create filter input object with an array of indexed params', function () {
// given
var address = '0x012345';
var signature = '0x987654';
var options = {
fromBlock: 1,
toBlock: 2,
2015-02-03 06:08:19 -08:00
};
var e = {
name: 'Event',
inputs: [{"name":"a","type":"uint256","indexed":true},{"name":"b","type":"hash256","indexed":false}]
};
// when
var impl = event.inputParser(address, signature, e);
var result = impl({a: [4, 69]}, options);
// then
assert.equal(result.address, address);
2015-03-10 08:22:16 -07:00
assert.equal(result.topics.length, 2);
assert.equal(result.topics[0], signature);
2015-04-16 07:37:13 -07:00
assert.equal(result.topics[1][0], f.formatInputInt(4).encode());
assert.equal(result.topics[1][1], f.formatInputInt(69).encode());
assert.equal(result.fromBlock, options.fromBlock);
assert.equal(result.toBlock, options.toBlock);
2015-02-03 06:08:19 -08:00
});
});
});