Files
Magical-Jumping-Bean/Library/metadata/75/75e7d7a9a57458841a85fe42d9c9141f
T

137 lines
10 KiB
Plaintext
Raw Normal View History

2019-09-29 19:40:54 -04:00
í2019.2.3f1þÿÿÿÿÿ’3$øÌuñ옲e+ Í=^7€ÿÿÿÿ¦€²Ð¦¦¦€#¦€+H€3ÿÿÿÿ1€1€ÿÿÿÿ@Þ Q€j
H€<ÿÿÿÿ 1€1€ÿÿÿÿ @Þ
Q€jÕ€Iÿÿÿÿ1€1€ÿÿÿÿÀÞH€j€ÿÿÿÿ1€1€ÿÿÿÿ@ÞQ€j€PAssetMetaDataguiddata[0]data[1]data[2]data[3]pathNameoriginalNamelabelsassetStoreRef ÿÿfš†!ë5˜9Ý4QÁóBí7€ÿÿÿÿ¦€²
E Þ€#.€,5a Þ€#.€,€r Þ€# .€,
H€«€ÿÿÿÿ 1€1€ÿÿÿÿ @Þ
Q€jñ€JÿÿÿÿÀ1€1€ÿÿÿÿÞ€j€ÿÿÿÿ\€ÿÿÿÿH€rÿÿÿÿ1€1€ÿÿÿÿ@ÞQ€jH€wÿÿÿÿ1€1€ÿÿÿÿ@ÞQ€jH€€ÿÿÿÿ1€1€ÿÿÿÿ@ÞQ€jy
 Þ€#!.€,"€…ÿÿÿÿ#@1€1€ÿÿÿÿ$Þ%.€j&Õ€“ÿÿÿÿ'1€1€ÿÿÿÿ(ÀÞ)€j€ÿÿÿÿ*H€›€ÿÿÿÿ+1€1€ÿÿÿÿ,@Þ-Q€j.y
 /Þ€#0.€,1 €§2@¾€¶ 3@Þ€#4.€,5H€»ÿÿÿÿ61€1€ÿÿÿÿ7@Þ8Q€j9H€Æÿÿÿÿ:1€1€ÿÿÿÿ;@Þ<Q€j=H€Øÿÿÿÿ>1€1€ÿÿÿÿ?@Þ@Q€jAMonoImporterPPtr<EditorExtension>m_FileIDm_PathIDPPtr<PrefabInstance>m_ExternalObjectsSourceAssetIdentifiertypeassemblynamem_UsedFileIDsm_DefaultReferencesexecutionOrdericonm_UserDatam_AssetBundleNamem_AssetBundleVariantsÿÿ£Gñ×ÜZ56 :!@iÁJ*€7€ÿÿÿÿ¦€²E Þ.(a Þ.€r Þ .
H€«€ÿÿÿÿ 1€1€ÿÿÿÿ @Þ
Q€jH€ê€ÿÿÿÿ1€1€ÿÿÿÿ@ÞQ€jñ€=ÿÿÿÿ1€1€ÿÿÿÿÞ€j€ÿÿÿÿH€›€ÿÿÿÿ1€1€ÿÿÿÿ@ÞQ€jy
 Þ.y€Q Þ. Þ€X!H€iÿÿÿÿ"1€1€ÿÿÿÿ#@Þ$Q€j%H€uÿÿÿÿ&1€1€ÿÿÿÿ'@Þ(Q€j)PPtr<EditorExtension>m_FileIDm_PathIDPPtr<PrefabInstance>m_DefaultReferencesm_Iconm_ExecutionOrderm_ClassNamem_NamespaceŒ\ày¯ð°W~}šZG…H¡Xï$œAñaPackages/com.unity.test-framework/UnityEditor.TestRunner/TestSettings/TestSettingsDeserializer.csày¯TestSettingsDeserializerusing System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEngine;
