diff --git a/splunk_add_on_ucc_framework/generators/conf_files/create_alert_actions_conf.py b/splunk_add_on_ucc_framework/generators/conf_files/create_alert_actions_conf.py
index 3d0d87d3b4..b817fe3bda 100644
--- a/splunk_add_on_ucc_framework/generators/conf_files/create_alert_actions_conf.py
+++ b/splunk_add_on_ucc_framework/generators/conf_files/create_alert_actions_conf.py
@@ -31,8 +31,6 @@ class AlertActionsConf(ConfGenerator):
     def _set_attributes(self, **kwargs: Any) -> None:
         self.conf_file = "alert_actions.conf"
         self.conf_spec_file = f"{self.conf_file}.spec"
-        if self._global_config is None:
-            return
 
         envs = normalize.normalize(
             self._global_config.alerts,
diff --git a/tests/testdata/test_addons/package_global_config_everything/globalConfig.json b/tests/testdata/test_addons/package_global_config_everything/globalConfig.json
index b8bb0fa55f..3391f3837b 100644
--- a/tests/testdata/test_addons/package_global_config_everything/globalConfig.json
+++ b/tests/testdata/test_addons/package_global_config_everything/globalConfig.json
@@ -2090,7 +2090,7 @@
     "meta": {
         "name": "Splunk_TA_UCCExample",
         "restRoot": "splunk_ta_uccexample",
-        "version": "5.60.0+34ad0cb7a",
+        "version": "5.60.0+19f2276ad",
         "displayName": "Splunk UCC test Add-on",
         "schemaVersion": "0.0.9",
         "supportedThemes": [
diff --git a/tests/unit/conftest.py b/tests/unit/conftest.py
index 632676d955..61d204a4b8 100644
--- a/tests/unit/conftest.py
+++ b/tests/unit/conftest.py
@@ -117,6 +117,22 @@ def global_config_single_authentication() -> global_config_lib.GlobalConfig:
     return global_config
 
 
+@pytest.fixture
+def global_config_with_oauth_account() -> global_config_lib.GlobalConfig:
+    global_config_path = helpers.get_testdata_file_path("valid_config_expand.json")
+    global_config = global_config_lib.GlobalConfig.from_file(global_config_path)
+    return global_config
+
+
+@pytest.fixture
+def global_config_with_with_one_entity_per_input() -> global_config_lib.GlobalConfig:
+    global_config_path = helpers.get_testdata_file_path(
+        "valid_config_with_one_entity_per_input.json"
+    )
+    global_config = global_config_lib.GlobalConfig.from_file(global_config_path)
+    return global_config
+
+
 @pytest.fixture()
 def os_dependent_library_config():
     return lambda name="lib1", python_version="37", target="t", os="os": OSDependentLibraryConfig(
diff --git a/tests/unit/generators/conf_files/test_create_account_conf_spec.py b/tests/unit/generators/conf_files/test_create_account_conf_spec.py
index 016f9d4ddd..d8b1a8436b 100644
--- a/tests/unit/generators/conf_files/test_create_account_conf_spec.py
+++ b/tests/unit/generators/conf_files/test_create_account_conf_spec.py
@@ -1,46 +1,32 @@
-from pytest import fixture
 from unittest.mock import patch, MagicMock
 from splunk_add_on_ucc_framework.generators.conf_files import AccountConf
-from splunk_add_on_ucc_framework.global_config import GlobalConfig
-from tests.unit.helpers import get_testdata_file_path
 
-TA_NAME = "test_addon"
 
-
-@fixture
-def global_config():
-    gc = GlobalConfig.from_file(get_testdata_file_path("valid_config.json"))
-    gc._content["meta"]["restRoot"] = TA_NAME
-    return gc
-
-
-def test_set_attributes(global_config, input_dir, output_dir, ucc_dir, ta_name):
+def test_set_attributes(
+    global_config_with_with_one_entity_per_input,
+    input_dir,
+    output_dir,
+    ucc_dir,
+    ta_name,
+):
     """Test when _global_config has mixed accounts (some 'oauth', some not)."""
     account_spec = AccountConf(
-        global_config, input_dir, output_dir, ucc_dir=ucc_dir, addon_name=ta_name
-    )
-    account_spec._global_config = MagicMock()
-    account_spec._gc_schema = MagicMock()
-
-    # Mock the global config and schema behaviors
-    account_spec._global_config.configs = [
-        {"name": "oauth", "entity": "entity1"},
-        {"name": "non_oauth", "entity": "entity2"},
-    ]
-    account_spec._global_config.namespace = TA_NAME
-    account_spec._gc_schema._get_oauth_enitities.return_value = "mocked_content"
-    account_spec._gc_schema._parse_fields.return_value = (
-        [MagicMock(_name="field2")],
-        [MagicMock(_name="field3")],
+        global_config_with_with_one_entity_per_input,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
     )
 
     account_spec._set_attributes()
 
     # Only the non-oauth account should be processed
-    assert account_spec.account_fields == [("<name>", ["field2 = "])]
+    assert account_spec.account_fields == [
+        ("<name>", ["custom_endpoint = ", "endpoint = ", "account_checkbox = "])
+    ]
     assert (
         account_spec.conf_spec_file
-        == f"{global_config.namespace.lower()}_account.conf.spec"
+        == f"{global_config_with_with_one_entity_per_input.namespace.lower()}_account.conf.spec"
     )
 
 
@@ -56,23 +42,22 @@ def test_set_attributes_conf_only_TA(
         addon_name=ta_name,
     )
 
-    account_spec._set_attributes()
-
     assert account_spec.account_fields == []
 
 
 def test_set_attributes_with_oauth_account(
-    global_config, input_dir, output_dir, ucc_dir, ta_name
+    global_config_with_oauth_account, input_dir, output_dir, ucc_dir, ta_name
 ):
     """Test when _global_config has an account with name 'oauth'."""
+    # need to expand the global config for logging tab
+    global_config_with_oauth_account.expand()
     account_spec = AccountConf(
-        global_config, input_dir, output_dir, ucc_dir=ucc_dir, addon_name=ta_name
+        global_config_with_oauth_account,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
     )
-    account_spec._global_config = MagicMock()
-
-    account_spec._global_config.configs = [{"name": "oauth", "entity": "entity1"}]
-
-    account_spec._set_attributes()
 
     # Since 'oauth' should be skipped, account_fields should remain empty
     assert account_spec.account_fields == []
@@ -81,34 +66,31 @@ def test_set_attributes_with_oauth_account(
 @patch(
     "splunk_add_on_ucc_framework.generators.conf_files.AccountConf.set_template_and_render"
 )
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.AccountConf.get_file_output_path"
-)
 def test_generate_conf_spec(
-    mock_op_path, mock_template, global_config, input_dir, output_dir, ucc_dir, ta_name
+    mock_template,
+    global_config_with_with_one_entity_per_input,
+    input_dir,
+    output_dir,
+    ucc_dir,
+    ta_name,
 ):
     content = "content"
     exp_fname = f"{ta_name}_account.conf.spec"
-    file_path = "output_path/ta_name_account.conf.spec"
-    mock_op_path.return_value = file_path
     mock_template_render = MagicMock()
     mock_template_render.render.return_value = content
 
     account_spec = AccountConf(
-        global_config, input_dir, output_dir, ucc_dir=ucc_dir, addon_name=ta_name
+        global_config_with_with_one_entity_per_input,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
     )
-    account_spec.writer = MagicMock()
     account_spec._template = mock_template_render
 
     file_paths = account_spec.generate_conf_spec()
-    assert mock_op_path.call_count == 1
     assert mock_template.call_count == 1
-    account_spec.writer.assert_called_once_with(
-        file_name=exp_fname,
-        file_path=file_path,
-        content=content,
-    )
-    assert file_paths == {exp_fname: file_path}
+    assert file_paths == {exp_fname: f"{output_dir}/{ta_name}/README/{exp_fname}"}
 
 
 def test_generate_conf_spec_no_configuration(
diff --git a/tests/unit/generators/conf_files/test_create_alert_actions_conf.py b/tests/unit/generators/conf_files/test_create_alert_actions_conf.py
index 5f33933153..503502ded6 100644
--- a/tests/unit/generators/conf_files/test_create_alert_actions_conf.py
+++ b/tests/unit/generators/conf_files/test_create_alert_actions_conf.py
@@ -1,5 +1,7 @@
 from unittest.mock import patch, MagicMock
 from splunk_add_on_ucc_framework.generators.conf_files import AlertActionsConf
+import shutil
+import json
 
 
 def mocked__set_attribute(this, **kwargs):
@@ -45,12 +47,42 @@ def mocked__set_attribute(this, **kwargs):
     this.conf_spec_file = f"{this.conf_file}.spec"
 
 
-def test_set_attributes_global_config_with_empty_alerts(
-    global_config_for_alerts, input_dir, output_dir, ucc_dir, ta_name
+@patch.object(shutil, "copy")
+def test_parameters_processing(
+    mock_copy, global_config_for_alerts, input_dir, output_dir, ucc_dir, ta_name
+):
+    alert_action_conf = AlertActionsConf(
+        global_config_for_alerts,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
+    )
+
+    assert "param.name = xyz" in alert_action_conf.alerts["test_alert_no_support"]
+
+
+@patch.object(shutil, "copy")
+def test_keys_not_in_deny_list(
+    mock_copy, global_config_for_alerts, input_dir, output_dir, ucc_dir, ta_name
 ):
-    global_config_for_alerts = MagicMock()
-    global_config_for_alerts.alerts = []
+    alert_actions_conf = AlertActionsConf(
+        global_config_for_alerts,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
+    )
+
+    assert (
+        "label = Test Alert Default" in alert_actions_conf.alerts["test_alert_default"]
+    )
+
 
+@patch.object(shutil, "copy")
+def test_parameters_without_default_value(
+    mock_copy, global_config_for_alerts, input_dir, output_dir, ucc_dir, ta_name
+):
     alert_action_conf = AlertActionsConf(
         global_config_for_alerts,
         input_dir,
@@ -58,8 +90,87 @@ def test_set_attributes_global_config_with_empty_alerts(
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    alert_action_conf._set_attributes(ucc_dir=ucc_dir)
 
+    assert "param.name = " in alert_action_conf.alerts["test_alert_active"]
+
+
+@patch.object(shutil, "copy")
+def test_custom_icon_file_name(
+    mock_copy, global_config_for_alerts, input_dir, output_dir, ucc_dir, ta_name
+):
+    alert_action_conf = AlertActionsConf(
+        global_config_for_alerts,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
+    )
+
+    assert "icon_path = dev_icon.png" in alert_action_conf.alerts["test_alert_default"]
+
+
+@patch.object(shutil, "copy")
+def test_default_icon_file_name(
+    mock_copy, global_config_for_alerts, input_dir, output_dir, ucc_dir, ta_name
+):
+    alert_action_conf = AlertActionsConf(
+        global_config_for_alerts,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
+    )
+
+    assert "icon_path = alerticon.png" in alert_action_conf.alerts["test_alert_active"]
+
+
+@patch.object(shutil, "copy")
+def test_adaptive_response(
+    mock_copy, global_config_for_alerts, input_dir, output_dir, ucc_dir, ta_name
+):
+    alert_action_conf = AlertActionsConf(
+        global_config_for_alerts,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
+    )
+
+    expected_json = json.dumps(
+        {
+            "task": ["Create"],
+            "subject": ["endpoint"],
+            "category": ["Information Portrayal"],
+            "technology": [
+                {
+                    "version": ["1.0.0"],
+                    "product": "Test Incident Update",
+                    "vendor": "Splunk",
+                }
+            ],
+            "supports_adhoc": True,
+            "supports_cloud": True,
+            "drilldown_uri": 'search?q=search%20index%3D"_internal"&earliest=0&latest=',
+        }
+    )
+
+    assert (
+        f"param._cam = {expected_json}"
+        in alert_action_conf.alerts["test_alert_adaptive"]
+    )
+
+
+def test_set_attributes_global_config_with_empty_alerts(
+    global_config_only_configuration, input_dir, output_dir, ucc_dir, ta_name
+):
+    alert_action_conf = AlertActionsConf(
+        global_config_only_configuration,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
+    )
+    assert alert_action_conf._alert_settings == []
     assert alert_action_conf.alerts == {}
     assert alert_action_conf.alerts_spec == {}
 
@@ -68,11 +179,7 @@ def test_set_attributes_global_config_with_empty_alerts(
 @patch(
     "splunk_add_on_ucc_framework.generators.conf_files.AlertActionsConf.set_template_and_render"
 )
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.AlertActionsConf.get_file_output_path"
-)
 def test_generate_conf(
-    mock_op_path,
     mock_template,
     global_config_for_alerts,
     input_dir,
@@ -82,8 +189,6 @@ def test_generate_conf(
 ):
     content = "content"
     exp_fname = "alert_actions.conf"
-    file_path = "output_path/alert_actions.conf"
-    mock_op_path.return_value = file_path
     template_render = MagicMock()
     template_render.render.return_value = content
 
@@ -95,33 +200,22 @@ def test_generate_conf(
         addon_name=ta_name,
     )
 
-    alert_actions_conf.writer = MagicMock()
     alert_actions_conf._template = template_render
     file_paths = alert_actions_conf.generate_conf()
-
-    # Ensure the appropriate methods were called and the file was generated
-    assert mock_op_path.call_count == 1
     assert mock_template.call_count == 1
-    alert_actions_conf.writer.assert_called_once_with(
-        file_name=exp_fname,
-        file_path=file_path,
-        content=content,
-    )
-    assert file_paths == {exp_fname: file_path}
+    assert file_paths == {exp_fname: f"{output_dir}/{ta_name}/default/{exp_fname}"}
 
 
-@patch.object(AlertActionsConf, "_set_attributes", mocked__set_attribute)
 def test_generate_conf_no_alerts(
-    global_config_for_alerts, input_dir, output_dir, ucc_dir, ta_name
+    global_config_only_configuration, input_dir, output_dir, ucc_dir, ta_name
 ):
     alert_action_conf = AlertActionsConf(
-        global_config_for_alerts,
+        global_config_only_configuration,
         input_dir,
         output_dir,
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    alert_action_conf.alerts = {}
     result = alert_action_conf.generate_conf()
     assert result is None
 
@@ -130,11 +224,7 @@ def test_generate_conf_no_alerts(
 @patch(
     "splunk_add_on_ucc_framework.generators.conf_files.AlertActionsConf.set_template_and_render"
 )
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.AlertActionsConf.get_file_output_path"
-)
 def test_generate_conf_spec(
-    mock_op_path,
     mock_template,
     global_config_for_alerts,
     input_dir,
@@ -144,8 +234,6 @@ def test_generate_conf_spec(
 ):
     content = "content"
     exp_fname = "alert_actions.conf.spec"
-    file_path = "output_path/alert_actions.conf.spec"
-    mock_op_path.return_value = file_path
     template_render = MagicMock()
     template_render.render.return_value = content
 
@@ -157,32 +245,23 @@ def test_generate_conf_spec(
         addon_name=ta_name,
     )
 
-    alert_actions_conf.writer = MagicMock()
     alert_actions_conf._template = template_render
     file_paths = alert_actions_conf.generate_conf_spec()
 
     # Ensure the appropriate methods were called and the file was generated
-    assert mock_op_path.call_count == 1
     assert mock_template.call_count == 1
-    alert_actions_conf.writer.assert_called_once_with(
-        file_name=exp_fname,
-        file_path=file_path,
-        content=content,
-    )
-    assert file_paths == {exp_fname: file_path}
+    assert file_paths == {exp_fname: f"{output_dir}/{ta_name}/README/{exp_fname}"}
 
 
-@patch.object(AlertActionsConf, "_set_attributes", mocked__set_attribute)
 def test_generate_conf_no_alerts_spec(
-    global_config_for_alerts, input_dir, output_dir, ucc_dir, ta_name
+    global_config_only_configuration, input_dir, output_dir, ucc_dir, ta_name
 ):
     alert_action_conf = AlertActionsConf(
-        global_config_for_alerts,
+        global_config_only_configuration,
         input_dir,
         output_dir,
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    alert_action_conf.alerts_spec = {}
     result = alert_action_conf.generate_conf_spec()
     assert result is None
diff --git a/tests/unit/generators/conf_files/test_create_app_conf.py b/tests/unit/generators/conf_files/test_create_app_conf.py
index 2cda9e8e8c..b1a16e66cd 100644
--- a/tests/unit/generators/conf_files/test_create_app_conf.py
+++ b/tests/unit/generators/conf_files/test_create_app_conf.py
@@ -47,12 +47,6 @@ def test_set_attributes_check_for_updates_false(
         has_ui=has_ui,
         app_manifest=app_manifest,
     )
-    app_conf._global_config = MagicMock()
-    app_conf._global_config.meta = {"checkForUpdates": False}
-
-    app_conf._set_attributes(
-        addon_version=addon_version, has_ui=has_ui, app_manifest=app_manifest
-    )
 
     assert app_conf.check_for_updates == "false"
 
@@ -78,12 +72,6 @@ def test_set_attributes_supported_themes(
         has_ui=has_ui,
         app_manifest=app_manifest,
     )
-    app_conf._global_config = MagicMock()
-    app_conf._global_config.meta = {"supportedThemes": ["dark", "light"]}
-
-    app_conf._set_attributes(
-        addon_version=addon_version, has_ui=has_ui, app_manifest=app_manifest
-    )
 
     assert app_conf.supported_themes == "dark, light"
 
@@ -109,27 +97,19 @@ def test_set_attributes_with_global_config_and_schema(
         has_ui=has_ui,
         app_manifest=app_manifest,
     )
-    app_conf._global_config = MagicMock()
-    app_conf._gc_schema = MagicMock()
 
-    app_conf._gc_schema.settings_conf_file_names = ["settings1.conf"]
-    app_conf._gc_schema.configs_conf_file_names = ["configs1.conf"]
-    app_conf._gc_schema.oauth_conf_file_names = ["oauth1.conf"]
-
-    app_conf._set_attributes(
-        addon_version=addon_version, has_ui=has_ui, app_manifest=app_manifest
-    )
-
-    expected_custom_conf = ["settings1.conf", "configs1.conf", "oauth1.conf"]
+    expected_custom_conf = [
+        "splunk_ta_uccexample_settings",
+        "splunk_ta_uccexample_account",
+        "splunk_ta_uccexample_oauth",
+    ]
     assert app_conf.custom_conf == expected_custom_conf
 
 
 @patch(
     "splunk_add_on_ucc_framework.generators.conf_files.AppConf.set_template_and_render"
 )
-@patch("splunk_add_on_ucc_framework.generators.conf_files.AppConf.get_file_output_path")
 def test_generate_conf(
-    mock_op_path,
     mock_template,
     global_config_all_json,
     input_dir,
@@ -142,8 +122,6 @@ def test_generate_conf(
 ):
     content = "content"
     exp_fname = "app.conf"
-    file_path = "output_path/app.conf"
-    mock_op_path.return_value = file_path
     template_render = MagicMock()
     template_render.render.return_value = content
 
@@ -157,17 +135,9 @@ def test_generate_conf(
         has_ui=has_ui,
         app_manifest=app_manifest,
     )
-    app_conf.writer = MagicMock()
     app_conf._template = template_render
     file_paths = app_conf.generate_conf()
 
     # Ensure the appropriate methods were called and the file was generated
-    assert mock_op_path.call_count == 1
     assert mock_template.call_count == 1
-    app_conf.writer.assert_called_once_with(
-        file_name=exp_fname,
-        file_path=file_path,
-        content=content,
-        merge_mode="item_overwrite",
-    )
-    assert file_paths == {exp_fname: file_path}
+    assert file_paths == {exp_fname: f"{output_dir}/{ta_name}/default/{exp_fname}"}
diff --git a/tests/unit/generators/conf_files/test_create_eventypes_conf.py b/tests/unit/generators/conf_files/test_create_eventypes_conf.py
index f2b40807d6..023cf4dcb1 100644
--- a/tests/unit/generators/conf_files/test_create_eventypes_conf.py
+++ b/tests/unit/generators/conf_files/test_create_eventypes_conf.py
@@ -11,19 +11,29 @@ def test_set_attribute(global_config_all_json, input_dir, output_dir, ucc_dir, t
         addon_name=ta_name,
     )
 
-    eventtypes_conf._set_attributes()
     assert eventtypes_conf.alert_settings
     assert eventtypes_conf.conf_file == "eventtypes.conf"
 
 
+def test_set_attribute_without_alerts(
+    global_config_for_conf_only_TA, input_dir, output_dir, ucc_dir, ta_name
+):
+    eventtypes_conf = EventtypesConf(
+        global_config_for_conf_only_TA,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
+    )
+
+    assert eventtypes_conf.alert_settings == []
+    assert eventtypes_conf.conf_file == "eventtypes.conf"
+
+
 @patch(
     "splunk_add_on_ucc_framework.generators.conf_files.EventtypesConf.set_template_and_render"
 )
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.EventtypesConf.get_file_output_path"
-)
 def test_generate_conf(
-    mock_op_path,
     mock_template,
     global_config_all_json,
     input_dir,
@@ -33,8 +43,6 @@ def test_generate_conf(
 ):
     content = "content"
     exp_fname = "eventtypes.conf"
-    file_path = "output_path/eventtypes.conf"
-    mock_op_path.return_value = file_path
     template_render = MagicMock()
     template_render.render.return_value = content
 
@@ -45,39 +53,23 @@ def test_generate_conf(
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-
-    eventtypes_conf.writer = MagicMock()
     eventtypes_conf._template = template_render
     file_paths = eventtypes_conf.generate_conf()
 
-    assert mock_op_path.call_count == 1
     assert mock_template.call_count == 1
 
-    # Ensure the writer function was called with the correct parameters
-    eventtypes_conf.writer.assert_called_once_with(
-        file_name=exp_fname,
-        file_path=file_path,
-        content=content,
-    )
-
-    assert file_paths == {exp_fname: file_path}
+    assert file_paths == {exp_fname: f"{output_dir}/{ta_name}/default/{exp_fname}"}
 
 
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.EventtypesConf._set_attributes",
-    return_value=MagicMock(),
-)
 def test_generate_conf_no_alert_settings(
-    global_config_all_json, input_dir, output_dir, ucc_dir, ta_name
+    global_config_only_configuration, input_dir, output_dir, ucc_dir, ta_name
 ):
     eventtypes_conf = EventtypesConf(
-        global_config_all_json,
+        global_config_only_configuration,
         input_dir,
         output_dir,
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-
-    eventtypes_conf.alert_settings = {}
     file_paths = eventtypes_conf.generate_conf()
     assert file_paths is None
diff --git a/tests/unit/generators/conf_files/test_create_inputs_conf.py b/tests/unit/generators/conf_files/test_create_inputs_conf.py
index bd3f818a63..198fa824ca 100644
--- a/tests/unit/generators/conf_files/test_create_inputs_conf.py
+++ b/tests/unit/generators/conf_files/test_create_inputs_conf.py
@@ -15,112 +15,123 @@
 
 
 def test_set_attributes_no_inputs_in_global_config(
-    global_config_all_json, input_dir, output_dir, ucc_dir, ta_name
+    global_config_only_configuration, input_dir, output_dir, ucc_dir, ta_name
 ):
     """Test when _global_config is provided but has no inputs."""
     inputs_conf = InputsConf(
-        global_config_all_json,
+        global_config_only_configuration,
         input_dir,
         output_dir,
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    inputs_conf._global_config = MagicMock()
-    inputs_conf._global_config.inputs = []
-
-    inputs_conf._set_attributes()
 
     assert inputs_conf.input_names == []
 
 
 def test_set_attributes_with_conf_key(
-    global_config_all_json, input_dir, output_dir, ucc_dir, ta_name
+    global_config_with_with_one_entity_per_input,
+    input_dir,
+    output_dir,
+    ucc_dir,
+    ta_name,
 ):
     """Test when a service has a 'conf' key."""
     inputs_conf = InputsConf(
-        global_config_all_json,
+        global_config_with_with_one_entity_per_input,
         input_dir,
         output_dir,
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    inputs_conf._global_config = MagicMock()
-    inputs_conf._global_config.inputs = [{"name": "service1", "conf": "some_conf"}]
-
-    inputs_conf._set_attributes()
 
-    expected_output = [{"service1": ["placeholder = placeholder"]}]
-    assert inputs_conf.input_names == expected_output
+    expected_output = {"service_with_conf_param": ["placeholder = placeholder"]}
+    assert expected_output in inputs_conf.input_names
     assert inputs_conf.conf_file == "inputs.conf"
     assert inputs_conf.conf_spec_file == "inputs.conf.spec"
 
 
 def test_set_attributes_without_conf_key_and_name_field(
-    global_config_all_json, input_dir, output_dir, ucc_dir, ta_name
+    global_config_with_with_one_entity_per_input,
+    input_dir,
+    output_dir,
+    ucc_dir,
+    ta_name,
 ):
     """Test when a service does not have 'conf' key and 'entity' contains 'name' field."""
     inputs_conf = InputsConf(
-        global_config_all_json,
+        global_config_with_with_one_entity_per_input,
         input_dir,
         output_dir,
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    inputs_conf._global_config = MagicMock()
-    inputs_conf._global_config.inputs = [
-        {"name": "service1", "entity": [{"field": "name"}], "disableNewInput": True}
-    ]
-
-    inputs_conf._set_attributes()
 
-    expected_output: List[Dict[str, List[str]]] = [{"service1": []}]
-    assert inputs_conf.input_names == expected_output
+    expected_output: Dict[str, List[str]] = {"example_input_three": []}
+    assert expected_output in inputs_conf.input_names
     assert inputs_conf.disable is True
-    assert inputs_conf.service_name == "service1"
+    assert inputs_conf.service_name == "example_input_three"
+
+
+def test_set_attributes_without_conf_key_and_default_boolean(
+    global_config_with_with_one_entity_per_input,
+    input_dir,
+    output_dir,
+    ucc_dir,
+    ta_name,
+):
+    """Test when a service does not have 'conf' key and 'entity' contains fields other than 'name'
+    with a boolean default value.
+    """
+    inputs_conf = InputsConf(
+        global_config_with_with_one_entity_per_input,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
+    )
+    expected_output = {
+        "input_with_default_boolean": [
+            "test_checkbox = This is an example checkbox.  Default: True"
+        ]
+    }
+    assert expected_output in inputs_conf.input_names
+    assert inputs_conf.default_value_info.get("input_with_default_boolean") == {
+        "test_checkbox": "true"
+    }
 
 
 def test_set_attributes_without_conf_key_and_other_fields(
-    global_config_all_json, input_dir, output_dir, ucc_dir, ta_name
+    global_config_with_with_one_entity_per_input,
+    input_dir,
+    output_dir,
+    ucc_dir,
+    ta_name,
 ):
     """Test when a service does not have 'conf' key and 'entity' contains fields other than 'name'."""
     inputs_conf = InputsConf(
-        global_config_all_json,
+        global_config_with_with_one_entity_per_input,
         input_dir,
         output_dir,
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    inputs_conf._global_config = MagicMock()
-    inputs_conf._global_config.inputs = [
-        {
-            "name": "service1",
-            "entity": [
-                {
-                    "field": "other_field",
-                    "help": "help text",
-                    "defaultValue": "default_val",
-                }
-            ],
-        }
-    ]
-
-    inputs_conf._set_attributes()
 
-    expected_output = [{"service1": ["other_field = help text  Default: default_val"]}]
-    assert inputs_conf.input_names == expected_output
-    assert inputs_conf.default_value_info == {
-        "service1": {"other_field": "default_val"}
+    expected_output = {
+        "example_input_four": [
+            "Interval = Time interval of the data input, in seconds.  Default: 600"
+        ]
+    }
+    assert expected_output in inputs_conf.input_names
+    assert inputs_conf.default_value_info.get("example_input_four") == {
+        "Interval": "600"
     }
 
 
 @patch(
     "splunk_add_on_ucc_framework.generators.conf_files.InputsConf.set_template_and_render"
 )
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.InputsConf.get_file_output_path"
-)
 def test_generate_conf(
-    mock_op_path,
     mock_template,
     global_config_all_json,
     input_dir,
@@ -130,8 +141,6 @@ def test_generate_conf(
 ):
     content = "content"
     exp_fname = "inputs.conf"
-    file_path = "output_path/inputs.conf"
-    mock_op_path.return_value = file_path
     template_render = MagicMock()
     template_render.render.return_value = content
 
@@ -142,36 +151,24 @@ def test_generate_conf(
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    inputs_conf.writer = MagicMock()
     inputs_conf._template = template_render
     file_paths = inputs_conf.generate_conf()
 
     # Ensure the appropriate methods were called and the file was generated
-    assert mock_op_path.call_count == 1
     assert mock_template.call_count == 1
-    inputs_conf.writer.assert_called_once_with(
-        file_name=exp_fname,
-        file_path=file_path,
-        content=content,
-    )
-    assert file_paths == {exp_fname: file_path}
+    assert file_paths == {exp_fname: f"{output_dir}/{ta_name}/default/{exp_fname}"}
 
 
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.InputsConf._set_attributes",
-    return_value=MagicMock(),
-)
-def test_generate_conf_spec_no_input_names(
-    global_config_all_json, input_dir, output_dir, ucc_dir, ta_name
+def test_generate_conf_no_input_names(
+    global_config_only_configuration, input_dir, output_dir, ucc_dir, ta_name
 ):
     inputs_conf = InputsConf(
-        global_config_all_json,
+        global_config_only_configuration,
         input_dir,
         output_dir,
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    inputs_conf.input_names = []
     result = inputs_conf.generate_conf()
     assert result is None
 
@@ -179,11 +176,7 @@ def test_generate_conf_spec_no_input_names(
 @patch(
     "splunk_add_on_ucc_framework.generators.conf_files.InputsConf.set_template_and_render"
 )
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.InputsConf.get_file_output_path"
-)
 def test_generate_conf_spec(
-    mock_op_path,
     mock_template,
     global_config_all_json,
     input_dir,
@@ -193,8 +186,6 @@ def test_generate_conf_spec(
 ):
     content = "content"
     exp_fname = "inputs.conf.spec"
-    file_path = "output_path/inputs.conf.spec"
-    mock_op_path.return_value = file_path
     mock_template_render = MagicMock()
     mock_template_render.render.return_value = content
 
@@ -205,37 +196,25 @@ def test_generate_conf_spec(
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    inputs_conf.writer = MagicMock()
     inputs_conf._template = mock_template_render
 
     file_paths = inputs_conf.generate_conf_spec()
 
     # Ensure the appropriate methods were called and the file was generated
-    assert mock_op_path.call_count == 1
     assert mock_template.call_count == 1
-    inputs_conf.writer.assert_called_once_with(
-        file_name=exp_fname,
-        file_path=file_path,
-        content=content,
-    )
-    assert file_paths == {exp_fname: file_path}
+    assert file_paths == {exp_fname: f"{output_dir}/{ta_name}/README/{exp_fname}"}
 
 
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.InputsConf._set_attributes",
-    return_value=MagicMock(),
-)
-def test_generate_conf_no_input_names(
-    global_config_all_json, input_dir, output_dir, ucc_dir, ta_name
+def test_generate_conf_spec_no_input_names(
+    global_config_only_configuration, input_dir, output_dir, ucc_dir, ta_name
 ):
     inputs_conf = InputsConf(
-        global_config_all_json,
+        global_config_only_configuration,
         input_dir,
         output_dir,
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    inputs_conf.input_names = []
     result = inputs_conf.generate_conf_spec()
     assert result is None
 
diff --git a/tests/unit/generators/conf_files/test_create_restmap_conf.py b/tests/unit/generators/conf_files/test_create_restmap_conf.py
index 911ec437b4..3d28e4c75d 100644
--- a/tests/unit/generators/conf_files/test_create_restmap_conf.py
+++ b/tests/unit/generators/conf_files/test_create_restmap_conf.py
@@ -15,11 +15,7 @@
 @patch(
     "splunk_add_on_ucc_framework.generators.conf_files.RestMapConf.set_template_and_render"
 )
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.RestMapConf.get_file_output_path"
-)
 def test_generate_conf(
-    mock_op_path,
     mock_template,
     global_config_all_json,
     input_dir,
@@ -29,8 +25,6 @@ def test_generate_conf(
 ):
     content = "content"
     exp_fname = "restmap.conf"
-    file_path = "output_path/restmap.conf"
-    mock_op_path.return_value = file_path
     template_render = MagicMock()
     template_render.render.return_value = content
 
@@ -42,35 +36,10 @@ def test_generate_conf(
         addon_name=ta_name,
     )
 
-    restmap_conf.writer = MagicMock()
     restmap_conf._template = template_render
     file_paths = restmap_conf.generate_conf()
-    assert mock_op_path.call_count == 1
     assert mock_template.call_count == 1
-
-    # Ensure the writer function was called with the correct parameters
-    restmap_conf.writer.assert_called_once_with(
-        file_name=exp_fname,
-        file_path=file_path,
-        content=content,
-    )
-
-    assert file_paths == {exp_fname: file_path}
-
-
-def test_generate_conf_no_gc_schema(
-    global_config_for_conf_only_TA, input_dir, output_dir, ucc_dir, ta_name
-):
-    restmap_conf = RestMapConf(
-        global_config_for_conf_only_TA,
-        input_dir,
-        output_dir,
-        ucc_dir=ucc_dir,
-        addon_name=ta_name,
-    )
-
-    file_paths = restmap_conf.generate_conf()
-    assert file_paths is None
+    assert file_paths == {exp_fname: f"{output_dir}/{ta_name}/default/{exp_fname}"}
 
 
 def test_generate_conf_for_conf_only_TA(
@@ -98,7 +67,6 @@ def test_set_attributes(
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    restmap_conf._set_attributes()
     assert hasattr(restmap_conf, "endpoints")
     assert hasattr(restmap_conf, "endpoint_names")
     assert hasattr(restmap_conf, "namespace")
diff --git a/tests/unit/generators/conf_files/test_create_server_conf.py b/tests/unit/generators/conf_files/test_create_server_conf.py
index f6e050dbc3..7130b13a91 100644
--- a/tests/unit/generators/conf_files/test_create_server_conf.py
+++ b/tests/unit/generators/conf_files/test_create_server_conf.py
@@ -13,14 +13,11 @@ def test_set_attributes(
         addon_name=ta_name,
     )
 
-    server_conf._gc_schema = MagicMock()
-    server_conf._gc_schema.settings_conf_file_names = ["settings_conf"]
-    server_conf._gc_schema.configs_conf_file_names = ["configs_conf"]
-    server_conf._gc_schema.oauth_conf_file_names = ["oauth_conf"]
-
-    server_conf._set_attributes()
-
-    expected_custom_conf = ["settings_conf", "configs_conf", "oauth_conf"]
+    expected_custom_conf = [
+        "splunk_ta_uccexample_settings",
+        "splunk_ta_uccexample_account",
+        "splunk_ta_uccexample_oauth",
+    ]
     assert server_conf.custom_conf == expected_custom_conf
 
 
@@ -28,11 +25,7 @@ def test_set_attributes(
 @patch(
     "splunk_add_on_ucc_framework.generators.conf_files.ServerConf.set_template_and_render"
 )
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.ServerConf.get_file_output_path"
-)
 def test_generate_conf_no_existing_conf(
-    mock_op_path,
     mock_template,
     mock_isfile,
     global_config_all_json,
@@ -43,8 +36,6 @@ def test_generate_conf_no_existing_conf(
 ):
     content = "content"
     exp_fname = "server.conf"
-    file_path = "output_path/server.conf"
-    mock_op_path.return_value = file_path
     template_render = MagicMock()
     template_render.render.return_value = content
 
@@ -56,30 +47,18 @@ def test_generate_conf_no_existing_conf(
         addon_name=ta_name,
     )
 
-    server_conf.writer = MagicMock()
     server_conf._template = template_render
     file_paths = server_conf.generate_conf()
-    assert mock_op_path.call_count == 1
     assert mock_template.call_count == 1
 
-    server_conf.writer.assert_called_once_with(
-        file_name=exp_fname,
-        file_path=file_path,
-        content=content,
-    )
-
-    assert file_paths == {exp_fname: file_path}
+    assert file_paths == {exp_fname: f"{output_dir}/{ta_name}/default/{exp_fname}"}
 
 
 @patch(
     "splunk_add_on_ucc_framework.generators.conf_files.create_server_conf.isfile",
     return_value=True,
 )
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.ServerConf.get_file_output_path"
-)
 def test_generate_conf_existing_conf(
-    mock_op_path,
     mock_isfile,
     global_config_all_json,
     input_dir,
@@ -100,16 +79,15 @@ def test_generate_conf_existing_conf(
 
 
 def test_generate_conf_no_custom_conf(
-    global_config_all_json, input_dir, output_dir, ucc_dir, ta_name
+    global_config_for_conf_only_TA, input_dir, output_dir, ucc_dir, ta_name
 ):
     server_conf = ServerConf(
-        global_config_all_json,
+        global_config_for_conf_only_TA,
         input_dir,
         output_dir,
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    server_conf.custom_conf = []
 
     file_paths = server_conf.generate_conf()
     assert file_paths is None
diff --git a/tests/unit/generators/conf_files/test_create_settings_conf.py b/tests/unit/generators/conf_files/test_create_settings_conf.py
index 65aa47e2d8..68f0b075a1 100644
--- a/tests/unit/generators/conf_files/test_create_settings_conf.py
+++ b/tests/unit/generators/conf_files/test_create_settings_conf.py
@@ -14,35 +14,30 @@ def global_config():
     return gc
 
 
-def test_set_attributes(global_config, input_dir, output_dir, ucc_dir, ta_name):
+def test_set_attributes(
+    global_config_only_logging, input_dir, output_dir, ucc_dir, ta_name
+):
     settings_conf = SettingsConf(
-        global_config, input_dir, output_dir, ucc_dir=ucc_dir, addon_name=ta_name
+        global_config_only_logging,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
     )
-    settings_conf._global_config = MagicMock()
-    settings_conf._gc_schema = MagicMock()
-
-    settings_conf._global_config.settings = [{"entity": "entity1", "name": "setting1"}]
-    settings_conf._global_config.namespace = TA_NAME
-    settings_conf._gc_schema._get_oauth_enitities.return_value = "mocked_content"
-    settings_conf._gc_schema._parse_fields.return_value = (
-        [MagicMock(_name="field1")],
-        [MagicMock(_name="field3")],
+    assert (
+        settings_conf.conf_file
+        == f"{global_config_only_logging.namespace.lower()}_settings.conf"
+    )
+    assert (
+        settings_conf.conf_file
+        == f"{global_config_only_logging.namespace.lower()}_settings.conf"
     )
-
-    settings_conf._gc_schema._endpoints = {"settings": MagicMock()}
-    settings_conf._gc_schema._endpoints[
-        "settings"
-    ].generate_conf_with_default_values.return_value = "default_values"
-
-    settings_conf._set_attributes()
-
-    assert settings_conf.conf_file == f"{global_config.namespace.lower()}_settings.conf"
     assert (
         settings_conf.conf_spec_file
-        == f"{global_config.namespace.lower()}_settings.conf.spec"
+        == f"{global_config_only_logging.namespace.lower()}_settings.conf.spec"
     )
-    assert settings_conf.settings_stanzas == [("setting1", ["field1 = "])]
-    assert settings_conf.default_content == "default_values"
+    assert settings_conf.settings_stanzas == [("logging", ["loglevel = "])]
+    assert settings_conf.default_content == "[logging]\nloglevel = INFO"
 
 
 def test_set_attribute_for_conf_only_TA(
@@ -55,80 +50,54 @@ def test_set_attribute_for_conf_only_TA(
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    settings_conf._set_attributes()
     assert settings_conf.settings_stanzas == []
     assert settings_conf.default_content == ""
 
 
 def test_set_attributes_no_settings_key(
-    global_config, input_dir, output_dir, ucc_dir, ta_name
+    global_config_for_alerts, input_dir, output_dir, ucc_dir, ta_name
 ):
     settings_conf = SettingsConf(
-        global_config, input_dir, output_dir, ucc_dir=ucc_dir, addon_name=ta_name
-    )
-    settings_conf._addon_name = "TestAddon"
-    settings_conf._global_config = MagicMock()
-    settings_conf._gc_schema = MagicMock()
-
-    settings_conf._global_config.settings = [{"entity": "entity1", "name": "setting1"}]
-    settings_conf._gc_schema._get_oauth_enitities.return_value = "mocked_content"
-    settings_conf._gc_schema._parse_fields.return_value = (
-        [MagicMock(_name="field1")],
-        [MagicMock(_name="field3")],
+        global_config_for_alerts,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
     )
-
-    settings_conf._gc_schema._endpoints = {}
-
-    settings_conf._set_attributes()
-
-    assert settings_conf.settings_stanzas == [("setting1", ["field1 = "])]
     assert settings_conf.default_content == ""
 
 
 @patch(
     "splunk_add_on_ucc_framework.generators.conf_files.SettingsConf.set_template_and_render"
 )
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.SettingsConf.get_file_output_path"
-)
 def test_generate_conf(
-    mock_op_path, mock_template, global_config, input_dir, output_dir, ucc_dir, ta_name
+    mock_template, global_config, input_dir, output_dir, ucc_dir, ta_name
 ):
     content = "content"
     exp_fname = f"{ta_name}_settings.conf"
-    file_path = f"output_path/{exp_fname}"
-    mock_op_path.return_value = file_path
     template_render = MagicMock()
     template_render.render.return_value = content
 
     settings_conf = SettingsConf(
         global_config, input_dir, output_dir, ucc_dir=ucc_dir, addon_name=ta_name
     )
-    settings_conf.writer = MagicMock()
     settings_conf._template = template_render
     file_paths = settings_conf.generate_conf()
 
-    assert mock_op_path.call_count == 1
     assert mock_template.call_count == 1
-    settings_conf.writer.assert_called_once_with(
-        file_name=exp_fname,
-        file_path=file_path,
-        content=content,
-    )
-    assert file_paths == {exp_fname: file_path}
+    assert file_paths == {exp_fname: f"{output_dir}/{TA_NAME}/default/{exp_fname}"}
 
 
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.SettingsConf._set_attributes",
-    return_value=MagicMock(),
-)
 def test_generate_conf_no_default_content(
-    global_config, input_dir, output_dir, ucc_dir, ta_name
+    global_config_for_conf_only_TA, input_dir, output_dir, ucc_dir, ta_name
 ):
     settings_conf = SettingsConf(
-        global_config, input_dir, output_dir, ucc_dir=ucc_dir, addon_name=ta_name
+        global_config_for_conf_only_TA,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
     )
-    settings_conf.default_content = ""
     result = settings_conf.generate_conf()
     result is None
 
@@ -136,46 +105,34 @@ def test_generate_conf_no_default_content(
 @patch(
     "splunk_add_on_ucc_framework.generators.conf_files.SettingsConf.set_template_and_render"
 )
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.SettingsConf.get_file_output_path"
-)
 def test_generate_conf_spec(
-    mock_op_path, mock_template, global_config, input_dir, output_dir, ucc_dir, ta_name
+    mock_template, global_config, input_dir, output_dir, ucc_dir, ta_name
 ):
     content = "content"
     exp_fname = f"{ta_name}_settings.conf.spec"
-    file_path = f"output_path/{exp_fname}"
-    mock_op_path.return_value = file_path
     mock_template_render = MagicMock()
     mock_template_render.render.return_value = content
 
     settings_conf = SettingsConf(
         global_config, input_dir, output_dir, ucc_dir=ucc_dir, addon_name=ta_name
     )
-    settings_conf.writer = MagicMock()
     settings_conf._template = mock_template_render
 
     file_paths = settings_conf.generate_conf_spec()
 
-    assert mock_op_path.call_count == 1
     assert mock_template.call_count == 1
-    settings_conf.writer.assert_called_once_with(
-        file_name=exp_fname,
-        file_path=file_path,
-        content=content,
-    )
-    assert file_paths == {exp_fname: file_path}
+    assert file_paths == {exp_fname: f"{output_dir}/{TA_NAME}/README/{exp_fname}"}
 
 
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.SettingsConf._set_attributes",
-    return_value=MagicMock(),
-)
 def test_generate_conf_no_settings_stanzas(
-    global_config, input_dir, output_dir, ucc_dir, ta_name
+    global_config_for_conf_only_TA, input_dir, output_dir, ucc_dir, ta_name
 ):
     settings_conf = SettingsConf(
-        global_config, input_dir, output_dir, ucc_dir=ucc_dir, addon_name=ta_name
+        global_config_for_conf_only_TA,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
     )
     settings_conf.settings_stanzas = []
     result = settings_conf.generate_conf_spec()
diff --git a/tests/unit/generators/conf_files/test_create_tags_conf.py b/tests/unit/generators/conf_files/test_create_tags_conf.py
index be1897c8a1..3f7d1311f3 100644
--- a/tests/unit/generators/conf_files/test_create_tags_conf.py
+++ b/tests/unit/generators/conf_files/test_create_tags_conf.py
@@ -11,19 +11,29 @@ def test_set_attribute(global_config_all_json, input_dir, output_dir, ucc_dir, t
         addon_name=ta_name,
     )
 
-    tags_conf._set_attributes()
     assert tags_conf.alert_settings
     assert tags_conf.conf_file == "tags.conf"
 
 
+def test_set_attribute_without_alerts(
+    global_config_for_conf_only_TA, input_dir, output_dir, ucc_dir, ta_name
+):
+    tags_conf = TagsConf(
+        global_config_for_conf_only_TA,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
+    )
+
+    assert tags_conf.alert_settings == []
+    assert tags_conf.conf_file == "tags.conf"
+
+
 @patch(
     "splunk_add_on_ucc_framework.generators.conf_files.TagsConf.set_template_and_render"
 )
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.TagsConf.get_file_output_path"
-)
 def test_generate_conf(
-    mock_op_path,
     mock_template,
     global_config_all_json,
     input_dir,
@@ -33,8 +43,6 @@ def test_generate_conf(
 ):
     content = "content"
     exp_fname = "tags.conf"
-    file_path = "output_path/tags.conf"
-    mock_op_path.return_value = file_path
     template_render = MagicMock()
     template_render.render.return_value = content
 
@@ -46,37 +54,24 @@ def test_generate_conf(
         addon_name=ta_name,
     )
 
-    tags_conf.writer = MagicMock()
     tags_conf._template = template_render
     file_paths = tags_conf.generate_conf()
 
-    assert mock_op_path.call_count == 1
     assert mock_template.call_count == 1
 
-    tags_conf.writer.assert_called_once_with(
-        file_name=exp_fname,
-        file_path=file_path,
-        content=content,
-    )
+    assert file_paths == {exp_fname: f"{output_dir}/{ta_name}/default/{exp_fname}"}
 
-    assert file_paths == {exp_fname: file_path}
 
-
-@patch(
-    "splunk_add_on_ucc_framework.generators.conf_files.TagsConf._set_attributes",
-    return_value=MagicMock(),
-)
 def test_generate_conf_no_alert_settings(
-    global_config_all_json, input_dir, output_dir, ucc_dir, ta_name
+    global_config_only_configuration, input_dir, output_dir, ucc_dir, ta_name
 ):
     tags_conf = TagsConf(
-        global_config_all_json,
+        global_config_only_configuration,
         input_dir,
         output_dir,
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
 
-    tags_conf.alert_settings = {}
     file_paths = tags_conf.generate_conf()
     assert file_paths is None
diff --git a/tests/unit/generators/conf_files/test_create_web_conf.py b/tests/unit/generators/conf_files/test_create_web_conf.py
index ad315660ff..828a7dda8b 100644
--- a/tests/unit/generators/conf_files/test_create_web_conf.py
+++ b/tests/unit/generators/conf_files/test_create_web_conf.py
@@ -7,37 +7,33 @@
     RestHandlerConfig,
 )
 from splunk_add_on_ucc_framework.generators.conf_files import WebConf
+from splunk_add_on_ucc_framework.commands.rest_builder.endpoint.base import (
+    RestEndpointBuilder,
+)
 
 
 UCC_DIR = os.path.dirname(ucc_framework_file)
 
 
 def test_set_attributes(
-    global_config_all_json, input_dir, output_dir, ucc_dir, ta_name
+    global_config_only_logging, input_dir, output_dir, ucc_dir, ta_name
 ):
     web_conf = WebConf(
-        global_config_all_json,
+        global_config_only_logging,
         input_dir,
         output_dir,
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    expected_endpoints = ["endpoint"]
-
-    web_conf._gc_schema = MagicMock()
-    web_conf._gc_schema.endpoints = expected_endpoints
-
-    web_conf._set_attributes()
-
-    assert web_conf.endpoints == expected_endpoints
+    # Had to specifically mention this to pass pre-commit check
+    assert isinstance(web_conf.endpoints[0], RestEndpointBuilder)
+    assert web_conf.endpoints[0].conf_name == "splunk_ta_uccexample_settings"
 
 
 @patch(
     "splunk_add_on_ucc_framework.generators.conf_files.WebConf.set_template_and_render"
 )
-@patch("splunk_add_on_ucc_framework.generators.conf_files.WebConf.get_file_output_path")
 def test_generate_conf(
-    mock_op_path,
     mock_template,
     global_config_all_json,
     input_dir,
@@ -47,8 +43,6 @@ def test_generate_conf(
 ):
     content = "content"
     exp_fname = "web.conf"
-    file_path = "output_path/web.conf"
-    mock_op_path.return_value = file_path
     template_render = MagicMock()
     template_render.render.return_value = content
 
@@ -60,22 +54,14 @@ def test_generate_conf(
         addon_name=ta_name,
     )
 
-    web_conf.writer = MagicMock()
     web_conf._template = template_render
     file_paths = web_conf.generate_conf()
-    assert mock_op_path.call_count == 1
     assert mock_template.call_count == 1
 
-    web_conf.writer.assert_called_once_with(
-        file_name=exp_fname,
-        file_path=file_path,
-        content=content,
-    )
-
-    assert file_paths == {exp_fname: file_path}
+    assert file_paths == {exp_fname: f"{output_dir}/{ta_name}/default/{exp_fname}"}
 
 
-def test_generate_conf_no_gc_schema(
+def test_set_attribute_for_conf_only_TA(
     global_config_for_conf_only_TA, input_dir, output_dir, ucc_dir, ta_name
 ):
     web_conf = WebConf(
@@ -85,9 +71,7 @@ def test_generate_conf_no_gc_schema(
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-
-    file_paths = web_conf.generate_conf()
-    assert file_paths is None
+    assert web_conf.endpoints == []
 
 
 def test_generate_conf_for_conf_only_TA(
diff --git a/tests/unit/generators/html_files/test_create_alert_actions_html.py b/tests/unit/generators/html_files/test_create_alert_actions_html.py
index 39a85e9742..c9acb1676c 100644
--- a/tests/unit/generators/html_files/test_create_alert_actions_html.py
+++ b/tests/unit/generators/html_files/test_create_alert_actions_html.py
@@ -48,7 +48,7 @@ def mocked__set_attribute(this, **kwargs):
     this._html_home = "_html_home"
 
 
-def test_alert_html_generate_html_no_global_config(
+def test_alert_html_generate_html_no_alerts(
     global_config_for_conf_only_TA,
     input_dir,
     output_dir,
@@ -64,92 +64,50 @@ def test_alert_html_generate_html_no_global_config(
     )
     output = alert_html.generate_html()
     assert output is None
+    assert not hasattr(alert_html, "_alert_settings")
 
 
-@patch(
-    "splunk_add_on_ucc_framework.generators.html_files.AlertActionsHtml._set_attributes",
-    return_value=MagicMock(),
-)
-def test_alert_html_generate_html_no_alerts(
-    mock_set_attributes,
+def test_alert_html_set_attribute_no_alerts(
+    global_config_for_conf_only_TA,
     input_dir,
     output_dir,
     ucc_dir,
     ta_name,
 ):
-    mocked_gc = MagicMock()
-    mocked_gc.has_alerts.return_value = False
-
     alert_html = AlertActionsHtml(
-        global_config=mocked_gc,
-        input_dir=input_dir,
-        output_dir=output_dir,
+        global_config_for_conf_only_TA,
+        input_dir,
+        output_dir,
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    output = alert_html.generate_html()
-    assert output is None
     assert not hasattr(alert_html, "_alert_settings")
 
 
-@patch.object(AlertActionsHtml, "_set_attributes", mocked__set_attribute)
-@patch(
-    "splunk_add_on_ucc_framework.generators.html_files.AlertActionsHtml.set_template_and_render"
-)
-@patch(
-    "splunk_add_on_ucc_framework.generators.html_files.AlertActionsHtml.get_file_output_path"
-)
-def test_alert_html_generate_html_with_alerts(
-    mock_op_path,
-    mock_template,
-    global_config_for_alerts,
+def test_alert_html_set_attribute_with_alerts(
+    global_config_all_json,
     input_dir,
     output_dir,
     ucc_dir,
     ta_name,
 ):
-    html_content = """<html>
-<body>
-<p>This is a paragraph.</p>
-<p>This is another paragraph.</p>
-</body>
-</html>"""
-    exp_fname = "dev_alert.html"
-    file_path = "output_path/alert_html.html"
-    mock_op_path.return_value = file_path
-    template_render = MagicMock()
-    template_render.render.return_value = html_content
-
     alert_html = AlertActionsHtml(
-        global_config_for_alerts,
+        global_config_all_json,
         input_dir,
         output_dir,
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    print("\n \n")
-    print(alert_html._alert_settings)
-    alert_html.writer = MagicMock()
-    alert_html._template = template_render
-
-    assert alert_html.generate_html() == {exp_fname: file_path}
-    assert mock_op_path.call_count == 1
-    assert mock_template.call_count == 1
-    alert_html.writer.assert_called_once_with(
-        file_name=exp_fname, file_path=file_path, content=html_content
-    )
+    assert hasattr(alert_html, "_alert_settings")
+    assert alert_html._alert_settings[0]["short_name"] == "test_alert"
 
 
 @patch(
     "splunk_add_on_ucc_framework.generators.html_files.AlertActionsHtml.set_template_and_render"
 )
-@patch(
-    "splunk_add_on_ucc_framework.generators.html_files.AlertActionsHtml.get_file_output_path"
-)
-def test_alert_actions_html_set_attributes_and_generate(
-    mock_op_path,
+def test_alert_html_generate_html_with_alerts(
     mock_template,
-    global_config_for_alerts,
+    global_config_all_json,
     input_dir,
     output_dir,
     ucc_dir,
@@ -161,24 +119,20 @@ def test_alert_actions_html_set_attributes_and_generate(
 <p>This is another paragraph.</p>
 </body>
 </html>"""
-    file_path = "output_path/alert_html.html"
-    mock_op_path.return_value = file_path
+    exp_fname = "test_alert.html"
     template_render = MagicMock()
     template_render.render.return_value = html_content
 
     alert_html = AlertActionsHtml(
-        global_config_for_alerts,
+        global_config_all_json,
         input_dir,
         output_dir,
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    assert hasattr(alert_html, "_alert_settings")
-    alert_html.writer = MagicMock()
     alert_html._template = template_render
-    output = alert_html.generate_html()
 
-    assert output is not None
-    assert len(output) == 4, "4 alert action html file path should be provided"
-    assert mock_op_path.call_count == 4
-    assert mock_template.call_count == 4
+    assert alert_html.generate_html() == {
+        exp_fname: f"{output_dir}/{ta_name}/default/data/ui/alerts/{exp_fname}"
+    }
+    assert mock_template.call_count == 1
diff --git a/tests/unit/generators/test_file_generator.py b/tests/unit/generators/test_file_generator.py
index d4e274e378..a2769a16bf 100644
--- a/tests/unit/generators/test_file_generator.py
+++ b/tests/unit/generators/test_file_generator.py
@@ -31,10 +31,6 @@ def test_get_output_dir(
 
 
 @patch("splunk_add_on_ucc_framework.generators.FileGenerator._set_attributes")
-@patch(
-    "splunk_add_on_ucc_framework.generators.FileGenerator._get_output_dir",
-    return_value="tmp/path",
-)
 def test_get_file_output_path(
     global_config_all_json, input_dir, output_dir, ucc_dir, ta_name
 ):
@@ -48,11 +44,11 @@ def test_get_file_output_path(
 
     # Test with string
     result = file_gen.get_file_output_path("output_file")
-    assert result == "tmp/path/output_file"
+    assert result == f"{output_dir}/{ta_name}/output_file"
 
     # Test with list
     result = file_gen.get_file_output_path(["dir1", "dir2", "output_file"])
-    assert result == "tmp/path/dir1/dir2/output_file"
+    assert result == f"{output_dir}/{ta_name}/dir1/dir2/output_file"
 
     # Test with invalid type
     with raises(TypeError):
@@ -112,15 +108,14 @@ def test_set_template_and_render_invalid_file_name(
     "splunk_add_on_ucc_framework.generators.file_generator.fc.GEN_FILE_LIST",
     new_callable=list,
 )
-@patch("splunk_add_on_ucc_framework.generators.file_generator.logger")
 def test_begin(
-    mock_logger,
     mock_gen_file_list,
     global_config_all_json,
     input_dir,
     output_dir,
     ucc_dir,
     ta_name,
+    caplog,
 ):
     mock_item = MagicMock()
     mock_item.file_class.return_value.generate.return_value = {
@@ -138,10 +133,40 @@ def test_begin(
     )
 
     assert result == [{"file1": "/path/to/file1"}]
-    mock_logger.info.assert_called_once_with(
-        "Successfully generated 'file1' at '/path/to/file1'."
+    expected_msg = "Successfully generated 'file1' at '/path/to/file1'."
+    assert expected_msg in caplog.text
+
+
+@patch(
+    "splunk_add_on_ucc_framework.generators.file_generator.fc.GEN_FILE_LIST",
+    new_callable=list,
+)
+@patch("splunk_add_on_ucc_framework.generators.file_generator.logger")
+def test_begin_if_empty_dict(
+    mock_logger,
+    mock_gen_file_list,
+    global_config_all_json,
+    input_dir,
+    output_dir,
+    ucc_dir,
+    ta_name,
+):
+    mock_item = MagicMock()
+    mock_item.file_class.return_value.generate.return_value = {"": "/path/to/file1"}
+
+    mock_gen_file_list.extend([mock_item])
+
+    result = begin(
+        global_config_all_json,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
     )
 
+    assert result == [{"": "/path/to/file1"}]
+    mock_logger.info.assert_not_called()
+
 
 def test__set_attributes_error(
     global_config_all_json, input_dir, output_dir, ucc_dir, ta_name
diff --git a/tests/unit/generators/xml_files/test_create_configuration_xml.py b/tests/unit/generators/xml_files/test_create_configuration_xml.py
index e063ffc144..4dc415ee77 100644
--- a/tests/unit/generators/xml_files/test_create_configuration_xml.py
+++ b/tests/unit/generators/xml_files/test_create_configuration_xml.py
@@ -1,13 +1,8 @@
-from unittest.mock import patch, MagicMock
 from splunk_add_on_ucc_framework.generators.xml_files import ConfigurationXml
 
 
-@patch(
-    "splunk_add_on_ucc_framework.data_ui_generator.generate_views_configuration_xml",
-    return_value="<xml></xml>",
-)
 def test_set_attributes(
-    mock_generate_xml, global_config_all_json, input_dir, output_dir, ucc_dir, ta_name
+    global_config_all_json, input_dir, output_dir, ucc_dir, ta_name
 ):
     config_xml = ConfigurationXml(
         global_config_all_json,
@@ -36,12 +31,7 @@ def test_set_attributes_without_configuration(
     assert not hasattr(config_xml, "configuration_xml_content")
 
 
-@patch(
-    "splunk_add_on_ucc_framework.generators.xml_files.ConfigurationXml._set_attributes",
-    return_value=MagicMock(),
-)
 def test_generate_xml_without_configuration(
-    mock_set_attributes,
     global_config_no_configuration,
     input_dir,
     output_dir,
@@ -56,24 +46,11 @@ def test_generate_xml_without_configuration(
         addon_name=ta_name,
     )
 
-    mock_writer = MagicMock()
-    with patch.object(configuration_xml, "writer", mock_writer):
-        file_paths = configuration_xml.generate_xml()
+    file_paths = configuration_xml.generate_xml()
+    assert file_paths is None
 
-        # Assert that no files are returned since no dashboard is configured
-        assert file_paths is None
 
-
-@patch(
-    "splunk_add_on_ucc_framework.generators.xml_files.ConfigurationXml._set_attributes",
-    return_value=MagicMock(),
-)
-@patch(
-    "splunk_add_on_ucc_framework.generators.xml_files.ConfigurationXml.get_file_output_path"
-)
 def test_generate_xml(
-    mock_op_path,
-    mock_set_attributes,
     global_config_all_json,
     input_dir,
     output_dir,
@@ -87,20 +64,10 @@ def test_generate_xml(
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    config_xml.configuration_xml_content = "<xml></xml>"
     exp_fname = "configuration.xml"
-    file_path = "output_path/configuration.xml"
-    mock_op_path.return_value = file_path
-
-    mock_writer = MagicMock()
-    with patch.object(config_xml, "writer", mock_writer):
-        file_paths = config_xml.generate_xml()
-        assert mock_op_path.call_count == 1
 
-        mock_writer.assert_called_once_with(
-            file_name=exp_fname,
-            file_path=file_path,
-            content=config_xml.configuration_xml_content,
-        )
+    file_paths = config_xml.generate_xml()
 
-        assert file_paths == {exp_fname: file_path}
+    assert file_paths == {
+        exp_fname: f"{output_dir}/{ta_name}/default/data/ui/views/{exp_fname}"
+    }
diff --git a/tests/unit/generators/xml_files/test_create_dashboard_xml.py b/tests/unit/generators/xml_files/test_create_dashboard_xml.py
index f41c4b700f..d9f63297eb 100644
--- a/tests/unit/generators/xml_files/test_create_dashboard_xml.py
+++ b/tests/unit/generators/xml_files/test_create_dashboard_xml.py
@@ -1,13 +1,7 @@
-from unittest.mock import patch, MagicMock
 from splunk_add_on_ucc_framework.generators.xml_files import DashboardXml
 
 
-@patch(
-    "splunk_add_on_ucc_framework.data_ui_generator.generate_views_dashboard_xml",
-    return_value="<xml></xml>",
-)
 def test_set_attributes_with_dashboard(
-    mock_generate_dashboard_xml,
     global_config_all_json,
     input_dir,
     output_dir,
@@ -25,12 +19,7 @@ def test_set_attributes_with_dashboard(
     assert hasattr(dashboard_xml, "dashboard_xml_content")
 
 
-@patch(
-    "splunk_add_on_ucc_framework.data_ui_generator.generate_views_dashboard_xml",
-    return_value="<xml></xml>",
-)
 def test_set_attributes_without_dashboard(
-    mock_generate_dashboard_xml,
     global_config_only_configuration,
     input_dir,
     output_dir,
@@ -47,16 +36,7 @@ def test_set_attributes_without_dashboard(
     assert not hasattr(dashboard_xml, "dashboard_xml_content")
 
 
-@patch(
-    "splunk_add_on_ucc_framework.generators.xml_files.DashboardXml._set_attributes",
-    return_value=MagicMock(),
-)
-@patch(
-    "splunk_add_on_ucc_framework.generators.xml_files.DashboardXml.get_file_output_path"
-)
 def test_generate_xml_with_dashboard(
-    mock_op_path,
-    mock_set_attributes,
     global_config_all_json,
     input_dir,
     output_dir,
@@ -70,30 +50,15 @@ def test_generate_xml_with_dashboard(
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    dashboard_xml.dashboard_xml_content = "<dashboard></dashboard>"
     exp_fname = "dashboard.xml"
-    file_path = "output_path/dashboard.xml"
-    mock_op_path.return_value = file_path
 
-    mock_writer = MagicMock()
-    with patch.object(dashboard_xml, "writer", mock_writer):
-        file_paths = dashboard_xml.generate_xml()
-        assert mock_op_path.call_count == 1
+    file_paths = dashboard_xml.generate_xml()
+    assert file_paths == {
+        exp_fname: f"{output_dir}/{ta_name}/default/data/ui/views/{exp_fname}"
+    }
 
-        mock_writer.assert_called_once_with(
-            file_name=exp_fname,
-            file_path=file_path,
-            content=dashboard_xml.dashboard_xml_content,
-        )
-        assert file_paths == {exp_fname: file_path}
 
-
-@patch(
-    "splunk_add_on_ucc_framework.generators.xml_files.DashboardXml._set_attributes",
-    return_value=MagicMock(),
-)
 def test_generate_xml_without_dashboard(
-    mock_set_attributes,
     global_config_only_configuration,
     input_dir,
     output_dir,
@@ -107,9 +72,7 @@ def test_generate_xml_without_dashboard(
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    mock_writer = MagicMock()
-    with patch.object(dashboard_xml, "writer", mock_writer):
-        file_paths = dashboard_xml.generate_xml()
+    file_paths = dashboard_xml.generate_xml()
 
-        # Assert that no files are returned since no dashboard is configured
-        assert file_paths is None
+    # Assert that no files are returned since no dashboard is configured
+    assert file_paths is None
diff --git a/tests/unit/generators/xml_files/test_create_default_xml.py b/tests/unit/generators/xml_files/test_create_default_xml.py
index 667e4590e9..8d6d404bae 100644
--- a/tests/unit/generators/xml_files/test_create_default_xml.py
+++ b/tests/unit/generators/xml_files/test_create_default_xml.py
@@ -1,5 +1,5 @@
 from pytest import fixture, raises
-from unittest.mock import patch, MagicMock
+from unittest.mock import patch
 from splunk_add_on_ucc_framework.generators.xml_files import DefaultXml
 
 
@@ -21,12 +21,7 @@ def test_set_attribute_with_error(
         )
 
 
-@patch(
-    "splunk_add_on_ucc_framework.data_ui_generator.generate_nav_default_xml",
-    return_value="<xml></xml>",
-)
 def test_set_attribute(
-    mock_data_ui_generator,
     global_config_all_json,
     input_dir,
     output_dir,
@@ -40,10 +35,34 @@ def test_set_attribute(
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-
     assert hasattr(default_xml, "default_xml_content")
 
 
+@patch("os.path.exists", return_value=True)
+def test_set_attribute_when_file_is_present(
+    mock_os_path,
+    global_config_all_json,
+    input_dir,
+    output_dir,
+    ucc_dir,
+    ta_name,
+    caplog,
+):
+    default_xml = DefaultXml(
+        global_config_all_json,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
+    )
+
+    expected_msg = (
+        "Skipping generating data/ui/nav/default.xml because file already exists."
+    )
+    assert expected_msg in caplog.text
+    assert not hasattr(default_xml, "default_xml_content")
+
+
 def test_set_attribute_with_no_pages(
     global_config_for_conf_only_TA, input_dir, output_dir, ucc_dir, ta_name
 ):
@@ -58,16 +77,26 @@ def test_set_attribute_with_no_pages(
     assert not hasattr(default_xml, "default_xml_content")
 
 
-@patch(
-    "splunk_add_on_ucc_framework.generators.xml_files.DefaultXml._set_attributes",
-    return_value=MagicMock(),
-)
-@patch(
-    "splunk_add_on_ucc_framework.generators.xml_files.DefaultXml.get_file_output_path"
-)
+def test_generate_xml_without_pages(
+    global_config_for_conf_only_TA,
+    input_dir,
+    output_dir,
+    ucc_dir,
+    ta_name,
+):
+    default_xml = DefaultXml(
+        global_config_for_conf_only_TA,
+        input_dir,
+        output_dir,
+        ucc_dir=ucc_dir,
+        addon_name=ta_name,
+    )
+
+    file_paths = default_xml.generate_xml()
+    assert file_paths is None
+
+
 def test_generate_xml(
-    mock_op_path,
-    mock_set_attributes,
     global_config_all_json,
     input_dir,
     output_dir,
@@ -81,18 +110,9 @@ def test_generate_xml(
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    config_xml.default_xml_content = "<xml></xml>"
     exp_fname = "default.xml"
-    file_path = "output_path/default.xml"
-    mock_op_path.return_value = file_path
 
-    mock_writer = MagicMock()
-    with patch.object(config_xml, "writer", mock_writer):
-        file_paths = config_xml.generate_xml()
-
-        mock_writer.assert_called_once_with(
-            file_name=exp_fname,
-            file_path=file_path,
-            content=config_xml.default_xml_content,
-        )
-        assert file_paths == {exp_fname: file_path}
+    file_paths = config_xml.generate_xml()
+    assert file_paths == {
+        exp_fname: f"{output_dir}/{ta_name}/default/data/ui/nav/{exp_fname}"
+    }
diff --git a/tests/unit/generators/xml_files/test_create_inputs_xml.py b/tests/unit/generators/xml_files/test_create_inputs_xml.py
index c6cebedaea..dda86e5807 100644
--- a/tests/unit/generators/xml_files/test_create_inputs_xml.py
+++ b/tests/unit/generators/xml_files/test_create_inputs_xml.py
@@ -1,13 +1,7 @@
-from unittest.mock import patch, MagicMock
 from splunk_add_on_ucc_framework.generators.xml_files import InputsXml
 
 
-@patch(
-    "splunk_add_on_ucc_framework.data_ui_generator.generate_views_inputs_xml",
-    return_value="<xml></xml>",
-)
 def test_set_attributes_with_inputs(
-    mock_generate_dashboard_xml,
     global_config_all_json,
     input_dir,
     output_dir,
@@ -25,12 +19,7 @@ def test_set_attributes_with_inputs(
     assert hasattr(inputs_xml, "inputs_xml_content")
 
 
-@patch(
-    "splunk_add_on_ucc_framework.data_ui_generator.generate_views_inputs_xml",
-    return_value="<xml></xml>",
-)
 def test_set_attributes_without_inputs(
-    mock_generate_dashboard_xml,
     global_config_only_configuration,
     input_dir,
     output_dir,
@@ -48,16 +37,7 @@ def test_set_attributes_without_inputs(
     assert not hasattr(inputs_xml, "inputs_xml_content")
 
 
-@patch(
-    "splunk_add_on_ucc_framework.generators.xml_files.InputsXml._set_attributes",
-    return_value=MagicMock(),
-)
-@patch(
-    "splunk_add_on_ucc_framework.generators.xml_files.InputsXml.get_file_output_path"
-)
 def test_generate_xml_with_inputs(
-    mock_op_path,
-    mock_set_attributes,
     global_config_all_json,
     input_dir,
     output_dir,
@@ -71,30 +51,14 @@ def test_generate_xml_with_inputs(
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    inputs_xml.inputs_xml_content = "<xml></xml>"
     exp_fname = "inputs.xml"
-    file_path = "output_path/inputs.xml"
-    mock_op_path.return_value = file_path
+    file_paths = inputs_xml.generate_xml()
+    assert file_paths == {
+        exp_fname: f"{output_dir}/{ta_name}/default/data/ui/views/{exp_fname}"
+    }
 
-    mock_writer = MagicMock()
-    with patch.object(inputs_xml, "writer", mock_writer):
-        file_paths = inputs_xml.generate_xml()
 
-        # Assert that the writer function was called with the correct parameters
-        mock_writer.assert_called_once_with(
-            file_name=exp_fname,
-            file_path=file_path,
-            content=inputs_xml.inputs_xml_content,
-        )
-        assert file_paths == {exp_fname: file_path}
-
-
-@patch(
-    "splunk_add_on_ucc_framework.generators.xml_files.InputsXml._set_attributes",
-    return_value=MagicMock(),
-)
 def test_generate_xml_without_inputs(
-    mock_set_attributes,
     global_config_only_configuration,
     input_dir,
     output_dir,
@@ -108,10 +72,7 @@ def test_generate_xml_without_inputs(
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
+    file_paths = inputs_xml.generate_xml()
 
-    mock_writer = MagicMock()
-    with patch.object(inputs_xml, "writer", mock_writer):
-        file_paths = inputs_xml.generate_xml()
-
-        # Assert that no files are returned since no dashboard is configured
-        assert file_paths is None
+    # Assert that no files are returned since no dashboard is configured
+    assert file_paths is None
diff --git a/tests/unit/generators/xml_files/test_create_redirect_xml.py b/tests/unit/generators/xml_files/test_create_redirect_xml.py
index a8b109a8cb..5e9f4d1d87 100644
--- a/tests/unit/generators/xml_files/test_create_redirect_xml.py
+++ b/tests/unit/generators/xml_files/test_create_redirect_xml.py
@@ -1,13 +1,7 @@
-from unittest.mock import patch, MagicMock
 from splunk_add_on_ucc_framework.generators.xml_files import RedirectXml
 
 
-@patch(
-    "splunk_add_on_ucc_framework.data_ui_generator.generate_views_redirect_xml",
-    return_value="<xml></xml>",
-)
 def test_set_attributes_with_oauth(
-    mock_generate_redirect_xml,
     global_config_all_json,
     input_dir,
     output_dir,
@@ -26,12 +20,7 @@ def test_set_attributes_with_oauth(
     assert redirect_xml.ta_name == "test_addon"
 
 
-@patch(
-    "splunk_add_on_ucc_framework.data_ui_generator.generate_views_redirect_xml",
-    return_value="<xml></xml>",
-)
 def test_set_attributes_without_oauth(
-    mock_generate_redirect_xml,
     global_config_only_logging,
     input_dir,
     output_dir,
@@ -49,11 +38,8 @@ def test_set_attributes_without_oauth(
     assert not hasattr(redirect_xml, "redirect_xml_content")
 
 
-@patch(
-    "splunk_add_on_ucc_framework.generators.xml_files.RedirectXml.get_file_output_path"
-)
 def test_generate_xml_with_oauth(
-    mock_op_path, global_config_all_json, input_dir, output_dir, ucc_dir, ta_name
+    global_config_all_json, input_dir, output_dir, ucc_dir, ta_name
 ):
     redirect_xml = RedirectXml(
         global_config_all_json,
@@ -62,30 +48,15 @@ def test_generate_xml_with_oauth(
         ucc_dir=ucc_dir,
         addon_name=ta_name,
     )
-    redirect_xml.redirect_xml_content = "<xml></xml>"
     exp_fname = f"{redirect_xml.ta_name}_redirect.xml"
-    file_path = "output_path/ta_name_redirect.xml"
-    mock_op_path.return_value = file_path
 
-    mock_writer = MagicMock()
-    with patch.object(redirect_xml, "writer", mock_writer):
-        file_paths = redirect_xml.generate_xml()
+    file_paths = redirect_xml.generate_xml()
+    assert file_paths == {
+        exp_fname: f"{output_dir}/{ta_name}/default/data/ui/views/{exp_fname}"
+    }
 
-        # Assert that the writer function was called with the correct parameters
-        mock_writer.assert_called_once_with(
-            file_name=exp_fname,
-            file_path=file_path,
-            content=redirect_xml.redirect_xml_content,
-        )
-        assert file_paths == {exp_fname: file_path}
 
-
-@patch(
-    "splunk_add_on_ucc_framework.generators.xml_files.RedirectXml._set_attributes",
-    return_value=MagicMock(),
-)
 def test_generate_xml_without_oauth(
-    mock_set_attributes,
     global_config_only_logging,
     input_dir,
     output_dir,
@@ -100,9 +71,7 @@ def test_generate_xml_without_oauth(
         addon_name=ta_name,
     )
 
-    mock_writer = MagicMock()
-    with patch.object(redirect_xml, "writer", mock_writer):
-        file_paths = redirect_xml.generate_xml()
+    file_paths = redirect_xml.generate_xml()
 
-        # Assert that no files are returned since no dashboard is configured
-        assert file_paths is None
+    # Assert that no files are returned since no dashboard is configured
+    assert file_paths is None
diff --git a/tests/unit/testdata/valid_config.json b/tests/unit/testdata/valid_config.json
index 1ebb30b219..9909206c21 100644
--- a/tests/unit/testdata/valid_config.json
+++ b/tests/unit/testdata/valid_config.json
@@ -1329,6 +1329,11 @@
         "version": "1.0.0",
         "displayName": "Splunk UCC test Add-on",
         "schemaVersion": "0.0.3",
+        "checkForUpdates": false,
+        "supportedThemes": [
+            "dark",
+            "light"
+        ],
         "os-dependentLibraries": [
             {
                 "name": "cryptography",
diff --git a/tests/unit/testdata/valid_config_all_alerts.json b/tests/unit/testdata/valid_config_all_alerts.json
index 6131b8514a..2279b9775f 100644
--- a/tests/unit/testdata/valid_config_all_alerts.json
+++ b/tests/unit/testdata/valid_config_all_alerts.json
@@ -45,6 +45,7 @@
             "name": "test_alert_active",
             "label": "Test Alert Active",
             "description": "Description for test Alert Action",
+            "iconFileName": "alerticon.png",
             "activeResponse": {
                 "task": [
                     "Create"
@@ -73,7 +74,6 @@
                     "type": "text",
                     "label": "Name",
                     "field": "name",
-                    "defaultValue": "xyz",
                     "required": true,
                     "help": "Please enter your name"
                 }
@@ -122,6 +122,7 @@
             "name": "test_alert_default",
             "label": "Test Alert Default",
             "description": "Description for test Alert Action",
+            "iconFileName": "dev_icon.png",
             "adaptiveResponse": {
                 "task": [
                     "Create"
diff --git a/tests/unit/testdata/valid_config_expand.json b/tests/unit/testdata/valid_config_expand.json
index 9afa89695c..317bc676f1 100644
--- a/tests/unit/testdata/valid_config_expand.json
+++ b/tests/unit/testdata/valid_config_expand.json
@@ -13,6 +13,50 @@
                     ],
                     "title": "Some page"
                 },
+                {
+                    "name": "oauth",
+                    "table": {
+                        "actions": [
+                            "edit",
+                            "delete",
+                            "clone"
+                        ],
+                        "header": [
+                            {
+                                "label": "Name",
+                                "field": "name"
+                            },
+                            {
+                                "label": "Endpoint",
+                                "field": "endpoint"
+                            }
+                        ]
+                    },
+                    "entity": [
+                        {
+                            "type": "text",
+                            "label": "client id",
+                            "field": "client_id",
+                            "required": true,
+                            "encrypted": true
+                        },
+                        {
+                            "type": "text",
+                            "label": "client secret",
+                            "field": "client_secret",
+                            "required": true,
+                            "encrypted": true
+                        },
+                        {
+                            "type": "text",
+                            "label": "Redirect URL",
+                            "field": "redirect_url",
+                            "encrypted": true,
+                            "required": true
+                        }
+                    ],
+                    "title": "Account with name Oauth"
+                },
                 {
                     "type": "loggingTab"
                 }
@@ -90,4 +134,4 @@
         "displayName": "Splunk UCC test Add-on",
         "schemaVersion": "0.0.3"
     }
-}
+}
\ No newline at end of file
diff --git a/tests/unit/testdata/valid_config_with_one_entity_per_input.json b/tests/unit/testdata/valid_config_with_one_entity_per_input.json
new file mode 100644
index 0000000000..bf2b2deb8c
--- /dev/null
+++ b/tests/unit/testdata/valid_config_with_one_entity_per_input.json
@@ -0,0 +1,237 @@
+{
+    "pages": {
+        "configuration": {
+            "tabs": [
+                {
+                    "name": "account",
+                    "table": {
+                        "actions": [
+                            "edit",
+                            "delete",
+                            "clone"
+                        ],
+                        "header": [
+                            {
+                                "label": "Name",
+                                "field": "name"
+                            },
+                            {
+                                "label": "Auth Type",
+                                "field": "auth_type"
+                            }
+                        ]
+                    },
+                    "entity": [
+                        {
+                            "type": "text",
+                            "label": "Name",
+                            "validators": [
+                                {
+                                    "type": "string",
+                                    "errorMsg": "Length of ID should be between 1 and 50",
+                                    "minLength": 1,
+                                    "maxLength": 50
+                                },
+                                {
+                                    "type": "regex",
+                                    "errorMsg": "Name must begin with a letter and consist exclusively of alphanumeric characters and underscores.",
+                                    "pattern": "^[a-zA-Z]\\w*$"
+                                }
+                            ],
+                            "field": "name",
+                            "help": "Enter a unique name for this account.",
+                            "required": true
+                        },
+                        {
+                            "type": "singleSelect",
+                            "label": "Example Environment",
+                            "options": {
+                                "disableSearch": true,
+                                "autoCompleteFields": [
+                                    {
+                                        "value": "login.example.com",
+                                        "label": "Value1"
+                                    },
+                                    {
+                                        "value": "test.example.com",
+                                        "label": "Value2"
+                                    },
+                                    {
+                                        "value": "other",
+                                        "label": "Other"
+                                    }
+                                ],
+                                "display": true
+                            },
+                            "help": "",
+                            "field": "custom_endpoint",
+                            "defaultValue": "login.example.com",
+                            "required": true
+                        },
+                        {
+                            "type": "text",
+                            "label": "Endpoint URL",
+                            "help": "Enter the endpoint URL.",
+                            "field": "endpoint",
+                            "options": {
+                                "display": false
+                            }
+                        },
+                        {
+                            "type": "checkbox",
+                            "label": "Example Checkbox",
+                            "field": "account_checkbox",
+                            "help": "This is an example checkbox for the account entity"
+                        }
+                    ],
+                    "title": "Account"
+                }
+            ]
+        },
+        "inputs": {
+            "services": [
+                {
+                    "name": "example_input_three",
+                    "title": "Example Input Three",
+                    "entity": [
+                        {
+                            "type": "text",
+                            "label": "Name",
+                            "field": "name"
+                        }
+                    ],
+                    "disableNewInput": true
+                },
+                {
+                    "name": "example_input_four",
+                    "title": "Example Input Four",
+                    "entity": [
+                        {
+                            "type": "text",
+                            "label": "Interval",
+                            "field": "Interval",
+                            "defaultValue": 600,
+                            "help": "Time interval of the data input, in seconds."
+                        }
+                    ]
+                },
+                {
+                    "name": "input_with_default_boolean",
+                    "title": "Input with default boolean",
+                    "entity": [
+                        {
+                            "type": "checkbox",
+                            "label": "Example Checkbox",
+                            "field": "test_checkbox",
+                            "help": "This is an example checkbox.",
+                            "defaultValue": true
+                        }
+                    ]
+                },
+                {
+                    "name": "service_with_conf_param",
+                    "conf": "some_conf",
+                    "entity": [
+                        {
+                            "type": "text",
+                            "field": "interval",
+                            "label": "Interval",
+                            "help": "Time interval of the data input, in seconds.",
+                            "required": true
+                        }
+                    ],
+                    "title": "Service with conf param"
+                }
+            ],
+            "title": "Inputs",
+            "description": "Manage your data inputs",
+            "table": {
+                "actions": [
+                    "edit",
+                    "delete",
+                    "clone"
+                ],
+                "header": [
+                    {
+                        "label": "Name",
+                        "field": "name"
+                    },
+                    {
+                        "label": "Account Name",
+                        "field": "account"
+                    },
+                    {
+                        "label": "Interval",
+                        "field": "interval"
+                    },
+                    {
+                        "label": "Index",
+                        "field": "index"
+                    },
+                    {
+                        "label": "Status",
+                        "field": "disabled"
+                    }
+                ],
+                "moreInfo": [
+                    {
+                        "label": "Name",
+                        "field": "name"
+                    },
+                    {
+                        "label": "Interval",
+                        "field": "interval"
+                    },
+                    {
+                        "label": "Index",
+                        "field": "index"
+                    },
+                    {
+                        "label": "Status",
+                        "field": "disabled",
+                        "mapping": {
+                            "true": "Disabled",
+                            "false": "Enabled"
+                        }
+                    },
+                    {
+                        "label": "Example Account",
+                        "field": "account"
+                    },
+                    {
+                        "label": "Object",
+                        "field": "object"
+                    },
+                    {
+                        "label": "Object Fields",
+                        "field": "object_fields"
+                    },
+                    {
+                        "label": "Order By",
+                        "field": "order_by"
+                    },
+                    {
+                        "label": "Query Start Date",
+                        "field": "start_date"
+                    },
+                    {
+                        "label": "Limit",
+                        "field": "limit"
+                    }
+                ]
+            }
+        }
+    },
+    "meta": {
+        "name": "Splunk_TA_UCCExample",
+        "restRoot": "test_addon",
+        "version": "1.0.0",
+        "displayName": "Splunk UCC test Add-on",
+        "schemaVersion": "0.0.3",
+        "checkForUpdates": false,
+        "supportedThemes": [
+            "dark",
+            "light"
+        ]
+    }
+}
\ No newline at end of file