1 #include <gmock/gmock.h>
2 #include <gtest/gtest.h>
3 #include <statslog_nfc.h>
4 
5 #include "NfcTag.h"
6 #include "nfc_api.h"
7 
8 class MockNfcStatsUtil : public NfcStatsUtil {
9  public:
10   MOCK_METHOD(void, writeNfcStatsTagTypeOccurred, (int));
11 };
12 
13 class NfcTagTest : public ::testing::Test {
14  protected:
15   NfcTag mNfcTag;
16 
17  public:
setNfcStatsUtil(NfcStatsUtil * nfcStatsUtil)18   void setNfcStatsUtil(NfcStatsUtil* nfcStatsUtil) {
19     mNfcTag.mNfcStatsUtil = nfcStatsUtil;
20   }
21 };
22 
TEST_F(NfcTagTest,NfcTagTypeOccurredType5)23 TEST_F(NfcTagTest, NfcTagTypeOccurredType5) {
24   MockNfcStatsUtil* mockUtil = new MockNfcStatsUtil();
25 
26   EXPECT_CALL(*mockUtil,
27               writeNfcStatsTagTypeOccurred(
28                   nfc::stats::NFC_TAG_TYPE_OCCURRED__TYPE__TAG_TYPE_5))
29       .Times(1);
30 
31   setNfcStatsUtil(mockUtil);
32 
33   tNFA_ACTIVATED mockActivated;
34   mockActivated.activate_ntf.rf_disc_id = 1;
35   mockActivated.activate_ntf.protocol = NFC_PROTOCOL_T5T;
36   mockActivated.activate_ntf.rf_tech_param.mode = NCI_DISCOVERY_TYPE_POLL_V;
37   mockActivated.activate_ntf.intf_param.type = NCI_INTERFACE_FRAME;
38 
39   tNFA_CONN_EVT_DATA mockData;
40   mockData.activated = mockActivated;
41 
42   mNfcTag.connectionEventHandler(NFA_ACTIVATED_EVT, &mockData);
43 
44   delete mockUtil;
45 }
46