Merge pull request #42 from adklempner/standard-token-tests

Create tests for StandardToken
This commit is contained in:
Manuel Aráoz
2016-10-28 02:41:16 -03:00
committed by GitHub
2 changed files with 92 additions and 0 deletions

View File

@ -0,0 +1,11 @@
pragma solidity ^0.4.0;
import '../StandardToken.sol';
// mock class using StandardToken
contract StandardTokenMock is StandardToken {
function StandardTokenMock(address initialAccount, uint initialBalance) {
balances[initialAccount] = initialBalance;
}
}

81
test/StandardToken.js Normal file
View File

@ -0,0 +1,81 @@
contract('StandardToken', function(accounts) {
it("should return the correct allowance amount after approval", function(done) {
var token;
return StandardTokenMock.new()
.then(function(_token) {
token = _token;
return token.approve(accounts[1], 100);
})
.then(function() {
return token.allowance(accounts[0], accounts[1]);
})
.then(function(allowance) {
assert.equal(allowance, 100);
})
.then(done);
});
it("should return correct balances after transfer", function(done) {
var token;
return StandardTokenMock.new(accounts[0], 100)
.then(function(_token) {
token = _token;
return token.transfer(accounts[1], 100);
})
.then(function() {
return token.balanceOf(accounts[0]);
})
.then(function(balance) {
assert.equal(balance, 0);
})
.then(function() {
return token.balanceOf(accounts[1]);
})
.then(function(balance) {
assert.equal(balance, 100);
})
.then(done);
});
it("should throw an error when trying to transfer more than balance", function(done) {
var token;
return StandardTokenMock.new(accounts[0], 100)
.then(function(_token) {
token = _token;
return token.transfer(accounts[1], 101);
})
.catch(function(error) {
if (error.message.search('invalid JUMP') == -1) throw error
})
.then(done);
});
it("should return correct balances after transfering from another account", function(done) {
var token;
return StandardTokenMock.new(accounts[0], 100)
.then(function(_token) {
token = _token;
return token.approve(accounts[1], 100);
})
.then(function() {
return token.transferFrom(accounts[0], accounts[2], 100, {from: accounts[1]});
})
.then(function() {
return token.balanceOf(accounts[0]);
})
.then(function(balance) {
assert.equal(balance, 0);
return token.balanceOf(accounts[2]);
})
.then(function(balance) {
assert.equal(balance, 100)
return token.balanceOf(accounts[1]);
})
.then(function(balance) {
assert.equal(balance, 0);
})
.then(done);
});
});