123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- const { expectThrow } = require('../helpers/expectThrow');
- const HasNoTokens = artifacts.require('HasNoTokens');
- const ERC223TokenMock = artifacts.require('ERC223TokenMock');
- const BigNumber = web3.BigNumber;
- require('chai')
- .use(require('chai-bignumber')(BigNumber))
- .should();
- contract('HasNoTokens', function ([_, owner, initialAccount, anyone]) {
- let hasNoTokens = null;
- let token = null;
- beforeEach(async () => {
- // Create contract and token
- hasNoTokens = await HasNoTokens.new({ from: owner });
- token = await ERC223TokenMock.new(initialAccount, 100);
- // Force token into contract
- await token.transfer(hasNoTokens.address, 10, { from: initialAccount });
- const startBalance = await token.balanceOf(hasNoTokens.address);
- startBalance.should.be.bignumber.equal(10);
- });
- it('should not accept ERC223 tokens', async function () {
- await expectThrow(token.transferERC223(hasNoTokens.address, 10, '', { from: initialAccount }));
- });
- it('should allow owner to reclaim tokens', async function () {
- const ownerStartBalance = await token.balanceOf(owner);
- await hasNoTokens.reclaimToken(token.address, { from: owner });
- const ownerFinalBalance = await token.balanceOf(owner);
- const finalBalance = await token.balanceOf(hasNoTokens.address);
- finalBalance.should.be.bignumber.equal(0);
- ownerFinalBalance.sub(ownerStartBalance).should.be.bignumber.equal(10);
- });
- it('should allow only owner to reclaim tokens', async function () {
- await expectThrow(
- hasNoTokens.reclaimToken(token.address, { from: anyone })
- );
- });
- });
|