polardbxengine/extra/IS/cluster/unittest/text_request-t.cc

94 lines
2.4 KiB
C++

/************************************************************************
*
* Copyright (c) 2016 Alibaba.com, Inc. All Rights Reserved
* $Id: text_request-t.cc,v 1.0 08/27/2016 11:14:06 AM hangfeng.fj( hangfeng.fj@alibaba-inc.com) $
*
************************************************************************/
/**
* @file text_request-t.cc
* @author hangfeng.fj( hangfeng.fj@alibaba-inc.com)
* @date 08/27/2016 11:14:06 AM
* @version 1.0
* @brief unit test for TextResponse
**/
#include <unistd.h>
#include <gtest/gtest.h>
#include "../memcached/text_request.h"
using namespace alisql;
#define MEMCACHE_TEST(n, d) \
char data##n[] = d; \
TextRequest t##n; \
t##n.init(data##n, sizeof(data##n) - 1); \
t##n.parse();
TEST(TextRequest, newObj)
{
TextRequest *textRequest= new TextRequest();
EXPECT_TRUE(textRequest);
delete textRequest;
}
TEST(TextRequest, parse)
{
MEMCACHE_TEST(1, "set key 0 0 1 \r\n");
EXPECT_EQ(t1.getCommand(), TextCommand::SET);
}
TEST(TextRequest, parseStorage)
{
MEMCACHE_TEST(1, "set key 0 0 1 \r\na\r\n");
EXPECT_EQ(t1.getCommand(), TextCommand::SET);
EXPECT_EQ(std::get<1>(t1.getKey()), 3);
EXPECT_EQ(t1.getFlags(), 0);
EXPECT_EQ(t1.getExptime(), 0);
EXPECT_EQ(t1.getNoreply(), false);
EXPECT_EQ(t1.getValid(), true);
EXPECT_EQ(std::get<1>(t1.getData()), 1);
}
TEST(TextRequest, parseTairStorage)
{
MEMCACHE_TEST(1, "tair_set key 0 0 1 0 0\r\na\r\n");
EXPECT_EQ(t1.getCommand(), TextCommand::TAIR_SET);
EXPECT_EQ(std::get<1>(t1.getKey()), 3);
EXPECT_EQ(t1.getFlags(), 0);
EXPECT_EQ(t1.getExptime(), 0);
EXPECT_EQ(t1.getNoreply(), false);
EXPECT_EQ(t1.getNameSpace(), 0);
EXPECT_EQ(t1.getVersion(), 0);
EXPECT_EQ(t1.getValid(), true);
EXPECT_EQ(std::get<1>(t1.getData()), 1);
}
TEST(TextRequest, parseGet)
{
MEMCACHE_TEST(1, "get key\r\n");
EXPECT_EQ(t1.getCommand(), TextCommand::GET);
EXPECT_EQ(t1.getValid(), true);
}
TEST(TextRequest, parseDelete)
{
MEMCACHE_TEST(1, "delete key\r\n");
EXPECT_EQ(t1.getCommand(), TextCommand::DELETE);
EXPECT_EQ(t1.getValid(), true);
}
TEST(TextRequest, parseCas)
{
MEMCACHE_TEST(1, "cas key 0 0 1 61 \r\na\r\n");
EXPECT_EQ(t1.getCommand(), TextCommand::CAS);
EXPECT_EQ(std::get<1>(t1.getKey()), 3);
EXPECT_EQ(t1.getFlags(), 0);
EXPECT_EQ(t1.getExptime(), 0);
EXPECT_EQ(t1.getNoreply(), false);
EXPECT_EQ(t1.getValid(), true);
EXPECT_EQ(std::get<1>(t1.getData()), 1);
EXPECT_EQ(t1.getCasUnique(), 61);
}