Skip to content

Commit

Permalink
test: update mocks to 02d0831 (#59)
Browse files Browse the repository at this point in the history
  • Loading branch information
bhumitattarde authored Feb 8, 2023
1 parent bf7ae1b commit 832e10c
Show file tree
Hide file tree
Showing 6 changed files with 120 additions and 141 deletions.
55 changes: 54 additions & 1 deletion tests/unit/kite/market.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ TEST(kiteTest, getHistoricalDataTest) {
.From(FROM)
.To(TO));

ASSERT_EQ(DATA.size(), 3000);
ASSERT_EQ(DATA.size(), 6);
kc::historicalData data1 = DATA[0];
EXPECT_EQ(data1.datetime, "2017-12-15T09:15:00+0530");
EXPECT_DOUBLE_EQ(data1.open, 1704.5);
Expand Down Expand Up @@ -304,3 +304,56 @@ TEST(kiteTest, getInstrumentsExchangeTest) {
EXPECT_EQ(instrument2.segment, "NSE");
EXPECT_EQ(instrument2.exchange, "NSE");
}

TEST(kiteTest, getOrderMarginsTest) {
const string JSON =
kc::test::readFile("../tests/mock_responses/order_margins.json");
constexpr double QUANTITY = 1;
constexpr double PRICE = 0;
constexpr double TRIGGER_PRICE = 0;
const string EXCHANGE = "NSE";
const string TRADINGSYMBOL = "INFY";
const string TRANSACTION_TYPE = "BUY";
const string VARIETY = "regular";
const string PRODUCT = "CNC";
const string ORDER_TYPE = "MARKET";

StrictMock<kc::test::mockKite> Kite;
EXPECT_CALL(Kite,
sendReq(utils::http::endpoint { utils::http::METHOD::POST,
"/margins/orders", utils::http::CONTENT_TYPE::JSON },
utils::http::Params { { "",
R"([{"exchange":"NSE","tradingsymbol":"INFY","transaction_type":"BUY","variety":"regular","product":"CNC","order_type":"MARKET","quantity":1.0,"price":0.0,"trigger_price":0.0}])" } },
utils::FmtArgs {}))
.Times(1)
.WillOnce(
Return(ByMove(utils::http::response(utils::http::code::OK, JSON))));

const std::vector<kc::orderMargins> MARGINS =
Kite.getOrderMargins({ kc::orderMarginsParams()
.Quantity(QUANTITY)
.Price(PRICE)
.TriggerPrice(TRIGGER_PRICE)
.Exchange(EXCHANGE)
.Tradingsymbol(TRADINGSYMBOL)
.TransactionType(TRANSACTION_TYPE)
.Variety(VARIETY)
.Product(PRODUCT)
.OrderType(ORDER_TYPE) });

ASSERT_EQ(MARGINS.size(), 1);
kc::orderMargins ordMargins1 = MARGINS[0];
EXPECT_EQ(ordMargins1.type, "equity");
EXPECT_EQ(ordMargins1.tradingSymbol, "INFY");
EXPECT_EQ(ordMargins1.exchange, "NSE");
EXPECT_DOUBLE_EQ(ordMargins1.span, 0);
EXPECT_DOUBLE_EQ(ordMargins1.exposure, 0);
EXPECT_DOUBLE_EQ(ordMargins1.optionPremium, 0);
EXPECT_DOUBLE_EQ(ordMargins1.additional, 0);
EXPECT_DOUBLE_EQ(ordMargins1.bo, 0);
EXPECT_DOUBLE_EQ(ordMargins1.cash, 0);
EXPECT_DOUBLE_EQ(ordMargins1.var, 1498);
EXPECT_DOUBLE_EQ(ordMargins1.pnl.realised, 0);
EXPECT_DOUBLE_EQ(ordMargins1.pnl.unrealised, 0);
EXPECT_DOUBLE_EQ(ordMargins1.total, 1498);
}
164 changes: 45 additions & 119 deletions tests/unit/kite/mf.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ TEST(kiteTest, placeMFOrderTest) {
const string SYMBOL = "INF174K01LS2";
const string TRANSACTION_TYPE = "BUY";
constexpr double AMOUNT = 1000;
const string EXPECTED_ORDER_ID = "123457";
const string EXPECTED_ORDER_ID = "3bb085d1-5038-450e-a807-6543fef6c9ae";

StrictMock<kc::test::mockKite> Kite;
EXPECT_CALL(Kite, sendReq(utils::http::endpoint { utils::http::METHOD::POST,
Expand Down Expand Up @@ -83,7 +83,7 @@ TEST(kiteTest, cancelMFOrderTest) {
const string JSON =
kc::test::readFile("../tests/mock_responses/mf_order_response.json");
const string ORDER_ID = "123457";
const string EXPECTED_ORDER_ID = "123457";
const string EXPECTED_ORDER_ID = "3bb085d1-5038-450e-a807-6543fef6c9ae";
StrictMock<kc::test::mockKite> Kite;
EXPECT_CALL(Kite, sendReq(utils::http::endpoint { utils::http::METHOD::DEL,
"/mf/orders/{0}" },
Expand Down Expand Up @@ -201,69 +201,48 @@ TEST(kiteTest, getMFHoldingsTest) {

const std::vector<kc::mfHolding> HOLDINGS = Kite.getMfHoldings();

ASSERT_EQ(HOLDINGS.size(), 5);
ASSERT_EQ(HOLDINGS.size(), 3);
kc::mfHolding holding1 = HOLDINGS[0];
EXPECT_EQ(holding1.folio, "123123/123");
EXPECT_EQ(holding1.fund, "Kotak Select Focus Fund - Direct Plan");
EXPECT_EQ(holding1.tradingsymbol, "INF174K01LS2");
EXPECT_DOUBLE_EQ(holding1.averagePrice, 30.729);
EXPECT_DOUBLE_EQ(holding1.lastPrice, 33.014);
EXPECT_DOUBLE_EQ(holding1.Pnl, 594.769);
EXPECT_EQ(holding1.lastPriceDate, "2016-11-11");
EXPECT_DOUBLE_EQ(holding1.quantity, 260.337);
EXPECT_EQ(holding1.folio, "3108290884");
EXPECT_EQ(holding1.fund, "INVESCO INDIA TAX PLAN - DIRECT PLAN");
EXPECT_EQ(holding1.tradingsymbol, "INF205K01NT8");
EXPECT_DOUBLE_EQ(holding1.averagePrice, 78.43);
EXPECT_DOUBLE_EQ(holding1.lastPrice, 84.86);
EXPECT_DOUBLE_EQ(holding1.Pnl, 0);
EXPECT_EQ(holding1.lastPriceDate, "");
EXPECT_DOUBLE_EQ(holding1.quantity, 382.488);

kc::mfHolding holding2 = HOLDINGS[1];
EXPECT_EQ(holding2.folio, "385080203");
EXPECT_EQ(holding2.fund, "DSP BlackRock Money Manager Fund");
EXPECT_EQ(holding2.tradingsymbol, "INF740K01QQ3");
EXPECT_DOUBLE_EQ(holding2.averagePrice, 2146.131);
EXPECT_DOUBLE_EQ(holding2.lastPrice, 2277.0708);
EXPECT_DOUBLE_EQ(holding2.Pnl, 61.018);
EXPECT_EQ(holding2.folio, "5102495241");
EXPECT_EQ(holding2.fund, "Indiabulls Liquid Fund - Direct Plan");
EXPECT_EQ(holding2.tradingsymbol, "INF666M01451");
EXPECT_DOUBLE_EQ(holding2.averagePrice, 1874.101138);
EXPECT_DOUBLE_EQ(holding2.lastPrice, 2081.4984);
EXPECT_DOUBLE_EQ(holding2.Pnl, 0);
EXPECT_EQ(holding2.lastPriceDate, "");
EXPECT_DOUBLE_EQ(holding2.quantity, 0.466);
EXPECT_DOUBLE_EQ(holding2.quantity, 1.334);

kc::mfHolding holding3 = HOLDINGS[2];
EXPECT_EQ(holding3.folio, "1052046771");
EXPECT_EQ(holding3.fund, "HDFC TaxSaver - Regular Plan");
EXPECT_EQ(holding3.tradingsymbol, "INF179K01BB8");
EXPECT_DOUBLE_EQ(holding3.averagePrice, 345.849);
EXPECT_DOUBLE_EQ(holding3.lastPrice, 559.081);
EXPECT_DOUBLE_EQ(holding3.Pnl, 61963.074);
EXPECT_EQ(holding3.folio, "9104386836");
EXPECT_EQ(holding3.fund, "BOI AXA TAX ADVANTAGE FUND - DIRECT PLAN");
EXPECT_EQ(holding3.tradingsymbol, "INF761K01884");
EXPECT_DOUBLE_EQ(holding3.averagePrice, 116.7);
EXPECT_DOUBLE_EQ(holding3.lastPrice, 101.13);
EXPECT_DOUBLE_EQ(holding3.Pnl, 0);
EXPECT_EQ(holding3.lastPriceDate, "");
EXPECT_DOUBLE_EQ(holding3.quantity, 290.59);

kc::mfHolding holding4 = HOLDINGS[3];
EXPECT_EQ(holding4.folio, "91022348426");
EXPECT_EQ(holding4.fund, "Axis Long Term Equity Fund");
EXPECT_EQ(holding4.tradingsymbol, "INF846K01131");
EXPECT_DOUBLE_EQ(holding4.averagePrice, 28.779);
EXPECT_DOUBLE_EQ(holding4.lastPrice, 41.3876);
EXPECT_DOUBLE_EQ(holding4.Pnl, 44467.717);
EXPECT_EQ(holding4.lastPriceDate, "");
EXPECT_DOUBLE_EQ(holding4.quantity, 3526.834);

kc::mfHolding holding5 = HOLDINGS[4];
EXPECT_EQ(holding5.folio, "488155267386");
EXPECT_EQ(holding5.fund, "Reliance Money Manager Fund");
EXPECT_EQ(holding5.tradingsymbol, "INF204K01EY0");
EXPECT_DOUBLE_EQ(holding5.averagePrice, 1002.948);
EXPECT_DOUBLE_EQ(holding5.lastPrice, 1007.5645);
EXPECT_DOUBLE_EQ(holding5.Pnl, 2.304);
EXPECT_EQ(holding5.lastPriceDate, "");
EXPECT_DOUBLE_EQ(holding5.quantity, 0.499);
EXPECT_DOUBLE_EQ(holding3.quantity, 257.057);
}

TEST(kiteTest, placeMFSIPTest) {
const string JSON =
kc::test::readFile("../tests/mock_responses/mf_order_response.json");
kc::test::readFile("../tests/mock_responses/mf_sip_place.json");
const string SYMBOL = "INF174K01LS2";
constexpr double AMOUNT = 1000;
const string FREQUENCY = "monthly";
constexpr int INSTALLMENTS = 100;
constexpr int INSTALLMENT_DAY = 12;
const string TAG = "randomtag";
const string ORDER_ID = "123457";
const string SIP_ID = "123457";
const string SIP_ID = "986124545877922";
StrictMock<kc::test::mockKite> Kite;
EXPECT_CALL(Kite,
sendReq(utils::http::endpoint { utils::http::METHOD::POST, "/mf/sips" },
Expand All @@ -288,7 +267,6 @@ TEST(kiteTest, placeMFSIPTest) {
.InstallmentDay(INSTALLMENT_DAY)
.Tag(TAG));

EXPECT_EQ(SIP.orderId, ORDER_ID);
EXPECT_EQ(SIP.sipId, SIP_ID);
}

Expand All @@ -298,7 +276,7 @@ TEST(kiteTest, modifyMFSIPTest) {
constexpr double AMOUNT = 900;
const string SIP_ID = "123457";
const string FREQUENCY = "monthly";
const string EXPECTED_SIP_ID = "123457";
const string EXPECTED_SIP_ID = "3bb085d1-5038-450e-a807-6543fef6c9ae";

StrictMock<kc::test::mockKite> Kite;
EXPECT_CALL(Kite, sendReq(utils::http::endpoint { utils::http::METHOD::PUT,
Expand All @@ -321,9 +299,9 @@ TEST(kiteTest, modifyMFSIPTest) {

TEST(kiteTest, cancelMFSIPTest) {
const string JSON =
kc::test::readFile("../tests/mock_responses/mf_order_response.json");
const string SIP_ID = "123457";
const string EXPECTED_SIP_ID = "123457";
kc::test::readFile("../tests/mock_responses/mf_sip_cancel.json");
const string SIP_ID = "986124545877922";
const string EXPECTED_SIP_ID = "986124545877922";

StrictMock<kc::test::mockKite> Kite;
EXPECT_CALL(Kite, sendReq(utils::http::endpoint { utils::http::METHOD::DEL,
Expand Down Expand Up @@ -371,7 +349,7 @@ TEST(kiteTest, getSIPsTest) {
TEST(kiteTest, getSIPTest) {
const string JSON =
kc::test::readFile("../tests/mock_responses/mf_sip_info.json");
const string SIP_ID = "123457";
const string SIP_ID = "181635213661372";
StrictMock<kc::test::mockKite> Kite;
EXPECT_CALL(Kite, sendReq(utils::http::endpoint { utils::http::METHOD::GET,
"/mf/sips/{0}" },
Expand All @@ -381,73 +359,21 @@ TEST(kiteTest, getSIPTest) {
Return(ByMove(utils::http::response(utils::http::code::OK, JSON))));

const kc::mfSip sip = Kite.getSip(SIP_ID);
EXPECT_EQ(sip.ID, "846479755969168");
EXPECT_EQ(sip.tradingsymbol, "INF179K01VY8");
EXPECT_EQ(sip.fundName, "HDFC Balanced Advantage Fund - Direct Plan");
EXPECT_EQ(sip.dividendType, "idcw");
EXPECT_EQ(sip.ID, "181635213661372");
EXPECT_EQ(sip.tradingsymbol, "INF209KB1ZH2");
EXPECT_EQ(
sip.fundName, "Aditya Birla Sun Life Overnight Fund - Direct Plan");
EXPECT_EQ(sip.dividendType, "growth");
EXPECT_EQ(sip.transactionType, "BUY");
EXPECT_EQ(sip.status, "ACTIVE");
EXPECT_EQ(sip.created, "2021-05-22 10:45:29");
EXPECT_EQ(sip.frequency, "monthly");
EXPECT_DOUBLE_EQ(sip.instalmentAmount, 1000);
EXPECT_EQ(sip.instalments, 9999);
EXPECT_EQ(sip.lastInstalment, "2021-06-10 08:37:11.273142");
EXPECT_EQ(sip.pendingInstalments, 9998);
EXPECT_EQ(sip.instalmentDay, 10);
EXPECT_EQ(sip.tag, "coinandroidsip");
}

TEST(kiteTest, getOrderMarginsTest) {
const string JSON =
kc::test::readFile("../tests/mock_responses/order_margins.json");
constexpr double QUANTITY = 1;
constexpr double PRICE = 0;
constexpr double TRIGGER_PRICE = 0;
const string EXCHANGE = "NSE";
const string TRADINGSYMBOL = "INFY";
const string TRANSACTION_TYPE = "BUY";
const string VARIETY = "regular";
const string PRODUCT = "CNC";
const string ORDER_TYPE = "MARKET";

StrictMock<kc::test::mockKite> Kite;
EXPECT_CALL(Kite,
sendReq(utils::http::endpoint { utils::http::METHOD::POST,
"/margins/orders", utils::http::CONTENT_TYPE::JSON },
utils::http::Params { { "",
R"([{"exchange":"NSE","tradingsymbol":"INFY","transaction_type":"BUY","variety":"regular","product":"CNC","order_type":"MARKET","quantity":1.0,"price":0.0,"trigger_price":0.0}])" } },
utils::FmtArgs {}))
.Times(1)
.WillOnce(
Return(ByMove(utils::http::response(utils::http::code::OK, JSON))));

const std::vector<kc::orderMargins> MARGINS =
Kite.getOrderMargins({ kc::orderMarginsParams()
.Quantity(QUANTITY)
.Price(PRICE)
.TriggerPrice(TRIGGER_PRICE)
.Exchange(EXCHANGE)
.Tradingsymbol(TRADINGSYMBOL)
.TransactionType(TRANSACTION_TYPE)
.Variety(VARIETY)
.Product(PRODUCT)
.OrderType(ORDER_TYPE) });

ASSERT_EQ(MARGINS.size(), 1);
kc::orderMargins ordMargins1 = MARGINS[0];
EXPECT_EQ(ordMargins1.type, "equity");
EXPECT_EQ(ordMargins1.tradingSymbol, "INFY");
EXPECT_EQ(ordMargins1.exchange, "NSE");
EXPECT_DOUBLE_EQ(ordMargins1.span, 0);
EXPECT_DOUBLE_EQ(ordMargins1.exposure, 0);
EXPECT_DOUBLE_EQ(ordMargins1.optionPremium, 0);
EXPECT_DOUBLE_EQ(ordMargins1.additional, 0);
EXPECT_DOUBLE_EQ(ordMargins1.bo, 0);
EXPECT_DOUBLE_EQ(ordMargins1.cash, 0);
EXPECT_DOUBLE_EQ(ordMargins1.var, 961.45);
EXPECT_DOUBLE_EQ(ordMargins1.pnl.realised, 0);
EXPECT_DOUBLE_EQ(ordMargins1.pnl.unrealised, 0);
EXPECT_DOUBLE_EQ(ordMargins1.total, 961.45);
EXPECT_EQ(sip.created, "2022-02-15 13:39:44");
EXPECT_EQ(sip.frequency, "weekly");
EXPECT_DOUBLE_EQ(sip.instalmentAmount, 5000);
EXPECT_EQ(sip.instalments, -1);
EXPECT_EQ(sip.lastInstalment, "2022-02-15 13:39:44");
EXPECT_EQ(sip.pendingInstalments, -1);
EXPECT_EQ(sip.instalmentDay, 0);
EXPECT_EQ(sip.tag, "coiniossip");
}

TEST(kiteTest, getMFInstrumentsTest) {
Expand Down
4 changes: 2 additions & 2 deletions tests/unit/kite/order.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ TEST(kiteTest, ordersTest) {

const std::vector<kc::order> Orders = Kite.orders();

ASSERT_THAT(Orders.size(), 5);
ASSERT_THAT(Orders.size(), 4);
const kc::order order1 = Orders[0];
EXPECT_EQ(order1.accountID, "");
EXPECT_EQ(order1.placedBy, "XXXXXX");
Expand Down Expand Up @@ -199,7 +199,7 @@ TEST(kiteTest, orderHistoryTest) {

const std::vector<kc::order> Orders = Kite.orderHistory(ORDER_ID);

ASSERT_THAT(Orders.size(), 5);
ASSERT_THAT(Orders.size(), 4);
const kc::order order1 = Orders[0];
EXPECT_EQ(order1.accountID, "");
EXPECT_EQ(order1.placedBy, "XXXXXX");
Expand Down
24 changes: 12 additions & 12 deletions tests/unit/kite/portfolio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,25 +56,25 @@ TEST(kiteTest, holdingsTest) {

const std::vector<kc::holding> HOLDINGS = Kite.holdings();

ASSERT_EQ(HOLDINGS.size(), 19);
ASSERT_EQ(HOLDINGS.size(), 2);
kc::holding holding1 = HOLDINGS[0];
EXPECT_EQ(holding1.tradingsymbol, "AXTEL");
EXPECT_EQ(holding1.tradingsymbol, "GOLDBEES");
EXPECT_EQ(holding1.exchange, "BSE");
EXPECT_EQ(holding1.instrumentToken, 134105604);
EXPECT_EQ(holding1.ISIN, "INE767C01012");
EXPECT_EQ(holding1.instrumentToken, 151064324);
EXPECT_EQ(holding1.ISIN, "INF204KB17I5");
EXPECT_EQ(holding1.product, "CNC");
EXPECT_DOUBLE_EQ(holding1.price, 0);
EXPECT_EQ(holding1.quantity, 1);
EXPECT_EQ(holding1.quantity, 2);
EXPECT_EQ(holding1.t1Quantity, 0);
EXPECT_EQ(holding1.realisedQuantity, 1);
EXPECT_EQ(holding1.realisedQuantity, 2);
EXPECT_EQ(holding1.collateralQuantity, 0);
EXPECT_EQ(holding1.collateralType, "");
EXPECT_DOUBLE_EQ(holding1.averagePrice, 261.5);
EXPECT_DOUBLE_EQ(holding1.lastPrice, 313);
EXPECT_DOUBLE_EQ(holding1.closePrice, 308.8);
EXPECT_DOUBLE_EQ(holding1.PnL, 51.5);
EXPECT_DOUBLE_EQ(holding1.dayChange, 4.1999999999999886);
EXPECT_DOUBLE_EQ(holding1.dayChangePercentage, 1.3601036269430016);
EXPECT_DOUBLE_EQ(holding1.averagePrice, 40.67);
EXPECT_DOUBLE_EQ(holding1.lastPrice, 42.47);
EXPECT_DOUBLE_EQ(holding1.closePrice, 42.28);
EXPECT_DOUBLE_EQ(holding1.PnL, 3.5999999999999943);
EXPECT_DOUBLE_EQ(holding1.dayChange, 0.18999999999999773);
EXPECT_DOUBLE_EQ(holding1.dayChangePercentage, 0.44938505203405327);
}

TEST(kiteTest, getPositionsTest) {
Expand Down
12 changes: 6 additions & 6 deletions tests/unit/kite/user.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,17 +59,17 @@ TEST(kiteTest, profile) {
// Expected values
EXPECT_EQ(profile.userID, "AB1234");
EXPECT_EQ(profile.userName, "AxAx Bxx");
EXPECT_EQ(profile.userShortName, "abc");
EXPECT_EQ(profile.userShortName, "AxAx");
EXPECT_EQ(profile.avatarURL, "");
EXPECT_EQ(profile.userType, "investor");
EXPECT_EQ(profile.userType, "individual");
EXPECT_EQ(profile.email, "xxxyyy@gmail.com");
EXPECT_EQ(profile.broker, "ZERODHA");
EXPECT_THAT(profile.products,
::testing::ElementsAre("BO", "CNC", "CO", "MIS", "NRML"));
::testing::ElementsAre("CNC", "NRML", "MIS", "BO", "CO"));
EXPECT_THAT(profile.orderTypes,
::testing::ElementsAre("LIMIT", "MARKET", "SL", "SL-M"));
EXPECT_THAT(profile.exchanges,
::testing::ElementsAre("BSE", "BFO", "NFO", "MCX", "CDS", "NSE"));
::testing::ElementsAre("MARKET", "LIMIT", "SL", "SL-M"));
EXPECT_THAT(profile.exchanges, ::testing::ElementsAre("BFO", "MCX", "NSE",
"CDS", "BSE", "BCD", "MF", "NFO"));
EXPECT_EQ(profile.meta.dematConsent, "physical");
};

Expand Down

0 comments on commit 832e10c

Please # to comment.