TEST(ReadRedisValue, Int) { RedisValue val; StringReader reader; reader.input = ":10\r\n"; ReadRedisValue(&reader, &val); EXPECT_EQ(10, boost::get<int64_t>(val)); reader.input = ":-5\r\n"; ReadRedisValue(&reader, &val); EXPECT_EQ(-5, boost::get<int64_t>(val)); }
TEST(ReadRedisValue, String) { RedisValue val; StringReader reader; reader.input = "+abc.xyz\r\n"; ReadRedisValue(&reader, &val); EXPECT_EQ("abc.xyz", boost::get<std::string>(val)); reader.input = "+example\r\n"; ReadRedisValue(&reader, &val); EXPECT_EQ("example", boost::get<std::string>(val)); }
TEST(ReadRedisValue, BulkString) { RedisValue val; StringReader reader; reader.input = "$7\r\nabc.xyz\r\n"; ReadRedisValue(&reader, &val); EXPECT_EQ("abc.xyz", boost::get<std::string>(val)); reader.input = "$15\r\nexample\r\nstring\r\n"; ReadRedisValue(&reader, &val); EXPECT_EQ("example\r\nstring", boost::get<std::string>(val)); reader.input = "$0\r\n\r\n"; ReadRedisValue(&reader, &val); EXPECT_EQ("", boost::get<std::string>(val)); }
TEST(ReadRedisValue, Null) { RedisValue val; StringReader reader; reader.input = "$-1\r\n"; ReadRedisValue(&reader, &val); EXPECT_EQ(REDIS_NULL, val.which()); }
TEST(ReadRedisValue, Error) { RedisValue val; StringReader reader; reader.input = "-example\r\n"; ReadRedisValue(&reader, &val); EXPECT_EQ("example", boost::get<RedisError>(val).msg); }
TEST(ReadRedisValue, Error) { RedisValue err; StringReader reader; reader.input = "-kek\r\n"; ReadRedisValue(&reader, &err); EXPECT_EQ("kek", boost::get<RedisError>(err).msg); }
TEST(ReadRedisValue, String) { RedisValue str; StringReader reader; reader.input = "+abcd\r\n"; ReadRedisValue(&reader, &str); EXPECT_EQ("abcd", boost::get<std::string>(str)); }
TEST(ReadRedisValue, BulkString) { RedisValue bulk; StringReader reader; reader.input = "$5\r\na\nbcd\r\n"; ReadRedisValue(&reader, &bulk); EXPECT_EQ("a\nbcd", boost::get<RedisBulkString>(bulk).str); }
TEST(ReadRedisValue, Array) { RedisValue array; StringReader reader; reader.input = "*4\r\n:-12\r\n+abcd\r\n-nope\r\n$-1\r\n"; ReadRedisValue(&reader, &array); EXPECT_EQ(-12, boost::get<int64_t>(boost::get<std::vector<RedisValue>>(array)[0])); EXPECT_STREQ("abcd", boost::get<std::string>(boost::get<std::vector<RedisValue>>(array)[1]).c_str()); EXPECT_STREQ("nope", boost::get<RedisError>(boost::get<std::vector<RedisValue>>(array)[2]).msg.c_str()); EXPECT_EQ(REDIS_NULL, boost::get<std::vector<RedisValue>>(array)[3].which()); }
TEST(ReadRedisValue, Array) { RedisValue val; StringReader reader; reader.input = "*5\r\n" ":3\r\n" "+foobar\r\n" "$6\r\nfoobar\r\n" "-error\r\n" "$-1\r\n"; ReadRedisValue(&reader, &val); EXPECT_EQ(3, boost::get<int64_t>(boost::get<std::vector<RedisValue>>(val)[0])); EXPECT_EQ("foobar", boost::get<std::string>(boost::get<std::vector<RedisValue>>(val)[1])); EXPECT_EQ("foobar", boost::get<std::string>(boost::get<std::vector<RedisValue>>(val)[2])); EXPECT_EQ("error", boost::get<RedisError>(boost::get<std::vector<RedisValue>>(val)[3]).msg); EXPECT_EQ(REDIS_NULL, boost::get<std::vector<RedisValue>>(val)[4].which()); }