Explorar el Código

!3 单元测试PackageTest

pcacc hace 5 años
padre
commit
2389f7e5a8
Se han modificado 2 ficheros con 60 adiciones y 4 borrados
  1. 1 4
      RVCComm/Package.cpp
  2. 59 0
      RVCComm/test/PackageTest.cpp

+ 1 - 4
RVCComm/Package.cpp

@@ -144,9 +144,7 @@ void CCommPackage::AddStruct(const char *pStructName, bool bZip,
 			pDef->m_cZipCode = 'Y';
 		}
 		else
-		{
 			delete[] pTempBuf;
-		}
 	}	
 
 	// 加密,加密后长度可能变长,变成8的倍数。需要在输出数据前加上4字节长度,指明加密前长度
@@ -269,8 +267,7 @@ int CCommPackage::GetStructLen(const char *pStructName)
 }
 
 
-bool CCommPackage::GetStructData(const char *pStructName, BYTE *pDataBuf, 
-		int *pBufLen, int *pArrayNum)
+bool CCommPackage::GetStructData(const char *pStructName, BYTE *pDataBuf, int *pBufLen, int *pArrayNum)
 {
 	int nCompLen = strlen(pStructName);
 	if (nCompLen >8 )

+ 59 - 0
RVCComm/test/PackageTest.cpp

@@ -0,0 +1,59 @@
+//
+// Created by tmd67 on 2020/3/23.
+//
+
+#include "gmock/gmock.h"
+#include "gtest/gtest.h"
+#include "Package.h"
+#include <memory>
+#include <iostream>
+using namespace std;
+
+typedef struct{
+    int s1;
+    float s2;
+    char s3[256];
+    char s4[256];
+}TestPackageStruct;
+
+#define TEST_VAULE_S1   0xFF02
+#define TEST_VALUE_S2   5.322
+#define TEST_VAULE_S3   "Hello world"
+#define TEST_VALUE_S4   "ËŽľçˇŃşóČöľŘˇ˝"
+#define TEST_SERVICE_CODE   "__AUTH__"
+#define TEST_STRUCT_NAME    "AUTH_REQ"
+#define TEST_ERROR_MSG      "tinaodfiooitoinotntrei"
+#define TEST_USER_CODE      12323
+#define TEST_ERROR_CODE     357923
+
+
+TEST(PackageTest, TestAddStruct)
+{
+    TestPackageStruct tmpPack{TEST_VAULE_S1, (float)TEST_VALUE_S2, TEST_VAULE_S3, TEST_VALUE_S4};
+    std::shared_ptr<CCommPackage> ppkg(new CCommPackage(nullptr, TEST_SERVICE_CODE));
+    ppkg->AddStruct(TEST_STRUCT_NAME, false, false, (BYTE*)&tmpPack, sizeof(TestPackageStruct));
+    ASSERT_TRUE(ppkg->GetStructLen(TEST_STRUCT_NAME) == sizeof(TestPackageStruct));
+	
+    TestPackageStruct tmpBy;
+    int len, arrayNum;
+    len = sizeof(TestPackageStruct);
+    ASSERT_TRUE(ppkg->GetStructData(TEST_STRUCT_NAME, (BYTE*)&tmpBy, &len, &arrayNum));
+	
+    ASSERT_TRUE(tmpBy.s1 == TEST_VAULE_S1);
+    const float EPSINON = 0.00001;
+    ASSERT_TRUE(abs(tmpBy.s2 - (float)TEST_VALUE_S2) <= EPSINON);
+    ASSERT_TRUE(std::string(tmpBy.s3) == TEST_VAULE_S3);
+    ASSERT_TRUE(std::string(tmpBy.s4) == TEST_VALUE_S4);
+
+    ASSERT_TRUE(TEST_SERVICE_CODE == ppkg->GetServiceCode());
+
+    ppkg->SetErrMsg(TEST_ERROR_CODE, TEST_USER_CODE, TEST_ERROR_MSG);
+    DWORD tmpErrorCode, tmpUserCode;
+    std::string errMsg;
+    ASSERT_TRUE(ppkg->GetErrMsg(tmpErrorCode, tmpUserCode, errMsg));
+
+    ASSERT_TRUE(tmpErrorCode == TEST_ERROR_CODE);
+    ASSERT_TRUE(tmpUserCode == TEST_USER_CODE);
+    ASSERT_TRUE(errMsg == TEST_ERROR_MSG);
+	
+}