diff --git a/Redis/testsuite/src/RedisTest.cpp b/Redis/testsuite/src/RedisTest.cpp index e9e83d61f..cebf5cdea 100644 --- a/Redis/testsuite/src/RedisTest.cpp +++ b/Redis/testsuite/src/RedisTest.cpp @@ -339,6 +339,41 @@ void RedisTest::testError() } } +void RedisTest::testEval() +{ + if (!_connected) + { + std::cout << "Not connected, test skipped." << std::endl; + return; + } + + Command cmd("EVAL"); + cmd << "return {1, 2, {3, 'Hello World!'}}" << Poco::NumberFormatter::format(0); + + try + { + Array value = _redis.execute(cmd); + assert(value.size() == 3); + + Poco::Int64 i = value.get(0); + assert(i == 1); + i = value.get(1); + assert(i == 2); + + Array a = value.get(2); + assert(a.size() == 2); + i = a.get(0); + assert(i == 3); + BulkString s = a.get(1); + assert(s.value().compare("Hello World!") == 0); + } + catch(RedisException &e) + { + fail(e.message()); + } + +} + void RedisTest::testIncr() { if (!_connected) @@ -2371,6 +2406,7 @@ CppUnit::Test* RedisTest::suite() CppUnit_addTest(pSuite, RedisTest, testIncrBy); CppUnit_addTest(pSuite, RedisTest, testEcho); CppUnit_addTest(pSuite, RedisTest, testError); + CppUnit_addTest(pSuite, RedisTest, testEval); CppUnit_addTest(pSuite, RedisTest, testLIndex); CppUnit_addTest(pSuite, RedisTest, testLInsert); CppUnit_addTest(pSuite, RedisTest, testLPop); diff --git a/Redis/testsuite/src/RedisTest.h b/Redis/testsuite/src/RedisTest.h index 1b22b3c9c..b9413f74c 100644 --- a/Redis/testsuite/src/RedisTest.h +++ b/Redis/testsuite/src/RedisTest.h @@ -36,6 +36,7 @@ public: void testDecr(); void testEcho(); void testError(); + void testEval(); void testIncr(); void testIncrBy(); void testLIndex();