namespace UnityEditor.TestTools.TestRunner
{
/// <summary>
/// Handles deserialization of TestSettings from a provided json file path.
/// </summary>
internal class TestSettingsDeserializer : ITestSettingsDeserializer
{
private static readonly SettingsMap[] s_SettingsMapping =
{
new SettingsMap<ScriptingImplementation>("scriptingBackend", (settings, value) => settings.scriptingBackend = value),
new SettingsMap<string>("architecture", (settings, value) => settings.Architecture = value),
new SettingsMap<ApiCompatibilityLevel>("apiProfile", (settings, value) => settings.apiProfile = value),
new SettingsMap<bool>("appleEnableAutomaticSigning", (settings, value) => settings.appleEnableAutomaticSigning = value),
new SettingsMap<string>("appleDeveloperTeamID", (settings, value) => settings.appleDeveloperTeamID = value),
new SettingsMap<ProvisioningProfileType>("iOSManualProvisioningProfileType", (settings, value) => settings.iOSManualProvisioningProfileType = value),
new SettingsMap<string>("iOSManualProvisioningProfileID", (settings, value) => settings.iOSManualProvisioningProfileID = value),
new SettingsMap<ProvisioningProfileType>("tvOSManualProvisioningProfileType", (settings, value) => settings.tvOSManualProvisioningProfileType = value),
new SettingsMap<string>("tvOSManualProvisioningProfileID", (settings, value) => settings.tvOSManualProvisioningProfileID = value),
};
private readonly Func<ITestSettings> m_TestSettingsFactory;
public TestSettingsDeserializer(Func<ITestSettings> testSettingsFactory)
{
m_TestSettingsFactory = testSettingsFactory;
}
public ITestSettings GetSettingsFromJsonFile(string jsonFilePath)
{
var text = File.ReadAllText(jsonFilePath);
var settingsDictionary = Json.Deserialize(text) as Dictionary<string, object>;
var testSettings = m_TestSettingsFactory();
if (settingsDictionary == null)
{
return testSettings;
}
foreach (var settingsMap in s_SettingsMapping)
{
if (!settingsDictionary.ContainsKey(settingsMap.Key))
{
continue;
}
if (settingsMap.Type.IsEnum)
{
SetEnumValue(settingsMap.Key, settingsDictionary[settingsMap.Key], settingsMap.Type, value => settingsMap.ApplyToSettings(testSettings, value));
}
else
{
SetValue(settingsMap.Key, settingsDictionary[settingsMap.Key], settingsMap.Type, value => settingsMap.ApplyToSettings(testSettings, value));
}
}
return testSettings;
}
private abstract class SettingsMap
{
public string Key { get; }
public Type Type { get; }
protected SettingsMap(string key, Type type)
{
Key = key;
Type = type;
}
public abstract void ApplyToSettings(ITestSettings settings, object value);
}
private class SettingsMap<T> : SettingsMap
{
private Action<ITestSettings, T> m_Setter;
public SettingsMap(string key, Action<ITestSettings, T> setter) : base(key, typeof(T))
{
m_Setter = setter;
}
public override void ApplyToSettings(ITestSettings settings, object value)
{
m_Setter(settings, (T)value);
}
}
private static void SetEnumValue(string key, object value, Type type, Action<object> setter)
{
object enumValue;
if (TryGetEnum(value as string, type, out enumValue))
{
setter(enumValue);
return;
}
var acceptedValues = string.Join(", ", Enum.GetValues(type).OfType<object>().Select(val => val.ToString()).ToArray());
Debug.LogFormat("Could not convert '{0}' argument '{1}' to a valid {2}. Accepted values: {3}.", key, value, type.Name, acceptedValues);
}
private static bool TryGetEnum(string value, Type type, out object enumValue)
{
try
{
enumValue = Enum.Parse(type, value, true);
return true;
}
catch (Exception)
{
enumValue = null;
return false;
}
}
private static void SetValue(string key, object value, Type type, Action<object> setter)
{
if (type.IsInstanceOfType(value))
{
setter(value);
return;
}
Debug.LogFormat("Could not convert '{0}' argument '{1}' to a valid {2}.", key, value, type.Name);