[UTC][multi-assistant][ACR-1455][Add new APIs for supporting additional features] 96/215096/2
authorJi-hoon Lee <dalton.lee@samsung.com>
Tue, 1 Oct 2019 10:29:14 +0000 (19:29 +0900)
committerJi-hoon Lee <dalton.lee@samsung.com>
Tue, 1 Oct 2019 11:30:35 +0000 (20:30 +0900)
Change-Id: Id2413e9e7613c12ade07e2e5b18aa9ff87ff668b

packaging/utc/core-multi-assistant-tests.xml
src/utc/multi-assistant/public.list
src/utc/multi-assistant/tct-multi-assistant-core.c
src/utc/multi-assistant/tct-multi-assistant-core_mobile.h
src/utc/multi-assistant/tct-multi-assistant-core_tizeniot.h
src/utc/multi-assistant/tct-multi-assistant-core_wearable.h
src/utc/multi-assistant/utc-multi-assistant.c

index bbdae4054ca57e244aa671dd3d3dcd39aa3b1174..81d72f7eb087df7f1ee3ad3cd185cb543d9d7a64 100755 (executable)
@@ -13,5 +13,6 @@
     </ui-application>
        <privileges>
                <privilege>http://tizen.org/privilege/recorder</privilege>
+               <privilege>http://tizen.org/privilege/volume.set</privilege>
        </privileges>
 </manifest>
index 0672d3170fba197413a24ad7c981c9ac2208163a..bc6c627c7a2e7c070fc3a9358d4a7901510dbaed 100644 (file)
@@ -23,4 +23,13 @@ ma_stop_receiving_audio_streaming_data
 ma_update_voice_feedback_state
 ma_send_assistant_specific_command
 ma_set_wakeup_engine_command_cb
-ma_unset_wakeup_engine_command_cb
\ No newline at end of file
+ma_unset_wakeup_engine_command_cb
+ma_assistant_info_foreach_assistants
+ma_assistant_info_get_app_id
+ma_assistant_info_get_enabled_status
+ma_get_recording_audio_source_type
+ma_set_background_volume
+ma_set_preprocessing_allow_mode
+ma_set_preprocessing_information_changed_cb
+ma_unset_preprocessing_information_changed_cb
+ma_send_preprocessing_result
index e1626379555311dc741e1acd96972ac41414e11e..a937de18d4e12432b2657ae158b67072f178a366 100644 (file)
@@ -30,7 +30,7 @@
 #include "tct-multi-assistant-core_tv.h"
 #endif
 
-#ifdef TIZENIOT    
+#ifdef TIZENIOT
 #include "tct-multi-assistant-core_tizeniot.h"
 #endif //TIZENIOT
 
index 418541ff6053fbf1614b51177dff6b3ebaabe410..0b040bd21a008a9f4149075364cdfeb213c52f67 100644 (file)
@@ -82,6 +82,26 @@ extern int utc_ma_set_wakeup_engine_command_cb_n1(void);
 extern int utc_ma_set_wakeup_engine_command_cb_n2(void);
 extern int utc_ma_unset_wakeup_engine_command_cb_p(void);
 extern int utc_ma_unset_wakeup_engine_command_cb_n(void);
