import Ġcom . se ans oper . bat il . bro kers . e trade . api . Margin Level Ċ import Ġcom . se ans oper . bat il . bro kers . e trade . api . Order ActionType Ċ import Ġcom . se ans oper . bat il . bro kers . e trade . api . Order Price Type Ċ import Ġcom . se ans oper . bat il . bro kers . e trade . api . Order Term Ċ import Ġcom . se ans oper . bat il . bro kers . e trade . api . Security Type Ċ import Ġcom . se ans oper . bat il . bro kers . e trade . services . Orders Ċ import Ġcom . se ans oper . bat il . bro kers . e trade . services . order Preview . buy Equ ity Limit Ċ import Ġcom . se ans oper . bat il . bro kers . e trade . services . order Preview . buy Equ ity Market Ċ import Ġcom . se ans oper . bat il . bro kers . e trade . services . order Preview . sell Equ ity Limit Ċ import Ġcom . se ans oper . bat il . bro kers . e trade . services . order Preview . sell Equ ity Market Ċ import Ġio . kot lint est . matchers . types . shouldBe Null Ċ import Ġio . kot lint est . matchers . types . should Not BeNull Ċ import Ġio . kot lint est . shouldBe Ċ import Ġio . kot lint est . specs . String Spec Ċ import Ġtest Helper . Mock Helper . create Server Ċ import Ġtest Helper . Mock Helper . mock Session Ċ import Ġtest Helper . Path Helper . random String Ċ import Ġjava . nio . file . Paths Ċ Ċ class ĠEqu ities Test Ġ: ĠString Spec ({ ĊĠĠĠ Ġval ĠaccountId Key Ġ= Ġrandom String ( 6 ) ĊĠĠĠ Ġval Ġsymbol Ġ= Ġ" RI OT " ĊĠĠĠ Ġval Ġlimit Price Ġ= Ġ 2 7 f ĊĊĠĠĠ Ġ" create Ġpreview Ġto Ġbuy Ġequ ities Ġlimit " Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= ĠPaths . get (" bro kers / e trade / orders / create Preview / equ ities / buy _ limit . json ") ĊĊĠĠĠĠĠĠĠ Ġcreate Server ( path ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquantity Ġ= Ġ 5 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġservice Ġ= ĠOrders ( mock Session (), ĠbaseUrl Ġ= Ġit . url (". "). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġbuy Equ ity Limit ( symbol , Ġlimit Price , Ġquantity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġservice . create Preview ( accountId Key , Ġrequest ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . should Not BeNull () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorder Ġ= Ġdata . orders . first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder . messages . shouldBe Null () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder . order Term . shouldBe ( Order Term . GO OD _ FOR _ DAY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder . price Type . shouldBe ( Order Price Type . LIMIT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder . limit Price . shouldBe ( limit Price ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinstrument Ġ= Ġdata . orders . first (). instrument s !!. first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstrument . order Action . shouldBe ( Order ActionType . BU Y ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstrument . quantity !!. toInt (). shouldBe ( quantity ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproduct Ġ= Ġinstrument . product !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct . symbol . shouldBe ( symbol ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct . security Type . shouldBe ( Security Type . EQ ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . margin Level . shouldBe ( Margin Level . M ARGIN _ TR ADING _ ALLOWED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . margin !!. margin able !!. current Buy ing Power . shouldBe ( 2 7 8 2 4 . 2 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . take Request (). path . shouldBe ("/ v 1 / accounts /$ accountId Key / orders / preview ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" create Ġpreview Ġto Ġsell Ġequ ities Ġlimit " Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= ĠPaths . get (" bro kers / e trade / orders / create Preview / equ ities / sell _ limit . json ") ĊĊĠĠĠĠĠĠĠ Ġcreate Server ( path ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquantity Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġservice Ġ= ĠOrders ( mock Session (), ĠbaseUrl Ġ= Ġit . url (". "). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġsell Equ ity Limit ( symbol , Ġlimit Price , Ġquantity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġservice . create Preview ( accountId Key , Ġrequest ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . should Not BeNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . margin Level . shouldBe ( Margin Level . M ARGIN _ TR ADING _ ALLOWED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . margin !!. margin able !!. current Buy ing Power . shouldBe ( 3 4 5 9 5 . 1 7 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorder Ġ= Ġdata . orders . first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder . price Type . shouldBe ( Order Price Type . LIMIT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder . limit Price . shouldBe ( limit Price ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder . estimated Total Amount . shouldBe (- 5 3 9 9 . 9 4 8 6 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinstrument Ġ= Ġdata . orders . first (). instrument s !!. first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstrument . order Action . shouldBe ( Order ActionType . SE LL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstrument . quantity !!. toInt (). shouldBe ( quantity ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproduct Ġ= Ġinstrument . product !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct . symbol . shouldBe ( symbol ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct . security Type . shouldBe ( Security Type . EQ ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . take Request (). path . shouldBe ("/ v 1 / accounts /$ accountId Key / orders / preview ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" create Ġpreview Ġto Ġbuy Ġequ ities Ġmarket " Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= ĠPaths . get (" bro kers / e trade / orders / create Preview / equ ities / buy _ market . json ") ĊĊĠĠĠĠĠĠĠ Ġcreate Server ( path ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstop Price Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquantity Ġ= Ġ 5 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġservice Ġ= ĠOrders ( mock Session (), ĠbaseUrl Ġ= Ġit . url (". "). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġbuy Equ ity Market ( symbol , Ġlimit Price , Ġstop Price , Ġquantity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġservice . create Preview ( accountId Key , Ġrequest ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . should Not BeNull () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorder Ġ= Ġdata . orders . first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder . messages . shouldBe Null () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder . order Term . shouldBe ( Order Term . GO OD _ FOR _ DAY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder . price Type . shouldBe ( Order Price Type . MARK ET ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder . limit Price . shouldBe ( 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder . estimated Total Amount . shouldBe ( 1 3 9 0 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinstrument Ġ= Ġdata . orders . first (). instrument s !!. first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstrument . order Action . shouldBe ( Order ActionType . BU Y ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstrument . quantity !!. toInt (). shouldBe ( quantity ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproduct Ġ= Ġinstrument . product !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct . symbol . shouldBe ( symbol ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct . security Type . shouldBe ( Security Type . EQ ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . margin Level . shouldBe ( Margin Level . M ARGIN _ TR ADING _ ALLOWED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . margin !!. margin able !!. current Buy ing Power . shouldBe ( 2 7 8 2 4 . 2 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . take Request (). path . shouldBe ("/ v 1 / accounts /$ accountId Key / orders / preview ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" create Ġpreview Ġto Ġsell Ġequ ities Ġmarket " Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= ĠPaths . get (" bro kers / e trade / orders / create Preview / equ ities / sell _ market . json ") ĊĊĠĠĠĠĠĠĠ Ġcreate Server ( path ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquantity Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġservice Ġ= ĠOrders ( mock Session (), ĠbaseUrl Ġ= Ġit . url (". "). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġsell Equ ity Market ( symbol , Ġlimit Price , Ġ 0 f , Ġquantity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġservice . create Preview ( accountId Key , Ġrequest ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . should Not BeNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . margin Level . shouldBe ( Margin Level . M ARGIN _ TR ADING _ ALLOWED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . margin !!. margin able !!. current Buy ing Power . shouldBe ( 3 4 0 9 8 . 8 9 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorder Ġ= Ġdata . orders . first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder . price Type . shouldBe ( Order Price Type . MARK ET ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder . limit Price . shouldBe ( 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder . estimated Total Amount . shouldBe (- 5 5 0 9 . 9 4 8 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinstrument Ġ= Ġdata . orders . first (). instrument s !!. first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstrument . order Action . shouldBe ( Order ActionType . SE LL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstrument . quantity !!. toInt (). shouldBe ( quantity ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproduct Ġ= Ġinstrument . product !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct . symbol . shouldBe ( symbol ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct . security Type . shouldBe ( Security Type . EQ ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . take Request (). path . shouldBe ("/ v 1 / accounts /$ accountId Key / orders / preview ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }) Ċ