Add network test case for setting active dataset tlvs 94/272894/1
authorhyunuk.tak <hyunuk.tak@samsung.com>
Thu, 24 Mar 2022 06:05:04 +0000 (15:05 +0900)
committerhyunuk.tak <hyunuk.tak@samsung.com>
Mon, 28 Mar 2022 01:53:36 +0000 (10:53 +0900)
Change-Id: I4fdbfbc8f026af4ff5944406bade321920eab956
Signed-off-by: hyunuk.tak <hyunuk.tak@samsung.com>
tests/unittest/mocks/thread-mock-dbus.cpp
tests/unittest/mocks/thread-mock-dummy.cpp
tests/unittest/thread-unittest-network.cpp

index 26da5e4..31131a6 100644 (file)
@@ -105,4 +105,8 @@ GVariant *g_dbus_proxy_call_finish(GDBusProxy *proxy,
 
 void g_object_unref(gpointer object)
 {
+}
+
+void g_bytes_unref(GBytes *bytes)
+{
 }
\ No newline at end of file
index e5b7465..7fddd40 100644 (file)
@@ -117,6 +117,11 @@ static GVariant *__property_get_extended_address()
        return g_variant_new("(v)", g_variant_new("t", 0));
 }
 
+static GVariant *__property_set_active_dataset_tlvs()
+{
+       return g_variant_new("(i)", THREAD_ERROR_NONE);
+}
+
 struct {
        const gchar *interface_name;
        const gchar *signal_name;
@@ -193,6 +198,11 @@ struct {
                __property_get_extended_address,
        },
        {
+               "Set",
+               THREAD_DBUS_PROPERTY_ACTIVE_DATASET_TLVS,
+               __property_set_active_dataset_tlvs,
+       },
+       {
                NULL,
                NULL,
                NULL,
index 581f4a7..072a39b 100644 (file)
 #include "thread.h"
 
 #define NETWORK_DATA_SIZE 256
+#define NETWORK_TLVS_SIZE 1024
+#define DUMMY_TLVS_SIZE 106
+#define DUMMY_TLVS_STR "0e080000000000010000000300001935060004001" \
+       "fffe00208763d64768c8f3ecf0708fdd10ceaadb65a7b05105e1ec3e" \
+       "16d3e0aee52fb7e618a759973030f4f70656e5468726561642d34633" \
+       "33801024c3804103044b2dc6512dce13b11d3386eb2ce7e0c0402a0fff8"
 
 class ThreadNetworkTest : public ::testing::Test
 {
@@ -31,6 +37,7 @@ public:
        uint32_t channel;
        uint64_t extendedPanId;
        uint16_t panId;
+       uint8_t tlvsBuffer[NETWORK_TLVS_SIZE];
 
 protected:
        void SetUp() override
@@ -44,12 +51,25 @@ protected:
                channel = 0x07fff800;
                extendedPanId = strtoull("18446744073709551615LL", nullptr, 10);
                panId = 65535;
+               makeTlvsBuffer();
        }
 
        void TearDown() override
        {
                thread_deinitialize();
        }
+
+private:
+       void makeTlvsBuffer()
+       {
+               for (int i = 0; i < DUMMY_TLVS_SIZE; ++i)
+               {
+                       char subBuffer[3];
+                       memcpy(subBuffer, &DUMMY_TLVS_STR[2 * i], 2);
+                       subBuffer[2] = '\0';
+                       tlvsBuffer[i] = (uint8_t)strtol(subBuffer, NULL, 16);
+               }
+       }
 };
 
 TEST_F(ThreadNetworkTest, CreateOperationalNetworkNotInitialized)
@@ -96,4 +116,24 @@ TEST_F(ThreadNetworkTest, DestroyOperationalNetworkErrorNone)
                        key, pskc, channel, extendedPanId, panId, &network));
        EXPECT_EQ(THREAD_ERROR_NONE,
                thread_network_destroy_operational_network(instance, network));
+}
+
+TEST_F(ThreadNetworkTest, SetActiveDatasetTlvsNotInitialized)
+{
+       EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize());
+       EXPECT_EQ(THREAD_ERROR_NOT_INITIALIZED,
+               thread_network_set_active_dataset_tlvs(instance, tlvsBuffer, DUMMY_TLVS_SIZE));
+}
+
+TEST_F(ThreadNetworkTest, SetActiveDatasetTlvsInvalidParameter)
+{
+       EXPECT_EQ(THREAD_ERROR_INVALID_PARAMETER,
+               thread_network_set_active_dataset_tlvs(instance, tlvsBuffer, DUMMY_TLVS_SIZE));
+}
+
+TEST_F(ThreadNetworkTest, SetActiveDatasetTlvsErrorNone)
+{
+       EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance));
+       EXPECT_EQ(THREAD_ERROR_NONE,
+               thread_network_set_active_dataset_tlvs(instance, tlvsBuffer, DUMMY_TLVS_SIZE));
 }
\ No newline at end of file