+extern int utc_ma_assistant_info_foreach_assistants_p(void);
+extern int utc_ma_assistant_info_foreach_assistants_n(void);
+extern int utc_ma_assistant_info_get_app_id_p(void);
+extern int utc_ma_assistant_info_get_app_id_n(void);
+extern int utc_ma_assistant_info_get_enabled_status_p(void);
+extern int utc_ma_assistant_info_get_enabled_status_n(void);
+extern int utc_ma_get_recording_audio_source_type_p(void);
+extern int utc_ma_get_recording_audio_source_type_n1(void);
+extern int utc_ma_get_recording_audio_source_type_n2(void);
+extern int utc_ma_set_background_volume_p(void);
+extern int utc_ma_set_background_volume_n(void);
+extern int utc_ma_set_preprocessing_allow_mode_p(void);
+extern int utc_ma_set_preprocessing_allow_mode_n(void);
+extern int utc_ma_set_preprocessing_information_changed_cb_p(void);
+extern int utc_ma_set_preprocessing_information_changed_cb_n1(void);
+extern int utc_ma_set_preprocessing_information_changed_cb_n2(void);
+extern int utc_ma_unset_preprocessing_information_changed_cb_p(void);
+extern int utc_ma_unset_preprocessing_information_changed_cb_n(void);
+extern int utc_ma_send_preprocessing_result_p(void);
+extern int utc_ma_send_preprocessing_result_n(void);
 
 testcase tc_array[] = {
        {"utc_ma_initialize_p",utc_ma_initialize_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
@@ -144,6 +164,26 @@ testcase tc_array[] = {
        {"utc_ma_set_wakeup_engine_command_cb_n2",utc_ma_set_wakeup_engine_command_cb_n2,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
        {"utc_ma_unset_wakeup_engine_command_cb_p",utc_ma_unset_wakeup_engine_command_cb_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
        {"utc_ma_unset_wakeup_engine_command_cb_n",utc_ma_unset_wakeup_engine_command_cb_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_foreach_assistants_p",utc_ma_assistant_info_foreach_assistants_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_foreach_assistants_n",utc_ma_assistant_info_foreach_assistants_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_get_app_id_p",utc_ma_assistant_info_get_app_id_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_get_app_id_n",utc_ma_assistant_info_get_app_id_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_get_enabled_status_p",utc_ma_assistant_info_get_enabled_status_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_get_enabled_status_n",utc_ma_assistant_info_get_enabled_status_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_get_recording_audio_source_type_p",utc_ma_get_recording_audio_source_type_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_get_recording_audio_source_type_n1",utc_ma_get_recording_audio_source_type_n1,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_get_recording_audio_source_type_n2",utc_ma_get_recording_audio_source_type_n2,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_background_volume_p",utc_ma_set_background_volume_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_background_volume_n",utc_ma_set_background_volume_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_preprocessing_allow_mode_p",utc_ma_set_preprocessing_allow_mode_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_preprocessing_allow_mode_n",utc_ma_set_preprocessing_allow_mode_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_preprocessing_information_changed_cb_p",utc_ma_set_preprocessing_information_changed_cb_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_preprocessing_information_changed_cb_n1",utc_ma_set_preprocessing_information_changed_cb_n1,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_preprocessing_information_changed_cb_n2",utc_ma_set_preprocessing_information_changed_cb_n2,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_unset_preprocessing_information_changed_cb_p",utc_ma_unset_preprocessing_information_changed_cb_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_unset_preprocessing_information_changed_cb_n",utc_ma_unset_preprocessing_information_changed_cb_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_send_preprocessing_result_p",utc_ma_send_preprocessing_result_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_send_preprocessing_result_n",utc_ma_send_preprocessing_result_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
        {NULL, NULL}
 };
 
index 418541ff6053fbf1614b51177dff6b3ebaabe410..630449771882b832e72d3dbc629e987fb2d6aa5c 100644 (file)
@@ -82,6 +82,26 @@ extern int utc_ma_set_wakeup_engine_command_cb_n1(void);
 extern int utc_ma_set_wakeup_engine_command_cb_n2(void);
 extern int utc_ma_unset_wakeup_engine_command_cb_p(void);
 extern int utc_ma_unset_wakeup_engine_command_cb_n(void);
+extern int utc_ma_assistant_info_foreach_assistants_p(void);
+extern int utc_ma_assistant_info_foreach_assistants_n(void);
+extern int utc_ma_assistant_info_get_app_id_p(void);
+extern int utc_ma_assistant_info_get_app_id_n(void);
+extern int utc_ma_assistant_info_get_enabled_status_p(void);
+extern int utc_ma_assistant_info_get_enabled_status_n(void);
+extern int utc_ma_get_recording_audio_source_type_p(void);
+extern int utc_ma_get_recording_audio_source_type_n1(void);
+extern int utc_ma_get_recording_audio_source_type_n2(void);
+extern int utc_ma_set_background_volume_p(void);
+extern int utc_ma_set_background_volume_n(void);
+extern int utc_ma_set_preprocessing_allow_mode_p(void);
+extern int utc_ma_set_preprocessing_allow_mode_n(void);
+extern int utc_ma_set_preprocessing_information_changed_cb_p(void);
+extern int utc_ma_set_preprocessing_information_changed_cb_n1(void);
+extern int utc_ma_set_preprocessing_information_changed_cb_n2(void);
+extern int utc_ma_unset_preprocessing_information_changed_cb_p(void);
+extern int utc_ma_unset_preprocessing_information_changed_cb_n(void);
+extern int utc_ma_send_preprocessing_result_p(void);
+extern int utc_ma_send_preprocessing_result_n(void);
 
 testcase tc_array[] = {
        {"utc_ma_initialize_p",utc_ma_initialize_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
@@ -144,6 +164,26 @@ testcase tc_array[] = {
        {"utc_ma_set_wakeup_engine_command_cb_n2",utc_ma_set_wakeup_engine_command_cb_n2,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
        {"utc_ma_unset_wakeup_engine_command_cb_p",utc_ma_unset_wakeup_engine_command_cb_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
        {"utc_ma_unset_wakeup_engine_command_cb_n",utc_ma_unset_wakeup_engine_command_cb_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_foreach_assistants_p",utc_ma_assistant_info_foreach_assistants_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_foreach_assistants_n",utc_ma_assistant_info_foreach_assistants_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_get_app_id_p",utc_ma_assistant_info_get_app_id_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_get_app_id_n",utc_ma_assistant_info_get_app_id_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_get_enabled_status_p",utc_ma_assistant_info_get_enabled_status_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_get_enabled_status_n",utc_ma_assistant_info_get_enabled_status_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_get_recording_audio_source_type_p",utc_ma_get_recording_audio_source_type_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_get_recording_audio_source_type_n1",utc_ma_get_recording_audio_source_type_n1,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_get_recording_audio_source_type_n2",utc_ma_get_recording_audio_source_type_n2,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_background_volume_p",utc_ma_set_background_volume_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_background_volume_n",utc_ma_set_background_volume_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_preprocessing_allow_mode_p",utc_ma_set_preprocessing_allow_mode_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_preprocessing_allow_mode_n",utc_ma_set_preprocessing_allow_mode_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_preprocessing_information_changed_cb_p",utc_ma_set_preprocessing_information_changed_cb_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_preprocessing_information_changed_cb_n",utc_ma_set_preprocessing_information_changed_cb_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_unset_preprocessing_information_changed_cb_p",utc_ma_unset_preprocessing_information_changed_cb_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_unset_preprocessing_information_changed_cb_n1",utc_ma_unset_preprocessing_information_changed_cb_n1,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_unset_preprocessing_information_changed_cb_n2",utc_ma_unset_preprocessing_information_changed_cb_n2,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_send_preprocessing_result_p",utc_ma_send_preprocessing_result_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_send_preprocessing_result_n",utc_ma_send_preprocessing_result_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
        {NULL, NULL}
 };
 
index 418541ff6053fbf1614b51177dff6b3ebaabe410..0b040bd21a008a9f4149075364cdfeb213c52f67 100644 (file)
@@ -82,6 +82,26 @@ extern int utc_ma_set_wakeup_engine_command_cb_n1(void);
 extern int utc_ma_set_wakeup_engine_command_cb_n2(void);
 extern int utc_ma_unset_wakeup_engine_command_cb_p(void);
 extern int utc_ma_unset_wakeup_engine_command_cb_n(void);
+extern int utc_ma_assistant_info_foreach_assistants_p(void);
+extern int utc_ma_assistant_info_foreach_assistants_n(void);
+extern int utc_ma_assistant_info_get_app_id_p(void);
+extern int utc_ma_assistant_info_get_app_id_n(void);
+extern int utc_ma_assistant_info_get_enabled_status_p(void);
+extern int utc_ma_assistant_info_get_enabled_status_n(void);
+extern int utc_ma_get_recording_audio_source_type_p(void);
+extern int utc_ma_get_recording_audio_source_type_n1(void);
+extern int utc_ma_get_recording_audio_source_type_n2(void);
+extern int utc_ma_set_background_volume_p(void);
+extern int utc_ma_set_background_volume_n(void);
+extern int utc_ma_set_preprocessing_allow_mode_p(void);
+extern int utc_ma_set_preprocessing_allow_mode_n(void);
+extern int utc_ma_set_preprocessing_information_changed_cb_p(void);
+extern int utc_ma_set_preprocessing_information_changed_cb_n1(void);
+extern int utc_ma_set_preprocessing_information_changed_cb_n2(void);
+extern int utc_ma_unset_preprocessing_information_changed_cb_p(void);
+extern int utc_ma_unset_preprocessing_information_changed_cb_n(void);
+extern int utc_ma_send_preprocessing_result_p(void);
+extern int utc_ma_send_preprocessing_result_n(void);
 
 testcase tc_array[] = {
        {"utc_ma_initialize_p",utc_ma_initialize_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
@@ -144,6 +164,26 @@ testcase tc_array[] = {
        {"utc_ma_set_wakeup_engine_command_cb_n2",utc_ma_set_wakeup_engine_command_cb_n2,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
        {"utc_ma_unset_wakeup_engine_command_cb_p",utc_ma_unset_wakeup_engine_command_cb_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
        {"utc_ma_unset_wakeup_engine_command_cb_n",utc_ma_unset_wakeup_engine_command_cb_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_foreach_assistants_p",utc_ma_assistant_info_foreach_assistants_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_foreach_assistants_n",utc_ma_assistant_info_foreach_assistants_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_get_app_id_p",utc_ma_assistant_info_get_app_id_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_get_app_id_n",utc_ma_assistant_info_get_app_id_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_get_enabled_status_p",utc_ma_assistant_info_get_enabled_status_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_assistant_info_get_enabled_status_n",utc_ma_assistant_info_get_enabled_status_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_get_recording_audio_source_type_p",utc_ma_get_recording_audio_source_type_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_get_recording_audio_source_type_n1",utc_ma_get_recording_audio_source_type_n1,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_get_recording_audio_source_type_n2",utc_ma_get_recording_audio_source_type_n2,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_background_volume_p",utc_ma_set_background_volume_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_background_volume_n",utc_ma_set_background_volume_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_preprocessing_allow_mode_p",utc_ma_set_preprocessing_allow_mode_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_preprocessing_allow_mode_n",utc_ma_set_preprocessing_allow_mode_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_preprocessing_information_changed_cb_p",utc_ma_set_preprocessing_information_changed_cb_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_preprocessing_information_changed_cb_n1",utc_ma_set_preprocessing_information_changed_cb_n1,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_set_preprocessing_information_changed_cb_n2",utc_ma_set_preprocessing_information_changed_cb_n2,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_unset_preprocessing_information_changed_cb_p",utc_ma_unset_preprocessing_information_changed_cb_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_unset_preprocessing_information_changed_cb_n",utc_ma_unset_preprocessing_information_changed_cb_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_send_preprocessing_result_p",utc_ma_send_preprocessing_result_p,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
+       {"utc_ma_send_preprocessing_result_n",utc_ma_send_preprocessing_result_n,utc_multi_assistant_startup,utc_multi_assistant_cleanup},
        {NULL, NULL}
 };
 
index fc2b45d2cb18fc52971147328a6b6f85c9df4772..d659f9eefc62d908651360537d603e3d2e35a89f 100644 (file)
@@ -24,6 +24,8 @@ static int g_ma_init = false;
 static ma_state_e g_ma_state = MA_STATE_NONE;
 static bool g_ma_supported = false;
 static ma_active_state_e g_ma_active_state = MA_ACTIVE_STATE_INACTIVE;
+static ma_assistant_info_h g_ma_assistant_handle = NULL;
+
 static void __ma_state_changed_cb(ma_state_e previous, ma_state_e current, void* user_data)
 {
        g_ma_state = current;
@@ -50,6 +52,16 @@ static void __ma_active_state_changed_cb(ma_active_state_e previous, ma_active_s
 static void __ma_set_wakeup_engine_command_changed_cb(const char *command, void* user_data)
 {
 }
+
+static int __ma_assistant_info_list_cb(ma_assistant_info_h handle, void* user_data)
+{
+       g_ma_assistant_handle = handle;
+}
+
+static void __ma_preprocessing_information_changed_cb(const char* app_id, void* user_data)
+{
+}
+
 /**
  * @function           utc_multi_assistant_startup
  * @description                Called before each test
@@ -84,6 +96,8 @@ void utc_multi_assistant_startup(void)
                        g_ma_init = false;
                }
        }
+
+       g_ma_assistant_handle = NULL;
 }
 
 /**
@@ -515,7 +529,7 @@ int utc_ma_get_recording_audio_format_n2(void)
                int rate;
                ma_audio_channel_e channel;
                ma_audio_type_e audio_type;
-               
+
                ret = ma_get_recording_audio_format(&rate, &channel, &audio_type);
                assert_eq(ret, MA_ERROR_INVALID_STATE);
        }
@@ -1725,3 +1739,563 @@ int utc_ma_unset_wakeup_engine_command_cb_n(void)
 
        return 0;
 }
+
+/**
+ * @testcase           utc_ma_assistant_info_foreach_assistants_p
+ * @since_tizen                5.5
+ * @description                Positive UTC for assistant info foreach assistants
+ */
+int utc_ma_assistant_info_foreach_assistants_p(void)
+{
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_assistant_info_foreach_assistants(__ma_assistant_info_list_cb, NULL);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_assistant_info_foreach_assistants(__ma_assistant_info_list_cb, NULL);
+               assert_eq(ret, MA_ERROR_NONE);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_assistant_info_foreach_assistants_n
+ * @since_tizen                5.5
+ * @description                Negative UTC for  ma assistant info foreach assistants (Invalid parameter)
+ */
+int utc_ma_assistant_info_foreach_assistants_n(void)
+{
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_assistant_info_foreach_assistants(NULL, NULL);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_assistant_info_foreach_assistants(NULL, NULL);
+               assert_eq(ret, MA_ERROR_INVALID_PARAMETER);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           ma_assistant_info_get_app_id_p
+ * @since_tizen                5.5
+ * @description                Positive UTC for assistant info get app id
+ */
+int utc_ma_assistant_info_get_app_id_p(void)
+{
+       char* app_id = NULL;
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_assistant_info_get_app_id(NULL, &app_id);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_assistant_info_foreach_assistants(__ma_assistant_info_list_cb, NULL);
+               if (NULL == g_ma_assistant_handle) {
+                       ret = ma_assistant_info_get_app_id(g_ma_assistant_handle, &app_id);
+                       assert_eq(ret, MA_ERROR_INVALID_PARAMETER);
+               } else {
+                       ret = ma_assistant_info_get_app_id(g_ma_assistant_handle, &app_id);
+                       assert_eq(ret, MA_ERROR_NONE);
+               }
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_assistant_info_get_app_id_n
+ * @since_tizen                5.5
+ * @description                Negative UTC for assistant info get app id (Invalid parameter)
+ */
+int utc_ma_assistant_info_get_app_id_n(void)
+{
+       char* app_id = NULL;
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_assistant_info_get_app_id(NULL, &app_id);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_assistant_info_get_app_id(NULL, &app_id);
+               assert_eq(ret, MA_ERROR_INVALID_PARAMETER);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_assistant_info_get_enabled_status_p
+ * @since_tizen                5.5
+ * @description                Positive UTC for assistant info get enabled status
+ */
+int utc_ma_assistant_info_get_enabled_status_p(void)
+{
+       bool status = false;
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_assistant_info_get_enabled_status(NULL, &status);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_assistant_info_foreach_assistants(__ma_assistant_info_list_cb, NULL);
+               if (NULL == g_ma_assistant_handle) {
+                       ret = ma_assistant_info_get_enabled_status(g_ma_assistant_handle, &status);
+                       assert_eq(ret, MA_ERROR_INVALID_PARAMETER);
+               } else {
+                       ret = ma_assistant_info_get_enabled_status(g_ma_assistant_handle, &status);
+                       assert_eq(ret, MA_ERROR_NONE);
+               }
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_assistant_info_get_enabled_status_n
+ * @since_tizen                5.5
+ * @description                Negative UTC for assistant info get enabled status (Invalid parameter)
+ */
+int utc_ma_assistant_info_get_enabled_status_n(void)
+{
+       bool status = false;
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_assistant_info_get_enabled_status(NULL, &status);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_assistant_info_get_enabled_status(NULL, &status);
+               assert_eq(ret, MA_ERROR_INVALID_PARAMETER);
+       }
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_get_recording_audio_source_type_p
+ * @since_tizen                5.5
+ * @description                Positive UTC for get recording audio source type
+ */
+int utc_ma_get_recording_audio_source_type_p(void)
+{
+       char* type = NULL;
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_get_recording_audio_source_type(&type);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_prepare();
+               assert_eq(ret, MA_ERROR_NONE);
+
+               while (MA_STATE_READY != g_ma_state) {
+                       ecore_main_loop_iterate();
+               }
+
+               ret = ma_get_recording_audio_source_type(&type);
+               assert_eq(ret, MA_ERROR_NONE);
+
+               ret = ma_unprepare();
+               assert_eq(ret, MA_ERROR_NONE);
+       }
+       if (type) {
+               free(type);
+               type = NULL;
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_get_recording_audio_source_type_n1
+ * @since_tizen                5.5
+ * @description                Negative UTC for get recording audio source type (Invalid parameter)
+ */
+int utc_ma_get_recording_audio_source_type_n1(void)
+{
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_get_recording_audio_source_type(NULL);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_prepare();
+               assert_eq(ret, MA_ERROR_NONE);
+
+               while (MA_STATE_READY != g_ma_state) {
+                       ecore_main_loop_iterate();
+               }
+
+               ret = ma_get_recording_audio_source_type(NULL);
+               assert_eq(ret, MA_ERROR_INVALID_PARAMETER);
+
+               ret = ma_unprepare();
+               assert_eq(ret, MA_ERROR_NONE);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_get_recording_audio_source_type_n2
+ * @since_tizen                5.5
+ * @description                Negative UTC for get recording audio source type (Invalid state)
+ */
+int utc_ma_get_recording_audio_source_type_n2(void)
+{
+       char* type = NULL;
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_get_recording_audio_source_type(&type);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_get_recording_audio_source_type(&type);
+               assert_eq(ret, MA_ERROR_INVALID_STATE);
+       }
+       if (type) {
+               free(type);
+               type = NULL;
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_set_background_volume_p
+ * @since_tizen                5.5
+ * @description                Positive UTC for set background volume
+ */
+int utc_ma_set_background_volume_p(void)
+{
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_set_background_volume(1.0);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_prepare();
+               assert_eq(ret, MA_ERROR_NONE);
+
+               while (MA_STATE_READY != g_ma_state) {
+                       ecore_main_loop_iterate();
+               }
+
+               ret = ma_set_background_volume(1.0);
+               assert_eq(ret, MA_ERROR_NONE);
+
+               ret = ma_unprepare();
+               assert_eq(ret, MA_ERROR_NONE);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_set_background_volume_n
+ * @since_tizen                5.5
+ * @description                Negative UTC for set background volume (Invalid state)
+ */
+int utc_ma_set_background_volume_n(void)
+{
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_set_background_volume(1.0);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_set_background_volume(1.0);
+               assert_eq(ret, MA_ERROR_INVALID_STATE);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_set_preprocessing_allow_mode_p
+ * @since_tizen                5.5
+ * @description                Positive UTC for set preprocessing allow mode
+ */
+int utc_ma_set_preprocessing_allow_mode_p(void)
+{
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_set_preprocessing_allow_mode(MA_PREPROCESSING_ALLOW_NONE, NULL);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_prepare();
+               assert_eq(ret, MA_ERROR_NONE);
+
+               while (MA_STATE_READY != g_ma_state) {
+                       ecore_main_loop_iterate();
+               }
+
+               ret = ma_set_preprocessing_allow_mode(MA_PREPROCESSING_ALLOW_NONE, NULL);
+               assert_eq(ret, MA_ERROR_NONE);
+
+               ret = ma_unprepare();
+               assert_eq(ret, MA_ERROR_NONE);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_set_preprocessing_allow_mode_n
+ * @since_tizen                5.5
+ * @description                Negative UTC for set preprocessing allow mode (Invalid state)
+ */
+int utc_ma_set_preprocessing_allow_mode_n(void)
+{
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_set_preprocessing_allow_mode(MA_PREPROCESSING_ALLOW_NONE, NULL);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_set_preprocessing_allow_mode(MA_PREPROCESSING_ALLOW_NONE, NULL);
+               assert_eq(ret, MA_ERROR_INVALID_STATE);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_set_preprocessing_information_changed_cb_p
+ * @since_tizen                5.5
+ * @description                Positive UTC for set preprocessing information changed callback
+ */
+int utc_ma_set_preprocessing_information_changed_cb_p(void)
+{
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+               int ret = MA_ERROR_NONE;
+               ret = ma_set_preprocessing_information_changed_cb(__ma_preprocessing_information_changed_cb, NULL);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_set_preprocessing_information_changed_cb(__ma_preprocessing_information_changed_cb, NULL);
+               assert_eq(ret, MA_ERROR_NONE);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_set_preprocessing_information_changed_cb_n1
+ * @since_tizen                5.5
+ * @description                Negative UTC for set preprocessing information changed callback (Invalid parameter)
+ */
+int utc_ma_set_preprocessing_information_changed_cb_n1(void)
+{
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_set_preprocessing_information_changed_cb(NULL, NULL);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_set_preprocessing_information_changed_cb(NULL, NULL);
+               assert_eq(ret, MA_ERROR_INVALID_PARAMETER);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_set_preprocessing_information_changed_cb_n2
+ * @since_tizen                5.5
+ * @description                Negative UTC for set preprocessing information changed callback (Invalid state)
+ */
+int utc_ma_set_preprocessing_information_changed_cb_n2(void)
+{
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_set_preprocessing_information_changed_cb(__ma_preprocessing_information_changed_cb, NULL);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_deinitialize();
+               assert_eq(ret, MA_ERROR_NONE);
+
+               ret = ma_set_preprocessing_information_changed_cb(__ma_preprocessing_information_changed_cb, NULL);
+               assert_eq(ret, MA_ERROR_INVALID_STATE);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_unset_preprocessing_information_changed_cb_p
+ * @since_tizen                5.5
+ * @description                Positive UTC for unset preprocessing information changed callback
+ */
+int utc_ma_unset_preprocessing_information_changed_cb_p(void)
+{
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_unset_preprocessing_information_changed_cb();
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_unset_preprocessing_information_changed_cb();
+               assert_eq(ret, MA_ERROR_NONE);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_unset_preprocessing_information_changed_cb_n
+ * @since_tizen                5.5
+ * @description                Negative UTC for unset preprocessing information changed callback (Invalid state)
+ */
+int utc_ma_unset_preprocessing_information_changed_cb_n(void)
+{
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_unset_preprocessing_information_changed_cb();
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_deinitialize();
+               assert_eq(ret, MA_ERROR_NONE);
+
+               ret = ma_unset_preprocessing_information_changed_cb();
+               assert_eq(ret, MA_ERROR_INVALID_STATE);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_send_preprocessing_result_p
+ * @since_tizen                5.5
+ * @description                Positive UTC for send preprocessing result
+ */
+int utc_ma_send_preprocessing_result_p(void)
+{
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_send_preprocessing_result(false);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_prepare();
+               assert_eq(ret, MA_ERROR_NONE);
+
+               while (MA_STATE_READY != g_ma_state) {
+                       ecore_main_loop_iterate();
+               }
+
+               ret = ma_send_preprocessing_result(false);
+               assert_eq(ret, MA_ERROR_NONE);
+
+               ret = ma_unprepare();
+               assert_eq(ret, MA_ERROR_NONE);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_ma_send_preprocessing_result_n
+ * @since_tizen                5.5
+ * @description                Negative UTC for send preprocessing result (Invalid state)
+ */
+int utc_ma_send_preprocessing_result_n(void)
+{
+       if (false == g_ma_supported) {
+               assert_eq(g_ma_init, false);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_send_preprocessing_result(false);
+               assert_eq(ret, MA_ERROR_NOT_SUPPORTED);
+       } else {
+               assert_eq(g_ma_init, true);
+
+               int ret = MA_ERROR_NONE;
+               ret = ma_send_preprocessing_result(false);
+               assert_eq(ret, MA_ERROR_INVALID_STATE);
+       }
+
+       return 0;
+}