diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/abi.parsers.js | 146 |
1 files changed, 126 insertions, 20 deletions
diff --git a/test/abi.parsers.js b/test/abi.parsers.js index 06a77fb86..6058e7ed7 100644 --- a/test/abi.parsers.js +++ b/test/abi.parsers.js @@ -1,35 +1,141 @@ +# vim: et + var assert = require('assert'); var abi = require('../lib/abi.js'); +var clone = function (object) { return JSON.parse(JSON.stringify(object)); }; + +var description = [{ + "name": "test", + "inputs": [{ + "name": "a", + "type": "uint256" + } + ], + "outputs": [ + { + "name": "d", + "type": "uint256" + } + ] +}]; describe('abi', function() { describe('inputParser', function() { - it('should parse ...', function() { - - var desc = [{ - "name": "multiply", - "inputs": [ - { - "name": "a", - "type": "uint256" - } - ], - "outputs": [ - { - "name": "d", - "type": "uint256" - } - ] - }]; - - var iParser = abi.inputParser(desc); - assert.equal(iParser.multiply(1), "0x000000000000000000000000000000000000000000000000000000000000000001"); + it('should parse input uint', function() { + + var d = clone(description); + + d[0].inputs = [ + { type: "uint256" } + ]; + + var parser = abi.inputParser(d); + assert.equal(parser.test(1), "0000000000000000000000000000000000000000000000000000000000000001"); + assert.equal(parser.test(10), "000000000000000000000000000000000000000000000000000000000000000a"); + + d[0].inputs = [ + { type: "uint128" } + ]; + + var parser = abi.inputParser(d); + assert.equal(parser.test(1), "0000000000000000000000000000000000000000000000000000000000000001"); + assert.equal(parser.test(10), "000000000000000000000000000000000000000000000000000000000000000a"); + + d[0].inputs = [ + { type: "uint" } + ]; + + var parser = abi.inputParser(d); + assert.equal(parser.test(1), "0000000000000000000000000000000000000000000000000000000000000001"); + assert.equal(parser.test(10), "000000000000000000000000000000000000000000000000000000000000000a"); + + }); + + it('should parse input int', function() { + + var d = clone(description); + + d[0].inputs = [ + { type: "int256" } + ]; + + var parser = abi.inputParser(d); + assert.equal(parser.test(1), "0000000000000000000000000000000000000000000000000000000000000001"); + assert.equal(parser.test(10), "000000000000000000000000000000000000000000000000000000000000000a"); + + d[0].inputs = [ + { type: "int128" } + ]; + + var parser = abi.inputParser(d); + assert.equal(parser.test(1), "0000000000000000000000000000000000000000000000000000000000000001"); + assert.equal(parser.test(10), "000000000000000000000000000000000000000000000000000000000000000a"); + + d[0].inputs = [ + { type: "int" } + ]; + var parser = abi.inputParser(d); + assert.equal(parser.test(1), "0000000000000000000000000000000000000000000000000000000000000001"); + assert.equal(parser.test(10), "000000000000000000000000000000000000000000000000000000000000000a"); + }); + + it('should parse input hash', function() { + + var d = clone(description); + + d[0].inputs = [ + { type: "hash256" } + ]; + + var parser = abi.inputParser(d); + assert.equal(parser.test(1), "0000000000000000000000000000000000000000000000000000000000000001"); + + d[0].inputs = [ + { type: "hash128" } + ]; + + var parser = abi.inputParser(d); + assert.equal(parser.test(1), "0000000000000000000000000000000000000000000000000000000000000001"); + + d[0].inputs = [ + { type: "hash" } + ]; + + var parser = abi.inputParser(d); + assert.equal(parser.test(1), "0000000000000000000000000000000000000000000000000000000000000001"); + + }); + + it('should parse input string', function() { + + var d = clone(description); + + d[0].inputs = [ + { type: "string" } + ]; + + var parser = abi.inputParser(d); + assert.equal(parser.test('hello'), "68656c6c6f000000000000000000000000000000000000000000000000000000"); + assert.equal(parser.test('world'), "776f726c64000000000000000000000000000000000000000000000000000000"); + }); + }); describe('outputParser', function() { it('parse ...', function() { + + var d = clone(description); + + d[0].outputs = [ + { type: "string" } + ]; + + var parser = abi.outputParser(d); + assert.equal(parser.test("0x68656c6c6f00000000000000000000000000000000000000000000000000000")[0], 'hello'); + assert.equal(parser.test("0x776f726c6400000000000000000000000000000000000000000000000000000")[0], 'world'); }); }); |