Add thread_unset_operational_network API with unittest 38/273138/1
authorhyunuk.tak <hyunuk.tak@samsung.com>
Wed, 30 Mar 2022 02:28:32 +0000 (11:28 +0900)
committerhyunuk.tak <hyunuk.tak@samsung.com>
Thu, 31 Mar 2022 01:00:16 +0000 (10:00 +0900)
Change-Id: I0b1d98638797311f8b5f2a52acd95bf885f42ce2
Signed-off-by: hyunuk.tak <hyunuk.tak@samsung.com>
src/thread-network.c
tests/unittest/thread-unittest-network.cpp

index 7ad00c9d8f0718ab9e3eeb19fc552a94cbedd56a..258560c7a6d295b7f3942ea06230c0a7dce9344f 100644 (file)
@@ -230,6 +230,20 @@ int thread_set_operational_network(thread_instance_h instance, thread_network_h
        return THREAD_ERROR_NONE;
 }
 
+int thread_unset_operational_network(thread_instance_h instance)
+{
+       FUNC_ENTRY;
+       THREAD_CHECK_SUPPORTED_FEATURE(THREAD_FEATURE_COMMON);
+       THREAD_CHECK_INIT_STATUS();
+       THREAD_VALIDATE_INPUT_PARAMETER(instance);
+
+       thread_instance_s *current_instance = instance;
+       current_instance->network = NULL;
+
+       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 8005a1e79e4a4e0d7ab4dd759338caa790d88c89..08c407880956fe4dbc4fe65f09b33defc06007ef 100644 (file)
@@ -78,7 +78,10 @@ protected:
                if (instance)
                {
                        if (network)
+                       {
                                thread_network_destroy(network);
+                               thread_unset_operational_network(instance);
+                       }
                        if (operationalNetwork)
                                thread_network_destroy_operational_network(instance, operationalNetwork);
                        thread_disable(instance);
@@ -504,4 +507,25 @@ TEST_F(ThreadNetworkTest, SetOperationalNetworkErrorNone)
        EXPECT_EQ(THREAD_ERROR_NONE, thread_network_create(&network));
        EXPECT_EQ(THREAD_ERROR_NONE,
                thread_set_operational_network(instance, network));
+}
+
+TEST_F(ThreadNetworkTest, UnsetOperationalNetworkNotInitialized)
+{
+       EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize());
+       EXPECT_EQ(THREAD_ERROR_NOT_INITIALIZED,
+               thread_unset_operational_network(instance));
+}
+
+TEST_F(ThreadNetworkTest, UnsetOperationalNetworkInvalidParameter)
+{
+       EXPECT_EQ(THREAD_ERROR_INVALID_PARAMETER,
+               thread_unset_operational_network(instance));
+}
+
+TEST_F(ThreadNetworkTest, UnsetOperationalNetworkErrorNone)
+{
+       EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance));
+       EXPECT_EQ(THREAD_ERROR_NONE, thread_network_create(&network));
+       EXPECT_EQ(THREAD_ERROR_NONE,
+               thread_unset_operational_network(instance));
 }
\ No newline at end of file