diff options
author | Brandon Millman <brandon.millman@gmail.com> | 2018-08-03 04:22:04 +0800 |
---|---|---|
committer | Brandon Millman <brandon.millman@gmail.com> | 2018-08-06 06:33:52 +0800 |
commit | 09c0fc94fc91134acfdee1017d7a50e2047b019b (patch) | |
tree | 4ba69cf8e4777fd4411ffbfe96545883a358c662 /packages/order-utils/test/utils | |
parent | e5d65b585a2b0a159f50320eaf5bfec05a869478 (diff) | |
download | dexon-sol-tools-09c0fc94fc91134acfdee1017d7a50e2047b019b.tar dexon-sol-tools-09c0fc94fc91134acfdee1017d7a50e2047b019b.tar.gz dexon-sol-tools-09c0fc94fc91134acfdee1017d7a50e2047b019b.tar.bz2 dexon-sol-tools-09c0fc94fc91134acfdee1017d7a50e2047b019b.tar.lz dexon-sol-tools-09c0fc94fc91134acfdee1017d7a50e2047b019b.tar.xz dexon-sol-tools-09c0fc94fc91134acfdee1017d7a50e2047b019b.tar.zst dexon-sol-tools-09c0fc94fc91134acfdee1017d7a50e2047b019b.zip |
Implement first round of tests for findOrdersThatCoverMakerAssetFillAmount
Diffstat (limited to 'packages/order-utils/test/utils')
-rw-r--r-- | packages/order-utils/test/utils/test_order_factory.ts | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/packages/order-utils/test/utils/test_order_factory.ts b/packages/order-utils/test/utils/test_order_factory.ts new file mode 100644 index 000000000..2c5d8cf61 --- /dev/null +++ b/packages/order-utils/test/utils/test_order_factory.ts @@ -0,0 +1,63 @@ +import { Order, OrderRelevantState, SignedOrder } from '@0xproject/types'; +import { BigNumber } from '@0xproject/utils'; +import * as _ from 'lodash'; + +import { constants, orderFactory } from '../../src'; + +const BASE_TEST_ORDER: Order = orderFactory.createOrder( + constants.NULL_ADDRESS, + constants.NULL_ADDRESS, + constants.NULL_ADDRESS, + constants.ZERO_AMOUNT, + constants.ZERO_AMOUNT, + constants.ZERO_AMOUNT, + constants.NULL_BYTES, + constants.ZERO_AMOUNT, + constants.NULL_BYTES, + constants.NULL_ADDRESS, + constants.NULL_ADDRESS, +); +const BASE_TEST_SIGNED_ORDER: SignedOrder = { + ...BASE_TEST_ORDER, + signature: constants.NULL_BYTES, +}; +const BASE_TEST_ORDER_RELEVANT_STATE: OrderRelevantState = { + makerBalance: constants.ZERO_AMOUNT, + makerProxyAllowance: constants.ZERO_AMOUNT, + makerFeeBalance: constants.ZERO_AMOUNT, + makerFeeProxyAllowance: constants.ZERO_AMOUNT, + filledTakerAssetAmount: constants.ZERO_AMOUNT, + remainingFillableMakerAssetAmount: constants.ZERO_AMOUNT, + remainingFillableTakerAssetAmount: constants.ZERO_AMOUNT, +}; + +export const testOrderFactory = { + generateTestSignedOrder(partialOrder: Partial<SignedOrder>): SignedOrder { + return transformObject(BASE_TEST_SIGNED_ORDER, partialOrder); + }, + generateTestSignedOrders(partialOrder: Partial<SignedOrder>, numOrders: number): SignedOrder[] { + const baseTestOrders = generateArrayOfInput(BASE_TEST_SIGNED_ORDER, numOrders); + return transformObjects(baseTestOrders, partialOrder); + }, + generateTestOrderRelevantState(partialOrderRelevantState: Partial<OrderRelevantState>): OrderRelevantState { + return transformObject(BASE_TEST_ORDER_RELEVANT_STATE, partialOrderRelevantState); + }, + generateTestOrderRelevantStates( + partialOrderRelevantState: Partial<OrderRelevantState>, + numOrderStates: number, + ): OrderRelevantState[] { + const baseTestOrderStates = generateArrayOfInput(BASE_TEST_ORDER_RELEVANT_STATE, numOrderStates); + return transformObjects(baseTestOrderStates, partialOrderRelevantState); + }, +}; + +function generateArrayOfInput<T>(input: T, rangeLength: number): T[] { + return _.map(_.range(rangeLength), () => input); +} +function transformObject<T>(input: T, transformation: Partial<T>): T { + const copy = _.cloneDeep(input); + return _.assign(copy, transformation); +} +function transformObjects<T>(inputs: T[], transformation: Partial<T>): T[] { + return _.map(inputs, input => transformObject(input, transformation)); +} |