123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- 'use strict';
- import expectThrow from './helpers/expectThrow';
- import toPromise from './helpers/toPromise';
- const HasNoEther = artifacts.require('../contracts/lifecycle/HasNoEther.sol');
- const HasNoEtherTest = artifacts.require('../helpers/HasNoEtherTest.sol');
- const ForceEther = artifacts.require('../helpers/ForceEther.sol');
- contract('HasNoEther', function(accounts) {
- const amount = web3.toWei('1', 'ether');
- it('should be constructorable', async function() {
- let hasNoEther = await HasNoEtherTest.new();
- });
- it('should not accept ether in constructor', async function() {
- await expectThrow(HasNoEtherTest.new({value: amount}));
- });
- it('should not accept ether', async function() {
- let hasNoEther = await HasNoEtherTest.new();
- await expectThrow(
- toPromise(web3.eth.sendTransaction)({
- from: accounts[1],
- to: hasNoEther.address,
- value: amount,
- }),
- );
- });
- it('should allow owner to reclaim ether', async function() {
- // Create contract
- let hasNoEther = await HasNoEtherTest.new();
- const startBalance = await web3.eth.getBalance(hasNoEther.address);
- assert.equal(startBalance, 0);
- // Force ether into it
- await ForceEther.new(hasNoEther.address, {value: amount});
- const forcedBalance = await web3.eth.getBalance(hasNoEther.address);
- assert.equal(forcedBalance, amount);
- // Reclaim
- const ownerStartBalance = await web3.eth.getBalance(accounts[0]);
- await hasNoEther.reclaimEther();
- const ownerFinalBalance = await web3.eth.getBalance(accounts[0]);
- const finalBalance = await web3.eth.getBalance(hasNoEther.address);
- assert.equal(finalBalance, 0);
- assert.isAbove(ownerFinalBalance, ownerStartBalance);
- });
- it('should allow only owner to reclaim ether', async function() {
- // Create contract
- let hasNoEther = await HasNoEtherTest.new({from: accounts[0]});
- // Force ether into it
- await ForceEther.new(hasNoEther.address, {value: amount});
- const forcedBalance = await web3.eth.getBalance(hasNoEther.address);
- assert.equal(forcedBalance, amount);
- // Reclaim
- await expectThrow(hasNoEther.reclaimEther({from: accounts[1]}));
- });
- });
|