mirror of https://github.com/ethereum/go-ethereum
parent
63d9c070ef
commit
ea7c2fc673
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,172 @@ |
|||||||
|
var assert = require('assert'); |
||||||
|
var contract = require('../lib/contract.js'); |
||||||
|
|
||||||
|
describe('contract', function() { |
||||||
|
it('should create simple contract with one method from abi with explicit type name', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var description = [{ |
||||||
|
"name": "test(uint256)", |
||||||
|
"type": "function", |
||||||
|
"inputs": [{ |
||||||
|
"name": "a", |
||||||
|
"type": "uint256" |
||||||
|
} |
||||||
|
], |
||||||
|
"outputs": [ |
||||||
|
{ |
||||||
|
"name": "d", |
||||||
|
"type": "uint256" |
||||||
|
} |
||||||
|
] |
||||||
|
}]; |
||||||
|
|
||||||
|
// when
|
||||||
|
var con = contract(null, description); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal('function', typeof con.test);
|
||||||
|
assert.equal('function', typeof con.test['uint256']); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should create simple contract with one method from abi with implicit type name', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var description = [{ |
||||||
|
"name": "test", |
||||||
|
"type": "function", |
||||||
|
"inputs": [{ |
||||||
|
"name": "a", |
||||||
|
"type": "uint256" |
||||||
|
} |
||||||
|
], |
||||||
|
"outputs": [ |
||||||
|
{ |
||||||
|
"name": "d", |
||||||
|
"type": "uint256" |
||||||
|
} |
||||||
|
] |
||||||
|
}]; |
||||||
|
|
||||||
|
// when
|
||||||
|
var con = contract(null, description); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal('function', typeof con.test);
|
||||||
|
assert.equal('function', typeof con.test['uint256']); |
||||||
|
});
|
||||||
|
|
||||||
|
it('should create contract with multiple methods', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var description = [{ |
||||||
|
"name": "test", |
||||||
|
"type": "function", |
||||||
|
"inputs": [{ |
||||||
|
"name": "a", |
||||||
|
"type": "uint256" |
||||||
|
} |
||||||
|
], |
||||||
|
"outputs": [ |
||||||
|
{ |
||||||
|
"name": "d", |
||||||
|
"type": "uint256" |
||||||
|
} |
||||||
|
], |
||||||
|
}, { |
||||||
|
"name": "test2", |
||||||
|
"type": "function", |
||||||
|
"inputs": [{ |
||||||
|
"name": "a", |
||||||
|
"type": "uint256" |
||||||
|
} |
||||||
|
], |
||||||
|
"outputs": [ |
||||||
|
{ |
||||||
|
"name": "d", |
||||||
|
"type": "uint256" |
||||||
|
} |
||||||
|
] |
||||||
|
}]; |
||||||
|
|
||||||
|
// when
|
||||||
|
var con = contract(null, description); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal('function', typeof con.test);
|
||||||
|
assert.equal('function', typeof con.test['uint256']); |
||||||
|
assert.equal('function', typeof con.test2);
|
||||||
|
assert.equal('function', typeof con.test2['uint256']); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should create contract with overloaded methods', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var description = [{ |
||||||
|
"name": "test", |
||||||
|
"type": "function", |
||||||
|
"inputs": [{ |
||||||
|
"name": "a", |
||||||
|
"type": "uint256" |
||||||
|
} |
||||||
|
], |
||||||
|
"outputs": [ |
||||||
|
{ |
||||||
|
"name": "d", |
||||||
|
"type": "uint256" |
||||||
|
} |
||||||
|
], |
||||||
|
}, { |
||||||
|
"name": "test", |
||||||
|
"type": "function", |
||||||
|
"inputs": [{ |
||||||
|
"name": "a", |
||||||
|
"type": "string" |
||||||
|
} |
||||||
|
], |
||||||
|
"outputs": [ |
||||||
|
{ |
||||||
|
"name": "d", |
||||||
|
"type": "uint256" |
||||||
|
} |
||||||
|
] |
||||||
|
}]; |
||||||
|
|
||||||
|
// when
|
||||||
|
var con = contract(null, description); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal('function', typeof con.test);
|
||||||
|
assert.equal('function', typeof con.test['uint256']); |
||||||
|
assert.equal('function', typeof con.test['string']);
|
||||||
|
}); |
||||||
|
|
||||||
|
it('should create contract with no methods', function () { |
||||||
|
|
||||||
|
// given
|
||||||
|
var description = [{ |
||||||
|
"name": "test(uint256)", |
||||||
|
"type": "event", |
||||||
|
"inputs": [{ |
||||||
|
"name": "a", |
||||||
|
"type": "uint256" |
||||||
|
} |
||||||
|
], |
||||||
|
"outputs": [ |
||||||
|
{ |
||||||
|
"name": "d", |
||||||
|
"type": "uint256" |
||||||
|
} |
||||||
|
] |
||||||
|
}]; |
||||||
|
|
||||||
|
|
||||||
|
// when
|
||||||
|
var con = contract(null, description); |
||||||
|
|
||||||
|
// then
|
||||||
|
assert.equal('undefined', typeof con.test);
|
||||||
|
|
||||||
|
}); |
||||||
|
}); |
||||||
|
|
Loading…
Reference in new issue