Add C Test Case (#5)
diff --git a/CMakeLists.txt b/CMakeLists.txt index e51dec7..39c13ff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -44,6 +44,7 @@ enable_testing() add_subdirectory(3rd_party/google_test) add_subdirectory(src/test/cpp) + add_subdirectory(src/test/c) endif () if (BUILD_DEMOS)
diff --git a/src/test/c/CMakeLists.txt b/src/test/c/CMakeLists.txt new file mode 100644 index 0000000..78599e9 --- /dev/null +++ b/src/test/c/CMakeLists.txt
@@ -0,0 +1,12 @@ +include_directories(${CMAKE_SOURCE_DIR}/src/test/cpp + ${CMAKE_SOURCE_DIR}/src/main/c/include) + +macro(add_gtest test_name test_source) + add_executable(${test_name} ${test_source} TestCMain.cpp) + target_link_libraries(${test_name} gtest ${LIBRARY_NAME}) + add_test(NAME ${test_name} COMMAND ${test_name}) + set_target_properties(${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/tests) +endmacro() + +add_gtest(cproducer_test CProducerTest.cpp) +add_gtest(cpushconsumer_test CPushConsumerTest.cpp)
diff --git a/src/test/c/CProducerTest.cpp b/src/test/c/CProducerTest.cpp new file mode 100644 index 0000000..4bde86e --- /dev/null +++ b/src/test/c/CProducerTest.cpp
@@ -0,0 +1,43 @@ +#include <iostream> +#include <chrono> +#include <gtest/gtest.h> +#include <memory> + +#include <mutex> +#include <thread> +#include <condition_variable> + +#include "CProducer.h" + +class CProducerTest : public testing::Test { +protected: + void SetUp() override { + producer_ = CreateProducer("GID_opensource_unit_test"); + SetProducerNameServerAddress(producer_, "47.100.33.127:9876"); + SetProducerSessionCredentials(producer_, "AK", "SK", "LOCAL"); + StartProducer(producer_); + } + + void TearDown() override { + ShutdownProducer(producer_); + DestroyProducer(producer_); + producer_ = NULL; + } + + CProducer *producer_; +}; + +TEST_F(CProducerTest, test_setUp) { + ASSERT_TRUE(nullptr != producer_); +} + +TEST_F(CProducerTest, testSendMessage_Normal) { + CMessage *message = CreateMessage("t_opensource_unit_test"); + SetMessageKeys(message, "This is Key"); + SetMessageTags(message, "TAG"); + SetMessageBody(message, "This is Message Body."); + CSendResult sendResult; + SendMessageSync(producer_, message, &sendResult); + std::cout<<"Send OK,MessageID:"<< sendResult.msgId<<std::endl; + ASSERT_TRUE(E_SEND_OK == sendResult.sendStatus); +} \ No newline at end of file
diff --git a/src/test/c/CPushConsumerTest.cpp b/src/test/c/CPushConsumerTest.cpp new file mode 100644 index 0000000..9926785 --- /dev/null +++ b/src/test/c/CPushConsumerTest.cpp
@@ -0,0 +1,46 @@ +#include <iostream> +#include <chrono> +#include <gtest/gtest.h> +#include <memory> + +#include <mutex> +#include <thread> +#include <condition_variable> + +#include "CPushConsumer.h" + +int onMessages(CPushConsumer *consumer, CMessageExt *message) { + std::cout << "Receive Message:" << GetMessageId(message) << std::endl; + return E_CONSUME_SUCCESS; +} + +class CPushConsumerTest : public testing::Test { +protected: + void SetUp() override { + consumer_ = CreatePushConsumer("GID_opensource_unit_test"); + SetPushConsumerNameServerAddress(consumer_, "47.100.33.127:9876"); + SetPushConsumerSessionCredentials(consumer_, "AK", "SK", "LOCAL"); + //StartPushConsumer(consumer_); + } + + void TearDown() override { + //ShutdownPushConsumer(consumer_); + DestroyPushConsumer(consumer_); + consumer_ = NULL; + } + + CPushConsumer *consumer_; +}; + +TEST_F(CPushConsumerTest, test_setUp) { + ASSERT_TRUE(nullptr != consumer_); +} + +TEST_F(CPushConsumerTest, test_ConsumeMessage) { + Subscribe(consumer_, "t_opensource_unit_test", "*"); + RegisterMessageCallback(consumer_,onMessages); + StartPushConsumer(consumer_); + std::this_thread::sleep_for(std::chrono::milliseconds(10 * 1000)); + ASSERT_TRUE(nullptr != consumer_); +} +
diff --git a/src/test/c/TestCMain.cpp b/src/test/c/TestCMain.cpp new file mode 100644 index 0000000..f81367c --- /dev/null +++ b/src/test/c/TestCMain.cpp
@@ -0,0 +1,6 @@ +#include <gtest/gtest.h> + +int main(int argc, char* argv[]) { + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +}