123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- #include "SpHelper.h"
- #include<gtest/gtest.h>
- wchar_t hello[] = L"Hello, World!\n";
- TEST(SpBufferTest, WideCharTest)
- {
- std::wcout << hello << std::endl;
- std::wcout << L"sizeof(wchar_t): " << sizeof(wchar_t) << std::endl;
- }
- TEST(SpBufferTest, TestSimpleStringA)
- {
- CSimpleStringA str("Hello world 12345678 90");
- SpBuffer buffer;
- buffer.OpenWrite();
- buffer = buffer & str;
- CAutoBuffer buf = buffer.ToBuffer();
- buffer.Close();
- SpBuffer bufToRead;
- ASSERT_TRUE(bufToRead.OpenRead((const char*)&buf[0], buf.GetCount()));
- ASSERT_TRUE(bufToRead.IsRead());
- ASSERT_FALSE(bufToRead.IsWrite());
- CSimpleStringA out;
- bufToRead& out;
- std::cout << "print:" << out.GetData() << std::endl;
- ASSERT_TRUE(out.Compare(str) == 0);
- }
- #ifndef _WIN32
- TEST(SpBufferTest, TestSimpleStringWC)
- {
- CSimpleStringW str(L"Hello world 12345678 90");
- SpBuffer buffer;
- buffer.OpenWrite();
- buffer = buffer & str;
- CAutoBuffer buf = buffer.ToBuffer();
- buffer.Close();
- SpBuffer bufToRead;
- ASSERT_TRUE(bufToRead.OpenRead((const char*)&buf[0], buf.GetCount()));
- ASSERT_TRUE(bufToRead.IsRead());
- ASSERT_FALSE(bufToRead.IsWrite());
- CSimpleStringW out;
- bufToRead& out;
- ASSERT_TRUE(out.Compare(str) == 0);
- }
- TEST(SpBufferTest, TestSimpleString16bitTest)
- {
- CSimpleStringW str2(L"Hello world 12345678 90");
- CSimpleStringA str1("Hello world 12345678 90");
-
- WCHAR test[] = { 'H','e','l','l','o',' ','w','o','r','l','d',' ','1','2','3','4','5','6','7','8',' ','9','0' };
- CSimpleString16Bit str(test);
- std::cout << "str length: " << str.GetLength() << std::endl;
- ASSERT_TRUE(str.GetLength() == str1.GetLength());
- SpBuffer buffer;
- buffer.OpenWrite();
- buffer = buffer & str;
- CAutoBuffer buf = buffer.ToBuffer();
- ASSERT_TRUE(buf.GetCount() != 0);
- buffer.Close();
- SpBuffer bufToRead;
- ASSERT_TRUE(bufToRead.OpenRead((const char*)&buf[0], buf.GetCount()));
- ASSERT_TRUE(bufToRead.IsRead());
- ASSERT_FALSE(bufToRead.IsWrite());
- CSimpleString16Bit out;
- bufToRead& out;
- std::cout << "out length: " << out.GetLength() << std::endl;
- CSimpleStringW out1 = CSimpleString16Bit2W(out);
- CSimpleStringA out2 = CSimpleString16Bit2A(out);
- ASSERT_TRUE(out.Compare(str) == 0);
- ASSERT_TRUE(out1.Compare(str2) == 0);
- ASSERT_TRUE(out2.Compare(str1) == 0);
- }
- #endif //NOT _WIN32
- struct SampleService_TwoWayFuncNotOverlap_Ans
- {
- CSimpleStringA ans_context;
- void Serialize(SpBuffer& Buf)
- {
- auto& buf = Buf & ans_context;
- }
- };
- struct GUIConsoleService_SyncMaterialCount_Info
- {
- CSimpleStringA strDeviceNo;
- CSimpleStringW strDevice;
- CSimpleStringA strEmpty;
- CSimpleStringW strEmptyW;
- CSimpleString16Bit strEmptyBit;
- unsigned int dwCardBoxNum;
- CBlob blobInstance2;
- CBlob blobInstance;
- CAutoArray<CBlob> blobInstanceList;
- CAutoArray<bool> arrMaintainFlag;
- CAutoArray<CSimpleStringA> arrMaintainer;
- CAutoArray<unsigned int> arrMaintainTime;
- CAutoArray<CSimpleStringA> arrCardBoxNo;
- CAutoArray<CSimpleStringA> arrPsbCode;
- CAutoArray<CSimpleStringA> arrPsbName;
- CAutoArray<CSimpleString16Bit> arrPsbName2;
- CAutoArray<unsigned int> arrCardInit;
- CAutoArray<unsigned int> arrCardRemains;
- CAutoArray<unsigned int> arrCardIssued;
- CAutoArray<unsigned int> arrCardMixed;
- CAutoArray<unsigned int> arrCardPercent;
- void Serialize(SpBuffer& Buf)
- {
- auto& buf = Buf & strDeviceNo & strEmpty & strEmptyW & strEmptyBit & strDevice & dwCardBoxNum & blobInstance2 & blobInstance & blobInstanceList & arrMaintainFlag & arrMaintainer & arrMaintainTime & arrCardBoxNo & arrPsbCode & arrPsbName & arrPsbName2 & arrCardInit & arrCardRemains & arrCardIssued & arrCardMixed & arrCardPercent;
- }
- };
- TEST(CAutoBufferTest, TestSpObject2Buffer)
- {
- SampleService_TwoWayFuncNotOverlap_Ans ans;
- ans.ans_context;
- CAutoBuffer Buf = SpObject2Buffer<SampleService_TwoWayFuncNotOverlap_Ans>(ans);
- }
- TEST(CAutoBufferTest, TestArray)
- {
- GUIConsoleService_SyncMaterialCount_Info info;
- CSimpleStringW str2(L"Hello world 12345678 90");
- CSimpleStringA str1("Hello world 12345678 90");
- WCHAR testd[] = { 'H','e','l','l','o',' ','w','o','r','l','d',' ','1','2','3','4','5','6','7','8',' ','9','0' };
- CSimpleString16Bit testBit(testd);
- info.strEmptyBit = testd;
- info.strDeviceNo = "7715010050";
- info.strDevice = L"Hello World";
- info.dwCardBoxNum = 2;
- int count = 3;
- char blobString[124] = "Hello Blob";
- info.blobInstance.Refer(blobString, strlen(blobString) + 1);
- info.arrMaintainFlag.Init(count);
- info.arrMaintainer.Init(count);
- info.arrMaintainTime.Init(count);
- info.arrCardBoxNo.Init(count);
- info.arrPsbCode.Init(count);
- info.arrPsbName.Init(count);
- info.arrCardInit.Init(count);
- info.arrCardRemains.Init(count);
- info.arrCardIssued.Init(count);
- info.arrCardMixed.Init(count);
- info.arrCardPercent.Init(count);
- info.arrPsbName2.Init(count);
- info.arrMaintainFlag[0] = true;
- info.arrMaintainFlag[1] = false;
- info.arrMaintainFlag[2] = false;
- info.arrMaintainTime[0] = 660995020;
- info.arrMaintainTime[1] = 0;
- info.arrMaintainTime[2] = 660995020;
- info.arrCardInit[0] = 1;
- info.arrCardInit[1] = 0;
- info.arrCardInit[2] = 0;
- info.arrCardRemains[0] = 1;
- info.arrCardRemains[1] = 0;
- info.arrCardRemains[2] = 0;
- info.arrCardIssued[0] = 0;
- info.arrCardIssued[1] = 0;
- info.arrCardIssued[2] = 0;
- info.arrCardMixed[0] = 0;
- info.arrCardMixed[1] = 0;
- info.arrCardMixed[2] = 0;
- info.arrCardPercent[0] = 10;
- info.arrCardPercent[1] = 0;
- info.arrCardPercent[2] = 0;
- info.arrMaintainer[0] = "SP80275003";
- info.arrMaintainer[1] = "";
- info.arrMaintainer[2] = "SP80275003";
- info.arrCardBoxNo[0] = "NN90000004";
- info.arrCardBoxNo[1] = "";
- info.arrCardBoxNo[2] = "";
- info.arrPsbCode[0] = "4603";
- info.arrPsbCode[1] = "";
- info.arrPsbCode[2] = "";
- CSimpleStringA testValue("ICDEGEFEE222fdjlsfjskdf");
- info.arrPsbName[0] = testValue;
- info.arrPsbName[1] = "";
- info.arrPsbName[2] = "";
- info.arrPsbName2[0] = testd;
- info.arrPsbName2[1] = testd;
- info.arrPsbName2[2] = testd;
- std::cout << "pre SpObject2Buffer" << std::endl;
- CAutoBuffer Buf = SpObject2Buffer<GUIConsoleService_SyncMaterialCount_Info>(info);
- std::cout << "after SpObject2Buffer" << std::endl;
- std::cout << "pre SpBuffer2Object" << std::endl;
- CAutoBuffer Buf2;
- GUIConsoleService_SyncMaterialCount_Info info2;
- ErrorCodeEnum err = SpBuffer2Object<GUIConsoleService_SyncMaterialCount_Info>(Buf, info2);
- std::cout << "after SpBuffer2Object" << std::endl;
- ASSERT_TRUE(err == Error_Succeed);
- ASSERT_TRUE(info2.arrCardBoxNo.GetCount() == count);
- ASSERT_TRUE(info2.strDeviceNo == "7715010050");
- ASSERT_TRUE(info2.dwCardBoxNum == 2);
- ASSERT_TRUE(info2.strEmptyBit == testBit);
- ASSERT_TRUE(strcmp(info2.blobInstance.m_pData, "Hello Blob") == 0);
- ASSERT_TRUE(info2.arrPsbName.GetCount() == count);
- ASSERT_TRUE(info2.arrPsbName[0] == testValue);
- ASSERT_TRUE(info2.arrPsbName[2].IsNullOrEmpty());
- ASSERT_TRUE(info2.arrCardBoxNo[0] = "NN90000004");
- ASSERT_TRUE(info2.arrCardPercent[0] = 10);
- ASSERT_TRUE(info2.arrPsbName2[0] == testBit);
- ASSERT_TRUE(info2.arrPsbName2[0] == testBit);
- ASSERT_TRUE(info2.arrPsbName2[0] == testBit);
- ASSERT_TRUE(!info2.strDevice.IsNullOrEmpty());
- ASSERT_TRUE(info2.strDevice.GetData() != NULL);
- CSimpleStringA test = CSimpleStringW2A(info2.strDevice);
- std::wcout << "test: " << info2.strDevice.GetData() << std::endl;
- std::cout << "test: " << test.GetData() << std::endl;
- ASSERT_TRUE(info2.strDevice == L"Hello World");
- ASSERT_TRUE(info2.strEmpty.IsNullOrEmpty());
- ASSERT_TRUE(info2.strEmptyW.IsNullOrEmpty());
- std::wcout << "hihihih: " << CSimpleString16Bit2W(info2.strEmptyBit).GetData() << std::endl;
- }
|