146 lines
4.8 KiB
JavaScript
146 lines
4.8 KiB
JavaScript
var assert = require("chai").assert
|
|
const { orderMessage } = require("../index")
|
|
const {
|
|
MESSAGE_ENTITY, MESSAGE_TYPE, ORDER_CREATOR, ORDER_TYPE, ORDER_OWNER,
|
|
ORDER_DIRECTION, ORDER_STATUS, ORDER_EXIT_OUTCOME, ORDER_MARGIN_ENABLED,
|
|
createMessage, getMessage, getExpandedMessage, createMessageFromObject
|
|
} = orderMessage.newOrderMessage()
|
|
|
|
describe("SimulatorExecutor ", function () {
|
|
describe("order Message Test", function () {
|
|
it("testCreateMessage", function () {
|
|
let expected = JSON.stringify([
|
|
90,
|
|
"EN",
|
|
"EX",
|
|
"ORD",
|
|
1553850096262,
|
|
[
|
|
1,
|
|
"S",
|
|
155385234234,
|
|
"U",
|
|
"Poloniex",
|
|
"BTC/USDT",
|
|
0,
|
|
"L",
|
|
6286.707,
|
|
6381.007,
|
|
0,
|
|
"Sell",
|
|
0,
|
|
"SIG",
|
|
0,
|
|
"SL"
|
|
]
|
|
])
|
|
|
|
let message = createMessage(90, MESSAGE_ENTITY.SimulationEngine, MESSAGE_ENTITY.SimulationExecutor,
|
|
MESSAGE_TYPE.Order, 1553850096262, 1, ORDER_CREATOR.SimulationEngine, 155385234234, ORDER_OWNER.User,
|
|
"Poloniex", "BTC/USDT", 0, ORDER_TYPE.Limit, 6286.707, 6381.007, ORDER_MARGIN_ENABLED.False, ORDER_DIRECTION.Sell, 0,
|
|
ORDER_STATUS.Signaled, 0, ORDER_EXIT_OUTCOME.StopLoss)
|
|
|
|
let result = JSON.stringify(message)
|
|
assert.equal(result, expected)
|
|
})
|
|
it("testGetMessage", function () {
|
|
let fileContent = '[90, "EN", "EX", "ORD", 1553850096262, [1, "S", 155385234234, "U", "Poloniex", "BTC/USDT", 0, "L", 6286.707, 6381.007, 0, "Sell", 0, "SIG", 0, "SL"]]'
|
|
|
|
let expected = JSON.stringify({
|
|
"id": 90,
|
|
"from": "EN",
|
|
"to": "EX",
|
|
"messageType": "ORD",
|
|
"dateTime": 1553850096262,
|
|
"order": {
|
|
"id": 1,
|
|
"creator": "S",
|
|
"dateTime": 155385234234,
|
|
"owner": "U",
|
|
"exchange": "Poloniex",
|
|
"market": "BTC/USDT",
|
|
"marginEnabled": 0,
|
|
"type": "L",
|
|
"rate": 6286.707,
|
|
"stop": 6381.007,
|
|
"takeProfit": 0,
|
|
"direction": "Sell",
|
|
"size": 0,
|
|
"status": "SIG",
|
|
"sizeFilled": 0,
|
|
"exitOutcome": "SL"
|
|
}
|
|
})
|
|
|
|
let message = getMessage(fileContent)
|
|
let result = JSON.stringify(message)
|
|
assert.equal(result, expected)
|
|
})
|
|
it("testGetExpandedMessage", function () {
|
|
let fileContent = '[90, "EN", "EX", "ORD", 1553850096262, [1, "S", 155385234234, "U", "Poloniex", "BTC/USDT", 0, "L", 6286.707, 6381.007, 0, "Sell", 0, "SIG", 0, "SL"]]'
|
|
|
|
let expected = JSON.stringify({
|
|
"id": 90,
|
|
"from": "Simulation Engine",
|
|
"to": "Simulation Executor",
|
|
"messageType": "Order",
|
|
"dateTime": 1553850096262,
|
|
"order": {
|
|
"id": 1,
|
|
"creator": "Simulation Engine",
|
|
"dateTime": 155385234234,
|
|
"owner": "User",
|
|
"exchange": "Poloniex",
|
|
"market": "BTC/USDT",
|
|
"marginEnabled": "False",
|
|
"type": "Limit",
|
|
"rate": 6286.707,
|
|
"stop": 6381.007,
|
|
"takeProfit": 0,
|
|
"direction": "Sell",
|
|
"size": 0,
|
|
"status": "Signaled",
|
|
"sizeFilled": 0,
|
|
"exitOutcome": "Stop Loss"
|
|
}
|
|
})
|
|
|
|
let expandedMessage = getExpandedMessage(fileContent)
|
|
let result = JSON.stringify(expandedMessage)
|
|
assert.equal(result, expected)
|
|
})
|
|
it("createMessageFromObject", function () {
|
|
let expected = JSON.stringify(JSON.parse('[136, "EN", "EX", "ORD", 1553850096262, [1, "S", 155385234234, "U", "Poloniex", "BTC/USDT", 0, "L", 6286.707, 6381.007, 0, "Sell", 0, "SIG", 0, "SL"]]'))
|
|
|
|
let newMessage = {}
|
|
newMessage.id = 136
|
|
newMessage.from = MESSAGE_ENTITY.SimulationEngine
|
|
newMessage.to = MESSAGE_ENTITY.SimulationExecutor
|
|
newMessage.messageType = MESSAGE_TYPE.Order
|
|
newMessage.dateTime = 1553850096262
|
|
|
|
newMessage.order = {}
|
|
newMessage.order.id = 1
|
|
newMessage.order.creator = ORDER_CREATOR.SimulationEngine
|
|
newMessage.order.dateTime = 155385234234
|
|
newMessage.order.owner = ORDER_OWNER.User
|
|
newMessage.order.exchange = "Poloniex"
|
|
newMessage.order.market = "BTC/USDT"
|
|
newMessage.order.marginEnabled = ORDER_MARGIN_ENABLED.False
|
|
newMessage.order.type = ORDER_TYPE.Limit
|
|
newMessage.order.rate = 6286.707
|
|
newMessage.order.stop = 6381.007
|
|
newMessage.order.takeProfit = 0
|
|
newMessage.order.direction = ORDER_DIRECTION.Sell
|
|
newMessage.order.size = 0
|
|
newMessage.order.status = ORDER_STATUS.Signaled
|
|
newMessage.order.sizeFilled = 0
|
|
newMessage.order.exitOutcome = ORDER_EXIT_OUTCOME.StopLoss
|
|
|
|
let messageFromObject = createMessageFromObject(newMessage)
|
|
let result = JSON.stringify(messageFromObject)
|
|
assert.equal(result, expected)
|
|
})
|
|
})
|
|
})
|