Add thread_set_operational_network API with unittest 37/273137/1
authorhyunuk.tak <hyunuk.tak@samsung.com>
Wed, 30 Mar 2022 02:24:48 +0000 (11:24 +0900)
committerhyunuk.tak <hyunuk.tak@samsung.com>
Thu, 31 Mar 2022 01:00:09 +0000 (10:00 +0900)
Change-Id: I7a6d5964192c487bee74eafde37e574e773d05e3
Signed-off-by: hyunuk.tak <hyunuk.tak@samsung.com>
src/thread-network.c
tests/unittest/thread-unittest-network.cpp

index 24aa234..7ad00c9 100644 (file)
@@ -215,6 +215,21 @@ int thread_network_set_panid(thread_network_h network, uint16_t panid)
        return THREAD_ERROR_NONE;
 }
 
+int thread_set_operational_network(thread_instance_h instance, thread_network_h network)
+{
+       FUNC_ENTRY;
+       THREAD_CHECK_SUPPORTED_FEATURE(THREAD_FEATURE_COMMON);
+       THREAD_CHECK_INIT_STATUS();
+       THREAD_VALIDATE_INPUT_PARAMETER(instance);
+       THREAD_VALIDATE_INPUT_PARAMETER(network);
+
+       thread_instance_s *current_instance = instance;
+       current_instance->network = network;
+
+       FUNC_EXIT;
+       return THREAD_ERROR_NONE;
+}
+
 /* Network leader/Creator */
 int thread_network_create_operational_network(thread_instance_h instance,
        const char *name, const char *key, const char *pskc, uint32_t channel,
index 416bb5a..8005a1e 100644 (file)
@@ -483,4 +483,25 @@ TEST_F(ThreadNetworkTest, SetPanidErrorNone)
        EXPECT_EQ(THREAD_ERROR_NONE, thread_network_create(&network));
        EXPECT_EQ(THREAD_ERROR_NONE,
                thread_network_set_panid(network, NETWORK_DUMMY_PANID));
+}
+
+TEST_F(ThreadNetworkTest, SetOperationalNetworkNotInitialized)
+{
+       EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize());
+       EXPECT_EQ(THREAD_ERROR_NOT_INITIALIZED,
+               thread_set_operational_network(instance, network));
+}
+
+TEST_F(ThreadNetworkTest, SetOperationalNetworkInvalidParameter)
+{
+       EXPECT_EQ(THREAD_ERROR_INVALID_PARAMETER,
+               thread_set_operational_network(instance, network));
+}
+
+TEST_F(ThreadNetworkTest, SetOperationalNetworkErrorNone)
+{
+       EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance));
+       EXPECT_EQ(THREAD_ERROR_NONE, thread_network_create(&network));
+       EXPECT_EQ(THREAD_ERROR_NONE,
+               thread_set_operational_network(instance, network));
 }
\ No newline at end of file