40 lines
2.0 KiB
JavaScript
40 lines
2.0 KiB
JavaScript
const MetaCoin = artifacts.require("MetaCoin");
|
|
|
|
contract('MetaCoin', (accounts) => {
|
|
it('should put 10000 MetaCoin in the first account', async () => {
|
|
const metaCoinInstance = await MetaCoin.deployed();
|
|
const balance = await metaCoinInstance.getBalance.call(accounts[0]);
|
|
|
|
assert.equal(balance.valueOf(), 10000, "10000 wasn't in the first account");
|
|
});
|
|
it('should call a function that depends on a linked library', async () => {
|
|
const metaCoinInstance = await MetaCoin.deployed();
|
|
const metaCoinBalance = (await metaCoinInstance.getBalance.call(accounts[0])).toNumber();
|
|
const metaCoinEthBalance = (await metaCoinInstance.getBalanceInEth.call(accounts[0])).toNumber();
|
|
|
|
assert.equal(metaCoinEthBalance, 2 * metaCoinBalance, 'Library function returned unexpected function, linkage may be broken');
|
|
});
|
|
it('should send coin correctly', async () => {
|
|
const metaCoinInstance = await MetaCoin.deployed();
|
|
|
|
// Setup 2 accounts.
|
|
const accountOne = accounts[0];
|
|
const accountTwo = accounts[1];
|
|
|
|
// Get initial balances of first and second account.
|
|
const accountOneStartingBalance = (await metaCoinInstance.getBalance.call(accountOne)).toNumber();
|
|
const accountTwoStartingBalance = (await metaCoinInstance.getBalance.call(accountTwo)).toNumber();
|
|
|
|
// Make transaction from first account to second.
|
|
const amount = 10;
|
|
await metaCoinInstance.sendCoin(accountTwo, amount, { from: accountOne });
|
|
|
|
// Get balances of first and second account after the transactions.
|
|
const accountOneEndingBalance = (await metaCoinInstance.getBalance.call(accountOne)).toNumber();
|
|
const accountTwoEndingBalance = (await metaCoinInstance.getBalance.call(accountTwo)).toNumber();
|
|
|
|
assert.equal(accountOneEndingBalance, accountOneStartingBalance - amount, "Amount wasn't correctly taken from the sender");
|
|
assert.equal(accountTwoEndingBalance, accountTwoStartingBalance + amount, "Amount wasn't correctly sent to the receiver");
|
|
});
|
|
});
|