mirror of https://github.com/ethereum/go-ethereum
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
173 lines
4.1 KiB
173 lines
4.1 KiB
10 years ago
|
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);
|
||
|
|
||
|
});
|
||
|
});
|
||
|
|