ADD file via upload

main
p9evjq4zb 7 months ago
parent a7a943e132
commit 7663ea012e

@ -0,0 +1,288 @@
#include <iostream>
#include <string>
#include <limits.h>
#include "gtest/gtest.h"
#define private public
#define protected public
#include "inifile.h"
using std::cout;
using std::endl;
using namespace inifile;
namespace {
TEST(inifile, trim)
{
string buf = " aaa ";
IniFile::trim(buf);
EXPECT_EQ(buf, string("aaa"));
buf = " aaa";
IniFile::trim(buf);
EXPECT_EQ(buf, string("aaa"));
buf = "aaa ";
IniFile::trim(buf);
EXPECT_EQ(buf, string("aaa"));
}
TEST(inifile, trimleft)
{
string p = " aaa ";
IniFile::trimleft(p);
EXPECT_EQ(p, string("aaa "));
p = " aaa";
IniFile::trimleft(p);
EXPECT_EQ(p, string("aaa"));
p = "aaa ";
IniFile::trimleft(p);
EXPECT_EQ(p, string("aaa "));
}
TEST(inifile, trimright)
{
string p = " aaa ";
IniFile::trimright(p);
EXPECT_EQ(p, string(" aaa"));
p = " aaa";
IniFile::trimright(p);
EXPECT_EQ(p, string(" aaa"));
p = "aaa ";
IniFile::trimright(p);
EXPECT_EQ(p, string("aaa"));
}
////////////////////////////
TEST(IniFile, pasre)
{
IniFile section;
string s = "DB=sys";
string key, value;
EXPECT_EQ(section.parse(s, &key, &value), true);
EXPECT_EQ(key, "DB");
EXPECT_EQ(value, "sys");
s = "DB";
key = value = "";
EXPECT_EQ(section.parse(s, &key, &value), false);
s = "DB=";
key = value = "";
EXPECT_EQ(section.parse(s, &key, &value), true);
EXPECT_EQ(key, "DB");
EXPECT_EQ(value, "");
s = "=sys";
key = value = "";
EXPECT_EQ(section.parse(s, &key, &value), true);
EXPECT_EQ(key, "");
EXPECT_EQ(value, "sys");
}
TEST(IniFile, hasSection_and_getValue)
{
// create a new ini file
char filepath[] = "test.ini";
FILE *fp = fopen(filepath, "w+");
char content[] = " USER=root \r\n [COMMON] \n DB=sys \nPASSWD=tt \n#commit \n #--------- \n[DEFINE] \nname=cxy\nvalue=1\nbooltest=True #测试\n";
fwrite(content, 1, strlen(content), fp);
fclose(fp);
// test
IniFile ini;
ini.Load(filepath);
EXPECT_EQ(ini.HasSection(string("")), true);
EXPECT_EQ(ini.HasSection("COMMON"), true);
EXPECT_EQ(ini.HasSection("DEFINE"), true);
EXPECT_EQ(ini.HasSection("ss"), false);
string value;
int intValue;
bool boolValue;
EXPECT_EQ(ini.GetStringValue("", "USER", &value), 0);
EXPECT_EQ(value, string("root"));
EXPECT_EQ(ini.GetStringValue("COMMON", "DB", &value), 0);
EXPECT_EQ(value, string("sys"));
EXPECT_EQ(ini.GetStringValue("COMMON", "PASSWD", &value), 0);
EXPECT_EQ(value, string("tt"));
EXPECT_EQ(ini.GetStringValue("DEFINE", "name", &value), 0);
EXPECT_EQ(value, string("cxy"));
EXPECT_EQ(ini.GetIntValue("DEFINE", "value", &intValue), 0);
EXPECT_EQ(intValue, 1);
EXPECT_EQ(ini.GetBoolValue("DEFINE", "booltest", &boolValue), 0);
EXPECT_EQ(boolValue, true);
}
TEST(IniFile, getValue)
{
// write config
char filepath[] = "getValueTest.ini";
FILE *fp = fopen(filepath, "w");
char content[] = " USER=root \r\n [COMMON] \n DB=sys \nPASSWD=tt \nPASSWD=dd \n#commit \n ;--------- \n[DEFINE] \nname=cxy\nvalue=1 #test";
fwrite(content, sizeof(char), strlen(content), fp);
fclose(fp);
// read config
IniFile ini;
ini.Load(filepath);
string value;
vector<string> valueList;
ini.getValue("", "USER", &value);
EXPECT_EQ(value, string("root"));
ini.getValue("COMMON", "DB", &value);
EXPECT_EQ(value, string("sys"));
ini.GetValues("COMMON", "PASSWD", &valueList);
EXPECT_EQ(valueList.size(), 2);
EXPECT_EQ(valueList[0], string("tt"));
EXPECT_EQ(valueList[1], string("dd"));
}
TEST(IniFile, reopen)
{
// create a new ini file
char filepath[] = "test.ini";
FILE *fp = fopen(filepath, "w");
char content[] = " USER=root \r\n [COMMON] \n DB=sys \nPASSWD=tt \n#commit \n #--------- \n[DEFINE] \nname=cxy\n";
fwrite(content, sizeof(char), strlen(content), fp);
fclose(fp);
// test
IniFile ini;
ini.Load(filepath);
// reopen
fp = fopen(filepath, "w");
strcpy(content, " USER=root2 \r\n [COMMON] \n DB=sys2 \n\n#commit \n #--------- \n\n\n");
fwrite(content, sizeof(char), strlen(content), fp);
fclose(fp);
// test
ini.Load(filepath);
EXPECT_EQ(ini.HasSection(""), true);
EXPECT_EQ(ini.HasSection("COMMON"), true);
EXPECT_EQ(ini.HasSection("DEFINE"), false);
string value;
EXPECT_EQ(ini.GetStringValue("", "USER", &value), 0);
EXPECT_EQ(value, string("root2"));
EXPECT_EQ(ini.GetStringValue("COMMON", "DB", &value), 0);
EXPECT_EQ(value, string("sys2"));
EXPECT_EQ(ini.GetStringValue("COMMON", "PASSWD", &value), ERR_NOT_FOUND_KEY);
EXPECT_EQ(ini.GetStringValue("DEFINE", "name", &value), ERR_NOT_FOUND_SECTION);
}
TEST(IniFile, SaveAs)
{
// create a new ini file
char filepath[] = "test.ini";
FILE *fp = fopen(filepath, "w");
char content[] = " USER=root \r\n [COMMON] \n DB=sys \nPASSWD=tt \n#commit \n #--------- \n[DEFINE] \nname=cxy\nvalue=1 #测试";
fwrite(content, sizeof(char), strlen(content), fp);
fclose(fp);
IniFile ini;
ini.Load(filepath);
char saveas_path[] = "test_save_as.ini";
ini.SaveAs(saveas_path);
fp = fopen(saveas_path, "r");
char buf[200];
memset(buf, 0, 200 * sizeof(char));
fread(buf, sizeof(char), 200, fp);
fclose(fp);
EXPECT_EQ(buf, string("USER=root\n[COMMON]\nDB=sys\nPASSWD=tt\n#commit\n#---------\n[DEFINE]\nname=cxy\nvalue=1 #测试\n"));
}
TEST(IniFile, setValue)
{
IniFile ini;
ini.setValue("COMMON", "DB", "sys", "数据库");
ini.setValue("COMMON", "PASSWD", "root", "数据库密码");
ini.setValue("", "NAME", "cxy", "");
char filepath[] = "test_set.ini";
ini.SaveAs(filepath);
FILE *fp = fopen(filepath, "r");
char buf[200];
memset(buf, 0, 200 * sizeof(char));
fread(buf, sizeof(char), 200, fp);
fclose(fp);
EXPECT_EQ(buf, string("NAME=cxy\n[COMMON]\n#数据库\nDB=sys\n#数据库密码\nPASSWD=root\n"));
}
TEST(IniFile, DeleteSection)
{
// create a new ini file
char filepath[] = "test.ini";
FILE *fp = fopen(filepath, "w");
char content[] = " USER=root \r\n [COMMON] \n DB=sys \nPASSWD=tt \n#commit \n #--------- \n[DEFINE] \nname=cxy\n";
fwrite(content, sizeof(char), strlen(content), fp);
fclose(fp);
IniFile ini;
ini.Load(filepath);
ini.DeleteSection("COMMON");
char saveas_path[] = "test_save_deleteS.ini";
ini.SaveAs(saveas_path);
fp = fopen(saveas_path, "r");
char buf[200];
memset(buf, 0, 200 * sizeof(char));
fread(buf, sizeof(char), 200, fp);
fclose(fp);
EXPECT_EQ(buf, string("USER=root\n#commit\n#---------\n[DEFINE]\nname=cxy\n"));
}
TEST(IniFile, DeleteKey)
{
// create a new ini file
char filepath[] = "test.ini";
FILE *fp = fopen(filepath, "w");
char content[] = " USER=root \r\n [COMMON] \n DB=sys \nPASSWD=tt \n#commit \n #--------- \n[DEFINE] \nname=cxy\n";
fwrite(content, sizeof(char), strlen(content), fp);
fclose(fp);
IniFile ini;
ini.Load(filepath);
ini.DeleteKey("COMMON", "DB");
char saveas_path[] = "test_save_deleteK.ini";
ini.SaveAs(saveas_path);
fp = fopen(saveas_path, "r");
char buf[200];
memset(buf, 0, 200 * sizeof(char));
fread(buf, sizeof(char), 200, fp);
fclose(fp);
EXPECT_EQ(buf, string("USER=root\n[COMMON]\nPASSWD=tt\n#commit\n#---------\n[DEFINE]\nname=cxy\n"));
}
}
Loading…
Cancel
Save