aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2017-06-08 01:11:21 +0800
committerLeonid Logvinov <logvinov.leon@gmail.com>2017-06-08 01:11:21 +0800
commitedbbf5a215209bcb67052ca6cb83bb40e149d9a7 (patch)
treea67217f7f1c60eb7a745308c97fda2edc69b7733
parentf3d9f554d9916af48038ae810d75aaf3f78676c9 (diff)
downloaddexon-0x-contracts-edbbf5a215209bcb67052ca6cb83bb40e149d9a7.tar
dexon-0x-contracts-edbbf5a215209bcb67052ca6cb83bb40e149d9a7.tar.gz
dexon-0x-contracts-edbbf5a215209bcb67052ca6cb83bb40e149d9a7.tar.bz2
dexon-0x-contracts-edbbf5a215209bcb67052ca6cb83bb40e149d9a7.tar.lz
dexon-0x-contracts-edbbf5a215209bcb67052ca6cb83bb40e149d9a7.tar.xz
dexon-0x-contracts-edbbf5a215209bcb67052ca6cb83bb40e149d9a7.tar.zst
dexon-0x-contracts-edbbf5a215209bcb67052ca6cb83bb40e149d9a7.zip
Add success test
-rw-r--r--test/exchange_wrapper_test.ts30
-rw-r--r--test/utils/fill_scenarios.ts8
2 files changed, 33 insertions, 5 deletions
diff --git a/test/exchange_wrapper_test.ts b/test/exchange_wrapper_test.ts
index b0aa351a4..748816949 100644
--- a/test/exchange_wrapper_test.ts
+++ b/test/exchange_wrapper_test.ts
@@ -16,7 +16,9 @@ import {
ExchangeEvents,
ContractEvent,
DoneCallback,
- ExchangeContractErrs, OrderCancellationRequest,
+ ExchangeContractErrs,
+ OrderCancellationRequest,
+ OrderFillRequest,
} from '../src/types';
import {FillScenarios} from './utils/fill_scenarios';
import {TokenUtils} from './utils/token_utils';
@@ -132,7 +134,6 @@ describe('ExchangeWrapper', () => {
const shouldCheckTransfer = false;
before(async () => {
[coinbase, makerAddress, takerAddress, feeRecipient] = userAddresses;
- tokens = await zeroEx.tokenRegistry.getTokensAsync();
const [makerToken, takerToken] = tokenUtils.getNonProtocolTokens();
makerTokenAddress = makerToken.address;
takerTokenAddress = takerToken.address;
@@ -322,19 +323,42 @@ describe('ExchangeWrapper', () => {
});
});
describe('#batchFillOrderAsync', () => {
+ let signedOrder: SignedOrder;
+ let signedOrderHashHex: string;
let anotherSignedOrder: SignedOrder;
let anotherOrderHashHex: string;
+ let orderFillBatch: OrderFillRequest[];
beforeEach(async () => {
+ signedOrder = await fillScenarios.createFillableSignedOrderAsync(
+ makerTokenAddress, takerTokenAddress, makerAddress, takerAddress, fillableAmount,
+ );
+ signedOrderHashHex = await zeroEx.getOrderHashHexAsync(signedOrder);
anotherSignedOrder = await fillScenarios.createFillableSignedOrderAsync(
makerTokenAddress, takerTokenAddress, makerAddress, takerAddress, fillableAmount,
);
anotherOrderHashHex = await zeroEx.getOrderHashHexAsync(anotherSignedOrder);
+ orderFillBatch = [
+ {
+ signedOrder,
+ takerTokenFillAmount: fillTakerAmount,
+ },
+ {
+ signedOrder: anotherSignedOrder,
+ takerTokenFillAmount: fillTakerAmount,
+ },
+ ];
});
describe('failed batch fills', () => {
});
describe('successful batch fills', () => {
-
+ it('should successfully fill multiple orders', async () => {
+ await zeroEx.exchange.batchFillOrderAsync(orderFillBatch, shouldCheckTransfer, takerAddress);
+ const filledAmount = await zeroEx.exchange.getFilledTakerAmountAsync(signedOrderHashHex);
+ const anotherFilledAmount = await zeroEx.exchange.getFilledTakerAmountAsync(anotherOrderHashHex);
+ expect(filledAmount).to.be.bignumber.equal(fillTakerAmount);
+ expect(anotherFilledAmount).to.be.bignumber.equal(fillTakerAmount);
+ });
});
});
});
diff --git a/test/utils/fill_scenarios.ts b/test/utils/fill_scenarios.ts
index d8d6cd0b9..8ff27ceb1 100644
--- a/test/utils/fill_scenarios.ts
+++ b/test/utils/fill_scenarios.ts
@@ -70,9 +70,13 @@ export class FillScenarios {
makerFillableAmount: BigNumber.BigNumber, takerFillableAmount: BigNumber.BigNumber,
feeRecepient: string, expirationUnixTimestampSec?: BigNumber.BigNumber): Promise<SignedOrder> {
await this.zeroEx.token.transferAsync(makerTokenAddress, this.coinbase, makerAddress, makerFillableAmount);
- await this.zeroEx.token.setProxyAllowanceAsync(makerTokenAddress, makerAddress, makerFillableAmount);
+ const oldMakerAllowance = await this.zeroEx.token.getProxyAllowanceAsync(makerTokenAddress, makerAddress);
+ await this.zeroEx.token.setProxyAllowanceAsync(
+ makerTokenAddress, makerAddress, oldMakerAllowance.plus(makerFillableAmount));
await this.zeroEx.token.transferAsync(takerTokenAddress, this.coinbase, takerAddress, takerFillableAmount);
- await this.zeroEx.token.setProxyAllowanceAsync(takerTokenAddress, takerAddress, takerFillableAmount);
+ const oldTakerAllowance = await this.zeroEx.token.getProxyAllowanceAsync(takerTokenAddress, takerAddress);
+ await this.zeroEx.token.setProxyAllowanceAsync(
+ takerTokenAddress, takerAddress, oldTakerAllowance.plus(takerFillableAmount));
if (!makerFee.isZero()) {
await this.zeroEx.token.transferAsync(this.zrxTokenAddress, this.coinbase, makerAddress, makerFee);