This commit is contained in:
fbraem
2015-11-17 21:03:40 +01:00
parent 90eb6dcd18
commit 4756fa353a
4 changed files with 74 additions and 0 deletions

View File

@@ -69,6 +69,12 @@ public:
static Command get(const std::string& key); static Command get(const std::string& key);
/// Returns an GET command /// Returns an GET command
static Command hdel(const std::string& hash, const std::string& field);
/// Returns an HDEL command
static Command hdel(const std::string& hash, const std::vector<std::string>& fields);
/// Returns an HDEL command
static Command hget(const std::string& hash, const std::string& field); static Command hget(const std::string& hash, const std::string& field);
/// Returns an HGET command /// Returns an HGET command

View File

@@ -118,6 +118,28 @@ Command Command::get(const std::string& key)
return cmd; return cmd;
} }
Command Command::hdel(const std::string& hash, const std::string& field)
{
Command cmd("HDEL");
cmd << hash << field;
return cmd;
}
Command Command::hdel(const std::string& hash, const std::vector<std::string>& fields)
{
Command cmd("HDEL");
cmd << hash;
for(std::vector<std::string>::const_iterator it = fields.begin(); it != fields.end(); ++it)
{
cmd << *it;
}
return cmd;
}
Command Command::hget(const std::string& hash, const std::string& field) Command Command::hget(const std::string& hash, const std::string& field)
{ {
Command cmd("HGET"); Command cmd("HGET");

View File

@@ -374,6 +374,50 @@ void RedisTest::testEval()
} }
void RedisTest::testHDel()
{
if (!_connected)
{
std::cout << "Not connected, test skipped." << std::endl;
return;
}
delKey("myhash");
Command hset = Command::hset("myhash", "field1", "foo");
try
{
Poco::Int64 value = _redis.execute<Poco::Int64>(hset);
assert(value == 1);
}
catch(RedisException &e)
{
fail(e.message());
}
Command hdel = Command::hdel("myhash", "field1");
try
{
Poco::Int64 result = _redis.execute<Poco::Int64>(hdel);
assert(result == 1);
}
catch(RedisException &e)
{
fail(e.message());
}
hdel = Command::hdel("myhash", "field2");
try
{
Poco::Int64 result = _redis.execute<Poco::Int64>(hdel);
assert(result == 0);
}
catch(RedisException &e)
{
fail(e.message());
}
}
void RedisTest::testHSet() void RedisTest::testHSet()
{ {
if (!_connected) if (!_connected)
@@ -2438,6 +2482,7 @@ CppUnit::Test* RedisTest::suite()
CppUnit_addTest(pSuite, RedisTest, testEcho); CppUnit_addTest(pSuite, RedisTest, testEcho);
CppUnit_addTest(pSuite, RedisTest, testError); CppUnit_addTest(pSuite, RedisTest, testError);
CppUnit_addTest(pSuite, RedisTest, testEval); CppUnit_addTest(pSuite, RedisTest, testEval);
CppUnit_addTest(pSuite, RedisTest, testHDel);
CppUnit_addTest(pSuite, RedisTest, testHSet); CppUnit_addTest(pSuite, RedisTest, testHSet);
CppUnit_addTest(pSuite, RedisTest, testIncr); CppUnit_addTest(pSuite, RedisTest, testIncr);
CppUnit_addTest(pSuite, RedisTest, testIncrBy); CppUnit_addTest(pSuite, RedisTest, testIncrBy);

View File

@@ -37,6 +37,7 @@ public:
void testEcho(); void testEcho();
void testError(); void testError();
void testEval(); void testEval();
void testHDel();
void testHSet(); void testHSet();
void testIncr(); void testIncr();
void testIncrBy(); void testIncrBy();