jspurefix
Version:
pure node js fix engine
145 lines • 8.4 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
require("reflect-metadata");
const path = require("path");
const util_1 = require("../../util");
const set_constraint_helper_1 = require("../env/set-constraint-helper");
const root = path.join(__dirname, '../env/data');
let definitions;
let secHelper;
let setHelper;
beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
var _a;
definitions = yield new util_1.DefinitionFactory().getDefinitions((_a = `${root}/fix5-mod.xml`) !== null && _a !== void 0 ? _a : '');
secHelper = new SecDefHelper(definitions);
setHelper = new set_constraint_helper_1.SetConstraintHelper(definitions);
}), 45000);
class SecDefHelper {
constructor(definitions) {
this.definitions = definitions;
}
getSecListGrp() {
return this.definitions.getSet('SecurityList.SecListGrp');
}
getNumRelatedSym() {
var _a, _b;
return (_b = (_a = this.getSecListGrp()) === null || _a === void 0 ? void 0 : _a.getSet('NoRelatedSym')) !== null && _b !== void 0 ? _b : undefined;
}
getSecurityTradingRules() {
var _a, _b;
return (_b = (_a = this.getNumRelatedSym()) === null || _a === void 0 ? void 0 : _a.getSet('SecurityTradingRules')) !== null && _b !== void 0 ? _b : undefined;
}
getBaseTradingRules() {
var _a, _b;
return (_b = (_a = this.getSecurityTradingRules()) === null || _a === void 0 ? void 0 : _a.getSet('BaseTradingRules')) !== null && _b !== void 0 ? _b : undefined;
}
getTickRules() {
var _a, _b;
return (_b = (_a = this.getBaseTradingRules()) === null || _a === void 0 ? void 0 : _a.getSet('TickRules')) !== null && _b !== void 0 ? _b : undefined;
}
getNoTickRules() {
var _a, _b;
return (_b = (_a = this.getTickRules()) === null || _a === void 0 ? void 0 : _a.getSet('NoTickRules')) !== null && _b !== void 0 ? _b : undefined;
}
}
test('check message SecurityList', () => {
var _a;
const securityList = (_a = definitions === null || definitions === void 0 ? void 0 : definitions.getSet('SecurityList')) !== null && _a !== void 0 ? _a : undefined;
expect(securityList).toBeTruthy();
let index = 0;
setHelper.isComponent(securityList, index++, 'StandardHeader', true);
setHelper.isSimple(securityList, index++, 'SecurityReqID', false);
setHelper.isSimple(securityList, index++, 'SecurityResponseID', false);
setHelper.isSimple(securityList, index++, 'SecurityRequestResult', false);
setHelper.isSimple(securityList, index++, 'SecurityListRequestType', false);
setHelper.isSimple(securityList, index++, 'TotNoRelatedSym', false);
setHelper.isSimple(securityList, index++, 'LastFragment', false);
setHelper.isComponent(securityList, index++, 'SecListGrp', false);
setHelper.isSimple(securityList, index++, 'SecurityReportID', false);
setHelper.isSimple(securityList, index++, 'ClearingBusinessDate', false);
setHelper.isSimple(securityList, index++, 'MarketID', false);
setHelper.isSimple(securityList, index++, 'MarketSegmentID', false);
setHelper.isSimple(securityList, index++, 'SecurityListID', false);
setHelper.isSimple(securityList, index++, 'SecurityListRefID', false);
setHelper.isSimple(securityList, index++, 'SecurityListDesc', false);
setHelper.isSimple(securityList, index++, 'EncodedSecurityListDescLen', false);
setHelper.isSimple(securityList, index++, 'EncodedSecurityListDesc', false);
setHelper.isSimple(securityList, index++, 'SecurityListType', false);
setHelper.isSimple(securityList, index++, 'SecurityListTypeSource', false);
setHelper.isSimple(securityList, index++, 'TransactTime', false);
setHelper.isComponent(securityList, index++, 'StandardTrailer', true);
});
test('check SecListGrp', () => {
var _a;
const secListGrp = secHelper.getSecListGrp();
expect(secListGrp).toBeTruthy();
expect((_a = secListGrp === null || secListGrp === void 0 ? void 0 : secListGrp.fields) === null || _a === void 0 ? void 0 : _a.length).toEqual(1);
setHelper.isGroup(secListGrp !== null && secListGrp !== void 0 ? secListGrp : undefined, 0, 'NoRelatedSym', false);
});
test('check NoRelatedSym', () => {
let index = 0;
const noRelatedSym = secHelper.getNumRelatedSym();
setHelper.isComponent(noRelatedSym, index++, 'Instrument', false);
setHelper.isComponent(noRelatedSym, index++, 'InstrumentExtension', false);
setHelper.isComponent(noRelatedSym, index++, 'FinancingDetails', false);
setHelper.isComponent(noRelatedSym, index++, 'UndInstrmtGrp', false);
setHelper.isSimple(noRelatedSym, index++, 'Currency', false);
setHelper.isSimple(noRelatedSym, index++, 'ContractPositionNumber', false);
setHelper.isComponent(noRelatedSym, index++, 'Stipulations', false);
setHelper.isComponent(noRelatedSym, index++, 'InstrmtLegSecListGrp', false);
setHelper.isComponent(noRelatedSym, index++, 'SpreadOrBenchmarkCurveData', false);
setHelper.isComponent(noRelatedSym, index++, 'YieldData', false);
setHelper.isSimple(noRelatedSym, index++, 'Text', false);
setHelper.isSimple(noRelatedSym, index++, 'EncodedTextLen', false);
setHelper.isSimple(noRelatedSym, index++, 'EncodedText', false);
setHelper.isComponent(noRelatedSym, index++, 'SecurityTradingRules', false);
setHelper.isComponent(noRelatedSym, index++, 'StrikeRules', false);
setHelper.isSimple(noRelatedSym, index++, 'RelSymTransactTime', false);
});
test('check SecurityTradingRules', () => {
let index = 0;
const securityTradingRules = secHelper.getSecurityTradingRules();
setHelper.isComponent(securityTradingRules, index++, 'BaseTradingRules', false);
setHelper.isComponent(securityTradingRules, index++, 'TradingSessionRulesGrp', false);
setHelper.isComponent(securityTradingRules, index++, 'NestedInstrumentAttribute', false);
});
test('check BaseTradingRules', () => {
let index = 0;
const securityTradingRules = secHelper.getBaseTradingRules();
setHelper.isComponent(securityTradingRules, index++, 'TickRules', false);
setHelper.isComponent(securityTradingRules, index++, 'LotTypeRules', false);
setHelper.isComponent(securityTradingRules, index++, 'PriceLimits', false);
setHelper.isSimple(securityTradingRules, index++, 'ExpirationCycle', false);
setHelper.isSimple(securityTradingRules, index++, 'MinTradeVol', false);
setHelper.isSimple(securityTradingRules, index++, 'MaxTradeVol', false);
setHelper.isSimple(securityTradingRules, index++, 'MaxPriceVariation', false);
setHelper.isSimple(securityTradingRules, index++, 'ImpliedMarketIndicator', false);
setHelper.isSimple(securityTradingRules, index++, 'TradingCurrency', false);
setHelper.isSimple(securityTradingRules, index++, 'RoundLot', false);
setHelper.isSimple(securityTradingRules, index++, 'MultilegModel', false);
setHelper.isSimple(securityTradingRules, index++, 'MultilegPriceMethod', false);
setHelper.isSimple(securityTradingRules, index++, 'PriceType', false);
});
test('check TickRules', () => {
let index = 0;
const tickRules = secHelper.getTickRules();
setHelper.isGroup(tickRules, index++, 'NoTickRules', false);
});
test('check NoTickRules', () => {
let index = 0;
const noTickRules = secHelper.getNoTickRules();
setHelper.isSimple(noTickRules, index++, 'StartTickPriceRange', false);
setHelper.isSimple(noTickRules, index++, 'EndTickPriceRange', false);
setHelper.isSimple(noTickRules, index++, 'TickIncrement', false);
setHelper.isSimple(noTickRules, index++, 'TickRuleType', false);
});
//# sourceMappingURL=qf-50sp0-dict.test.js.map