protected override void OnSaveSettings(TData data, bool force)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            if (HasExternalPath)
            {
                CustomSettingsUtility.CheckAndCreateDirectory(AssetPath);
                EditorYamlUtility.ToYamlAtPath(data, AssetPath);
            }
            else
            {
                if (Exists())
                {
                    EditorUtility.SetDirty(data);
                }
                else
                {
                    CustomSettingsUtility.CheckAndCreateDirectory(AssetPath);
                    AssetDatabase.CreateAsset(data, AssetPath);
                    AssetDatabase.ImportAsset(AssetPath);
                }

                if (force)
                {
                    AssetDatabase.SaveAssets();
                }
            }
        }
        public void TeardownAll()
        {
            var data = EditorYamlUtility.FromYamlAtPath <TestSettingsEditorData>(PATH);

            data.Name = m_previousName;

            EditorYamlUtility.ToYamlAtPath(data, PATH);
            AssetDatabase.ImportAsset(PATH);
            AssetDatabase.SaveAssets();
        }
        public void Change()
        {
            string name = "Test Name Change";

            TestSettingsEditorPackage.Settings.GetData().Name = name;
            TestSettingsEditorPackage.Settings.SaveSettings();

            var data = EditorYamlUtility.FromYamlAtPath <TestSettingsEditorData>(PATH);

            Assert.AreEqual(name, data.Name);
        }
        protected override TData OnLoadSettings()
        {
            if (!Exists())
            {
                var data = ScriptableObject.CreateInstance <TData>();

                OnSaveSettings(data, true);
            }

            return(HasExternalPath ? EditorYamlUtility.FromYamlAtPath <TData>(AssetPath) : AssetDatabase.LoadAssetAtPath <TData>(AssetPath));
        }
        public void SetupAll()
        {
            var data = EditorYamlUtility.FromYamlAtPath <TestSettingsEditorData>(PATH);

            m_previousName = data.Name;
        }