From 22bc1fb21edb4eb3f948920d15a53869b789a312 Mon Sep 17 00:00:00 2001 From: Greg Hysen Date: Fri, 15 Mar 2019 14:44:32 -0700 Subject: [PATCH] additional zero outcome tests --- contracts/asset-proxy/test/erc1155_proxy.ts | 50 ++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/contracts/asset-proxy/test/erc1155_proxy.ts b/contracts/asset-proxy/test/erc1155_proxy.ts index 3959a71fc2..7931fdfda0 100644 --- a/contracts/asset-proxy/test/erc1155_proxy.ts +++ b/contracts/asset-proxy/test/erc1155_proxy.ts @@ -478,7 +478,31 @@ describe('ERC1155Proxy', () => { ]; await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances); }); - it('should transfer nothing if amount=0', async () => { + it('should transfer nothing if value is zero', async () => { + // setup test parameters + const tokenHolders = [spender, receiver]; + const tokensToTransfer = fungibleTokens.slice(0, 1); + const valuesToTransfer = [new BigNumber(0)]; + const valueMultiplier = valueMultiplierSmall; + // check balances before transfer + const expectedInitialBalances = [spenderInitialFungibleBalance, receiverInitialFungibleBalance]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedInitialBalances); + // execute transfer + await erc1155ProxyWrapper.transferFromAsync( + spender, + receiver, + erc1155Contract.address, + tokensToTransfer, + valuesToTransfer, + valueMultiplier, + receiverCallbackData, + authorized, + ); + // check balances after transfer + const expectedFinalBalances = [spenderInitialFungibleBalance, receiverInitialFungibleBalance]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances); + }); + it('should transfer nothing if value multiplier is zero', async () => { // setup test parameters const tokenHolders = [spender, receiver]; const tokensToTransfer = fungibleTokens.slice(0, 1); @@ -502,6 +526,30 @@ describe('ERC1155Proxy', () => { const expectedFinalBalances = [spenderInitialFungibleBalance, receiverInitialFungibleBalance]; await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances); }); + it('should transfer nothing if there are no tokens in asset data', async () => { + // setup test parameters + const tokenHolders = [spender, receiver]; + const tokensToTransfer: BigNumber[] = []; + const valuesToTransfer: BigNumber[] = []; + const valueMultiplier = valueMultiplierSmall; + // check balances before transfer + const expectedInitialBalances = [spenderInitialFungibleBalance, receiverInitialFungibleBalance]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedInitialBalances); + // execute transfer + await erc1155ProxyWrapper.transferFromAsync( + spender, + receiver, + erc1155Contract.address, + tokensToTransfer, + valuesToTransfer, + valueMultiplier, + receiverCallbackData, + authorized, + ); + // check balances after transfer + const expectedFinalBalances = [spenderInitialFungibleBalance, receiverInitialFungibleBalance]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances); + }); it('should propagate revert reason from erc1155 contract failure', async () => { // disable transfers const shouldRejectTransfer = true;