This is an automated email from the ASF dual-hosted git repository.

dinglei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-ons-cpp.git

commit 2d0b3d67503c9ab5680420b95c33ebb4c13fd647
Author: ShannonDing <[email protected]>
AuthorDate: Wed Jul 24 11:10:17 2019 +0800

    Add unitest for Java
---
 src/main/cpp/demos/CMakeLists.Release              |  6 ++--
 src/main/cpp/demos/CMakeLists.txt                  |  2 +-
 .../apache/rocketmq/graalvm/CInterfaceTest.java    | 38 ++++++++++++++++++++++
 3 files changed, 43 insertions(+), 3 deletions(-)

diff --git a/src/main/cpp/demos/CMakeLists.Release 
b/src/main/cpp/demos/CMakeLists.Release
index 7f47ee5..fd7ff83 100644
--- a/src/main/cpp/demos/CMakeLists.Release
+++ b/src/main/cpp/demos/CMakeLists.Release
@@ -1,5 +1,7 @@
 cmake_minimum_required(VERSION 3.0)
-project(onsclient4cpp_demo VERSION 1.0
+set(LIBRARY_NAME_DEMO onsclient4cpp)
+set(PROJECT_NAME_DEMO rocketmq-ons-cpp-demo)
+project(${PROJECT_NAME_DEMO} VERSION 1.0
         LANGUAGES C CXX)
 set(CMAKE_CXX_STANDARD 11)
 include_directories(../include)
@@ -13,7 +15,7 @@ if (${ROCKETMQ_CLIENT_CORE-NOTFOUNT})
 endif ()
 
 find_library(ONS_CLIENT
-        NAMES onsclient4cpp
+        NAMES ${LIBRARY_NAME_DEMO}
         HINTS ../lib)
 
 if (${ONS_CLIENT-NOTFOUNT})
diff --git a/src/main/cpp/demos/CMakeLists.txt 
b/src/main/cpp/demos/CMakeLists.txt
index 6ffd443..d377ddf 100644
--- a/src/main/cpp/demos/CMakeLists.txt
+++ b/src/main/cpp/demos/CMakeLists.txt
@@ -1,6 +1,6 @@
 macro(add_demo name source_file)
     add_executable(${name} ${source_file})
-    target_link_libraries(${name} pthread ${CMAKE_PROJECT_NAME})
+    target_link_libraries(${name} pthread ${LIBRARY_NAME})
     set_target_properties(${name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY 
${CMAKE_SOURCE_DIR}/bin/demos)
 endmacro()
 
diff --git a/src/test/java/org/apache/rocketmq/graalvm/CInterfaceTest.java 
b/src/test/java/org/apache/rocketmq/graalvm/CInterfaceTest.java
new file mode 100644
index 0000000..3400af4
--- /dev/null
+++ b/src/test/java/org/apache/rocketmq/graalvm/CInterfaceTest.java
@@ -0,0 +1,38 @@
+package org.apache.rocketmq.graalvm;
+
+import org.graalvm.nativeimage.c.type.CTypeConversion;
+import org.junit.Assert;
+import org.mockito.Mockito;
+
+/**
+ * <p>
+ *     <strong>Warning:</strong> CTypeConversion can only used with 
native-image. Hence, we cannot create JUnit test
+ *     cases in the Java side.
+ * </p>
+ */
+public class CInterfaceTest {
+
+//    @Test
+    public void testCreateProducer() {
+        CInterface.CFactoryProperty property = 
Mockito.mock(CInterface.CFactoryProperty.class);
+        
Mockito.when(property.getAccessKey()).thenReturn(CTypeConversion.toCString("Ak").get());
+        
Mockito.when(property.getAccessSecret()).thenReturn(CTypeConversion.toCString("Sk").get());
+        
Mockito.when(property.getGroupId()).thenReturn(CTypeConversion.toCString("GID_opensource_unit_test").get());
+        
Mockito.when(property.getNameServerAddress()).thenReturn(CTypeConversion.toCString("47.100.33.127:9876").get());
+        int id = CInterface.create_producer(null, property);
+        Assert.assertEquals(1, id);
+        Assert.assertEquals(1, CInterface.instances.size());
+    }
+
+//    @Test
+    public void testDestroyInstance() {
+        CInterface.CFactoryProperty property = 
Mockito.mock(CInterface.CFactoryProperty.class);
+        
Mockito.when(property.getAccessKey()).thenReturn(CTypeConversion.toCString("Ak").get());
+        
Mockito.when(property.getAccessSecret()).thenReturn(CTypeConversion.toCString("Sk").get());
+        
Mockito.when(property.getGroupId()).thenReturn(CTypeConversion.toCString("GID_opensource_unit_test").get());
+        
Mockito.when(property.getNameServerAddress()).thenReturn(CTypeConversion.toCString("47.100.33.127:9876").get());
+        int id = CInterface.create_producer(null, property);
+        CInterface.destroy_instance(null, id);
+        Assert.assertTrue(CInterface.instances.isEmpty());
+    }
+}
\ No newline at end of file

Reply via email to