public void TestValidate() { var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/B04_ErrorShaderRule", true); var rule = new ErrorShaderRule("エラーシェーダー検出"); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo("エラーシェーダー検出")); Assert.That(result.Issues.Count, Is.EqualTo(3)); Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Error)); Assert.That(result.Issues[0].target.name, Is.EqualTo("HiddenInternalErrorShaderObject")); Assert.That(result.Issues[0].message, Is.EqualTo(string.Format("オブジェクトのマテリアルで正しいシェーダーが参照されていません。", "HiddenInternalErrorShaderObject"))); Assert.That(result.Issues[0].solution, Is.Empty); Assert.That(result.Issues[0].solutionURL, Is.Empty); Assert.That(result.Issues[1].level, Is.EqualTo(IssueLevel.Error)); Assert.That(result.Issues[1].target.name, Is.EqualTo("ErrorShaderObject")); Assert.That(result.Issues[1].message, Is.EqualTo(string.Format("オブジェクトでシェーダーエラーが検出されました。", "ErrorShaderObject"))); Assert.That(result.Issues[1].solution, Is.Empty); Assert.That(result.Issues[1].solutionURL, Is.Empty); Assert.That(result.Issues[2].level, Is.EqualTo(IssueLevel.Info)); Assert.That(result.Issues[2].target.name, Is.EqualTo("NoneMaterialObject")); Assert.That(result.Issues[2].message, Is.EqualTo(string.Format("オブジェクトのRendererにマテリアルの参照がありません。", "NoneMaterialObject"))); Assert.That(result.Issues[2].solution, Is.Empty); Assert.That(result.Issues[2].solutionURL, Is.Empty); }
public void TestValidateErrorDetail( LightType type, LightmapBakeType[] bakeTypes, float minRange, float maxRange, float minIntensity, float maxIntensity, float minBounceIntensity, float maxBounceIntensity) { var rule = new LightConfigRule(string.Format("{0}Lightの設定が制限に従っていることを検証するルール", type), type, bakeTypes, minRange, maxRange, minIntensity, maxIntensity, minBounceIntensity, maxBounceIntensity); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/LightConfigRule", true); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo(string.Format("{0}Lightの設定が制限に従っていることを検証するルール", type))); Debug.Log(string.Format("{0}Lightの設定が制限に従っていることを検証するルール", type)); Assert.That(result.Issues.Count, Is.EqualTo(4)); var obj = result.Issues[0].target as GameObject; Assert.That(obj.name, Does.EndWith("_NG")); var light = obj.GetComponent <Light>(); var bakeTypeListString = string.Join(", ", bakeTypes.Select(x => x.ToString()).ToArray()); Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Error)); //Assert.That(result.Issues[0].message, Is.EqualTo(string.Format("{0}LightのModeが{1}以外に設定されています。({2})", // type, bakeTypeListString, light.lightmapBakeType))); //Assert.That(result.Issues[0].solution, Is.EqualTo(string.Format("Modeを{0}に設定して下さい。", bakeTypeListString))); Debug.Log(result.Issues[0].message); Debug.Log(result.Issues[0].solution); obj = result.Issues[1].target as GameObject; Assert.That(obj.name, Does.EndWith("_NG")); light = obj.GetComponent <Light>(); Assert.That(result.Issues[1].level, Is.EqualTo(IssueLevel.Error)); //Assert.That(result.Issues[1].message, Is.EqualTo(string.Format("{0}LightのRangeが{1}~{2}の範囲を超えています。(設定値:{3})", // type, minRange, maxRange, light.range))); //Assert.That(result.Issues[1].solution, Is.EqualTo("Rangeを範囲内になるように設定して下さい。")); Debug.Log(result.Issues[1].message); Debug.Log(result.Issues[1].solution); obj = result.Issues[2].target as GameObject; Assert.That(obj.name, Does.EndWith("_NG")); light = obj.GetComponent <Light>(); Assert.That(result.Issues[2].level, Is.EqualTo(IssueLevel.Error)); //Assert.That(result.Issues[2].message, Is.EqualTo(string.Format("{0}LightのIntensityが{1}~{2}の範囲を超えています。(設定値:{3})", // type, minIntensity, maxIntensity, light.intensity))); //Assert.That(result.Issues[2].solution, Is.EqualTo("Intensityを範囲内になるように設定して下さい。")); Debug.Log(result.Issues[2].message); Debug.Log(result.Issues[2].solution); obj = result.Issues[3].target as GameObject; Assert.That(obj.name, Does.EndWith("_NG")); light = obj.GetComponent <Light>(); Assert.That(result.Issues[3].level, Is.EqualTo(IssueLevel.Error)); //Assert.That(result.Issues[3].message, Is.EqualTo(string.Format("{0}LightのIndirect Multiplierが{1}~{2}の範囲を超えています。(設定値:{3})", // type, minBounceIntensity, maxBounceIntensity, light.bounceIntensity))); //Assert.That(result.Issues[3].solution, Is.EqualTo("Indirect Multiplierを範囲内になるように設定して下さい。")); Debug.Log(result.Issues[3].message); Debug.Log(result.Issues[3].solution); }
public void TestValidate() { var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/AnimatorComponentMaxCountRule", true); var rule = new AnimatorComponentMaxCountRule("AnimatorComponent使用数検出", ANIMATOR_LIMIT_COUNT); var result = rule.Validate(target); var issues = result.Issues; Assert.That(result.RuleName, Is.EqualTo("AnimatorComponent使用数検出")); Assert.That(issues.Count, Is.EqualTo(ANIMATOR_LIMIT_COUNT + 1)); for (int i = 0; i < issues.Count; i++) { Assert.That(issues[i].level, Is.EqualTo(IssueLevel.Error)); if (i == 0) { Assert.That(result.Issues[i].target.name, Is.EqualTo(string.Format("AnimatorObject"))); } else { Assert.That(issues[i].target.name, Is.EqualTo(string.Format("AnimatorObject ({0})", i))); } //Assert.That(issues[i].message, Is.EqualTo(string.Format("Animatorコンポーネントの使用数が{0}個を超えています。({1}個)", ANIMATOR_LIMIT_COUNT, 51))); //Assert.That(issues[i].solution, Is.EqualTo("Animatorコンポーネントの使用数を減らしてください。")); Assert.That(issues[i].solutionURL, Is.Empty); } }
public void TestValidate() { var grupeName = "カメラ"; var rule = new ComponentBlacklistRule("コンポーネントブラックリストルール", new ComponentReference[] { new ComponentReference("ライティング", new string[] { "UnityEngine.Light" }, ValidationLevel.ALLOW), new ComponentReference(grupeName, new string[] { "UnityEngine.Camera" }, ValidationLevel.NEGOTIABLE), new ComponentReference("Jointの使用禁止", new string[] { "UnityEngine.CharacterJoint", "UnityEngine.ConfigurableJoint", "UnityEngine.FixedJoint", "UnityEngine.HingeJoint", "UnityEngine.SpringJoint" }, ValidationLevel.DISALLOW) }); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/B03_ComponentBlacklistRule", true); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo("コンポーネントブラックリストルール")); Assert.That(result.Issues.Count, Is.EqualTo(2)); Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Warning)); Assert.That(result.Issues[0].target.name, Is.EqualTo("Main Camera")); Assert.That(result.Issues[0].message, Is.EqualTo(string.Format("{0}:Cameraを使用する場合は事前に運営に問い合わせてください。", grupeName))); Assert.That(result.Issues[0].solution, Is.Empty); Assert.That(result.Issues[0].solutionURL, Is.Empty); Assert.That(result.Issues[1].level, Is.EqualTo(IssueLevel.Error)); Assert.That(result.Issues[1].target.name, Is.EqualTo("GameObjectWithJoint")); }
public void TestFindInvalid() { var testFolder = "Invalid"; var finder = new ValidationTargetFinder(); Assert.That(() => finder.Find(testFolder), Throws.Exception.TypeOf <FatalValidationErrorException>() .And.Message.EqualTo("正しいベースフォルダを指定してください。:Invalid")); }
public void TestValidate(LightType type, LightmapBakeType[] unusableBakeTypes) { var rule = new UseLightModeRule("特定のLightのModeについて検証するルール", type, unusableBakeTypes); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/UseLightModeRule", true); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo("特定のLightのModeについて検証するルール")); Assert.That(result.Issues.Count, Is.Zero); }
public void TestValidateNoObject() { var rule = new AssetGuidBlacklistRule("AssetGuidBlacklistRule", new string[] { "740112f6e77ca914d9c26eef5d68accd", "ae68339621fb41b4f9905188526120ea" }); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/ValidationTargetFinderNoObject", true); var result = rule.Validate(target); Assert.That(result.Issues.Count, Is.EqualTo(0)); }
public void TestUnderLimit() { var limit = 4; var guids = new string[] { "c4bb7970c870834499aba4a950dd3d73" }; var rule = new PrefabLimitRule("", guids, limit); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/PrefabLimitRule", true); var result = rule.Validate(target); Assert.That(result.Issues.Count, Is.Zero); }
public void TestValidate() { var rule = new ContainMatOrTexInAssetRule("アセット内のMaterialやTextureの埋め込みを検証するルール"); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/ContainMatOrTexInAssetRule/OK", true); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo("アセット内のMaterialやTextureの埋め込みを検証するルール")); Assert.That(result.Issues.Count, Is.Zero); }
public void TestValidate(LightType type, LightmapBakeType[] bakeTypes) { var rule = new LightConfigRule(string.Format("{0}Lightの設定が制限に従っていることを検証するルール", type), type, bakeTypes); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/LightConfigRule", true); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo(string.Format("{0}Lightの設定が制限に従っていることを検証するルール", type))); Debug.Log(string.Format("{0}Lightの設定が制限に従っていることを検証するルール", type)); Assert.That(result.Issues.Count, Is.EqualTo(0)); }
public void TestNoIssues() { var rule = new NoneMeshRule("メッシュ未設定検出ルール"); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/ValidationTargetFinderNoObject", true); var result = rule.Validate(target); var issues = result.Issues; Assert.That(issues.Count, Is.EqualTo(0)); }
public void TestValidate() { var limit = 5; var rule = new VRCTriggerCountLimitRule("VRC_Triggerコンポーネントの数が制限を超えていることを検出するルール", limit); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/VRCTriggerCountLimitRule", true); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo("VRC_Triggerコンポーネントの数が制限を超えていることを検出するルール")); Assert.That(result.Issues.Count, Is.EqualTo(0)); }
public void TestValidateInvalidSetting() { var invalidRule = new ComponentBlacklistRule(null, new ComponentReference[] { null }); var invalidRule2 = new ComponentBlacklistRule("コンポーネントブラックリストルール", null); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/ComponentBlacklistRule", true); var result = invalidRule.Validate(target); Assert.That(result.Issues.Count, Is.EqualTo(0)); var failResult = invalidRule2.Validate(target); Assert.That(failResult.Issues.Count, Is.EqualTo(0)); }
public void TestValidateInvalidSetting() { var invalidRule = new UsableComponentListRule(null, new ComponentReference[] { null }); var invalidRule2 = new UsableComponentListRule("", null); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/UsableComponentListRule", true); var result = invalidRule.Validate(target); Assert.That(result.Issues.Count, Is.Zero); var failResult = invalidRule2.Validate(target); Assert.That(failResult.Issues.Count, Is.Zero); }
public void TestValidate(LightType type, int limit) { var rule = new LightCountLimitRule( string.Format("{0}Lightの個数が制限を超えていることを検出するルール", type), type, limit); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/LightCountLimitRule", true); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo(string.Format("{0}Lightの個数が制限を超えていることを検出するルール", type))); Assert.That(result.Issues.Count, Is.EqualTo(0)); }
public void TestFind() { var testFolder = "Assets/VitDeck/Validator/Tests/ValidationTargetFinder"; var finder = new ValidationTargetFinder(); var validationTarget = finder.Find(testFolder, true); Assert.That(validationTarget.GetBaseFolderPath(), Is.EqualTo(testFolder)); Assert.That(validationTarget.GetAllAssetPaths(), Is.Not.Null); Assert.That(validationTarget.GetAllAssetGuids(), Is.Not.Null); Assert.That(validationTarget.GetAllAssets(), Is.Not.Null); Assert.That(validationTarget.GetScenes(), Is.Not.Null); Assert.That(validationTarget.GetRootObjects(), Is.Not.Null); Assert.That(validationTarget.GetAllObjects(), Is.Not.Null); }
public void TestValidate() { var rule = new UseMeshColliderRule("MeshColliderの使用を検証するルール"); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/UseMeshColliderRule", true); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo("MeshColliderの使用を検証するルール")); Assert.That(result.Issues.Count, Is.AtLeast(1)); Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Warning)); //Assert.That(result.Issues[0].message, Is.EqualTo("MeshColliderは非推奨です。")); //Assert.That(result.Issues[0].solution, Is.EqualTo("他のColliderを使用してください。")); Assert.That(result.Issues[0].solutionURL, Is.Empty); }
public void TestValidate() { var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/GlobalIlluminationBakedRule", true); var rule = new GlobalIlluminationBakedRule("Global IlluminationのBakedチェックルール"); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo("Global IlluminationのBakedチェックルール")); Assert.That(result.Issues.Count, Is.EqualTo(1)); Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Error)); Assert.That(result.Issues[0].target.name, Is.EqualTo("Cube_GINotBaked")); //Assert.That(result.Issues[0].message, Is.EqualTo(string.Format("アセット{0}でGlobal IlluminationがBakedに設定されていません。", "Cube_GINotBaked (UnityEngine.GameObject)"))); //Assert.That(result.Issues[0].solution, Is.EqualTo("Standard ShaderでEmissionを利用する場合はGlobal Illuminationの設定をBakedにしてください。")); Assert.That(result.Issues[0].solutionURL, Is.Empty); }
public void TestValidateError() { var rule = new ContainMatOrTexInAssetRule("アセット内のMaterialやTextureの埋め込みを検証するルール"); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/ContainMatOrTexInAssetRule/NG", true); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo("アセット内のMaterialやTextureの埋め込みを検証するルール")); Assert.That(result.Issues.Count, Is.EqualTo(1)); Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Error)); //Assert.That(result.Issues[0].message, Is.EqualTo("アセット内に埋め込まれているMaterialが使用されています。")); //Assert.That(result.Issues[0].solution, Is.EqualTo("ExtractMaterialsをおこなって出力されたMaterialを使用してください。")); Debug.Log(result.Issues[0].message); Debug.Log(result.Issues[0].solution); }
public void TestValidate() { var rule = new AssetGuidBlacklistRule("AssetGuidBlacklistRule", new string[] { "740112f6e77ca914d9c26eef5d68accd", "ae68339621fb41b4f9905188526120ea" }); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/AssetGuidBlacklistRule", true); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo("AssetGuidBlacklistRule")); Assert.That(result.GetResultLog(false), Is.Empty); Assert.That(result.Issues.Count, Is.EqualTo(2)); Assert.That(result.Issues[0].target, Is.EqualTo(AssetDatabase.LoadMainAssetAtPath(AssetDatabase.GUIDToAssetPath("740112f6e77ca914d9c26eef5d68accd")))); Assert.That(result.Issues[1].target, Is.EqualTo(AssetDatabase.LoadMainAssetAtPath(AssetDatabase.GUIDToAssetPath("ae68339621fb41b4f9905188526120ea")))); Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Error)); Assert.That(result.Issues[0].message, Does.Contain("Assets/VitDeck/Validator/Tests/Data/AssetGuidBlacklistRule/Prohibited material.mat")); }
public void TestOverLimit() { var limit = 2; var guids = new string[] { "c4bb7970c870834499aba4a950dd3d73" }; var rule = new PrefabLimitRule("", guids, limit); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/PrefabLimitRule", true); var result = rule.Validate(target); Assert.That(result.Issues.Count, Is.EqualTo(1)); foreach (var issue in result.Issues) { Assert.That(issue.level, Is.EqualTo(IssueLevel.Error)); } }
public void TestValidateError(LightType type, LightmapBakeType[] unusableBakeTypes) { var rule = new UseLightModeRule(string.Format("{0}LightのModeについて検証するルール", type), type, unusableBakeTypes); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/UseLightModeRule", true); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo(string.Format("{0}LightのModeについて検証するルール", type))); Assert.That(result.Issues.Count, Is.EqualTo(1)); var obj = result.Issues[0].target as GameObject; var light = obj.GetComponent <Light>(); Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Error)); //Assert.That(result.Issues[0].message, Is.EqualTo(string.Format("{0}Lightの{1} Modeは使用できません。", type, light.lightmapBakeType))); //Assert.That(result.Issues[0].solution, Is.EqualTo("使用申請をするかModeを変更して下さい。")); Debug.Log(string.Format("{0}LightのModeについて検証するルール", type)); Debug.Log(result.Issues[0].message); }
public void TestValidate() { var rule = new ComponentBlacklistRule("コンポーネントブラックリストルール", new ComponentReference[] { new ComponentReference("ライティング", new string[] { "UnityEngine.Light" }, ValidationLevel.ALLOW), new ComponentReference("Jointの使用禁止", new string[] { "UnityEngine.CharacterJoint", "UnityEngine.ConfigurableJoint", "UnityEngine.FixedJoint", "UnityEngine.HingeJoint", "UnityEngine.SpringJoint" }, ValidationLevel.DISALLOW) }); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/ComponentBlacklistRule", true); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo("コンポーネントブラックリストルール")); Assert.That(result.Issues.Count, Is.EqualTo(1)); Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Error)); Assert.That(result.Issues[0].target.name, Is.EqualTo("GameObjectWithJoint")); }
public void TestValidate() { var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/CanvasRenderModeRule", true); var rule = new CanvasRenderModeRule("RenderMode.WorldSpaceテスト"); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo("RenderMode.WorldSpaceテスト")); Assert.That(result.Issues.Count, Is.EqualTo(2)); Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Error)); Assert.That(result.Issues[0].target.name, Is.EqualTo("Canvas_ScreenSpace-Overlay")); //Assert.That(result.Issues[0].message, Is.EqualTo(string.Format("{0}においてCanvasのRenderModeがWorldSpaceになっていません。", "Canvas_ScreenSpace-Overlay (UnityEngine.GameObject)"))); Assert.That(result.Issues[0].solution, Is.Empty); Assert.That(result.Issues[1].level, Is.EqualTo(IssueLevel.Error)); Assert.That(result.Issues[1].target.name, Is.EqualTo("Canvas_ScreenSpace-Camera")); //Assert.That(result.Issues[1].message, Is.EqualTo(string.Format("{0}においてCanvasのRenderModeがWorldSpaceになっていません。", "Canvas_ScreenSpace-Camera (UnityEngine.GameObject)"))); Assert.That(result.Issues[1].solution, Is.Empty); }
public void TestValidateError(LightType type, int limit, int count) { var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/LightCountLimitRule", true); var rule = new LightCountLimitRule( string.Format("{0}Lightの個数が制限を超えていることを検出するルール", type), type, limit); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo(string.Format("{0}Lightの個数が制限を超えていることを検出するルール", type))); Assert.That(result.Issues.Count, Is.EqualTo(count)); var targetLight = result.Issues[0].target as Light; Assert.That(targetLight.type, Is.EqualTo(type)); Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Error)); //Assert.That(result.Issues[0].message, Is.EqualTo(string.Format("{0} Lightが{1}個を超えています。({2}個)", type, limit, count))); //Assert.That(result.Issues[0].solution, Is.EqualTo("別のLightを使用するか、削除して個数を減らして下さい。")); }
public void TestValidate() { var rule = new ComponentWhitelistRule("コンポーネントホワイトリストルール", new ComponentReference[] { new ComponentReference("ライティング", new string[] { "UnityEngine.Light" }, ValidationLevel.ALLOW), new ComponentReference("Jointの使用禁止", new string[] { "UnityEngine.CharacterJoint", "UnityEngine.ConfigurableJoint", "UnityEngine.FixedJoint", "UnityEngine.HingeJoint", "UnityEngine.SpringJoint" }, ValidationLevel.DISALLOW) }); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/ComponentWhitelistRule", true); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo("コンポーネントホワイトリストルール")); Assert.That(result.Issues.Count, Is.EqualTo(3)); Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Error)); Assert.That(result.Issues[0].target.name, Is.EqualTo("Main Camera")); Assert.That(result.Issues[0].message, Is.EqualTo(string.Format("{0}は使用可能なコンポーネントリストに登録されていません。", "Camera"))); Assert.That(result.Issues[1].message, Is.EqualTo(string.Format("{0}は使用可能なコンポーネントリストに登録されていません。", "FlareLayer"))); Assert.That(result.Issues[2].message, Is.EqualTo(string.Format("{0}は使用可能なコンポーネントリストに登録されていません。", "AudioListener"))); }
public void TestValidateError() { var grupeName = "カメラ"; var rule = new ComponentWhitelistRule("コンポーネントホワイトリストルール", new ComponentReference[] { new ComponentReference("ライティング", new string[] { "UnityEngine.Light" }, ValidationLevel.ALLOW), new ComponentReference(grupeName, new string[] { "UnityEngine.Camera" }, ValidationLevel.DISALLOW), new ComponentReference("Jointの使用禁止", new string[] { "UnityEngine.CharacterJoint", "UnityEngine.ConfigurableJoint", "UnityEngine.FixedJoint", "UnityEngine.HingeJoint", "UnityEngine.SpringJoint" }, ValidationLevel.DISALLOW) }); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/B02_ComponentWhitelistRule", true); var result = rule.Validate(target); Assert.That(result.Issues.Count, Is.EqualTo(3)); Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Error)); Assert.That(result.Issues[0].target.name, Is.EqualTo("Main Camera")); Assert.That(result.Issues[0].message, Is.EqualTo(string.Format("{0}:{1}の使用は許可されていません。", grupeName, "Camera"))); Assert.That(result.Issues[0].solution, Is.Empty); Assert.That(result.Issues[0].solutionURL, Is.Empty); }
public void TestValidateErrorUnavailable() { var type = LightType.Spot; var rule = new LightConfigRule(string.Format("{0}Lightが使用されていないことを検証するルール", type), type, new LightmapBakeType[] { }); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/LightConfigRule", true); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo(string.Format("{0}Lightが使用されていないことを検証するルール", type))); Debug.Log(string.Format("{0}Lightが使用されていないことを検証するルール", type)); Assert.That(result.Issues.Count, Is.EqualTo(2)); foreach (var issue in result.Issues) { Assert.That(issue.level, Is.EqualTo(IssueLevel.Error)); //Assert.That(issue.message, Is.EqualTo(string.Format("{0}Lightは使用できません。", type))); //Assert.That(issue.solution, Is.EqualTo("削除するかTypeを変更して他のLightを使用して下さい。")); Debug.Log(issue.message); Debug.Log(issue.solution); } }
public void TestValidateError() { var rule = new UsableComponentListRule("", new ComponentReference[] { new ComponentReference("ライティング", new string[] { "UnityEngine.Light" }, ValidationLevel.ALLOW), new ComponentReference("カメラ", new string[] { "UnityEngine.Camera" }, ValidationLevel.DISALLOW), new ComponentReference("Jointの使用禁止", new string[] { "UnityEngine.CharacterJoint", "UnityEngine.ConfigurableJoint", "UnityEngine.FixedJoint", "UnityEngine.HingeJoint", "UnityEngine.SpringJoint" }, ValidationLevel.DISALLOW) }); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/UsableComponentListRule", true); var result = rule.Validate(target); Assert.That(result.Issues.Count, Is.EqualTo(2)); Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Error)); Assert.That(result.Issues[0].target.name, Is.EqualTo("Main Camera")); }
public void TestValidateError() { var limit = 3; var rule = new VRCTriggerCountLimitRule("VRC_Triggerコンポーネントの数が制限を超えていることを検出するルール", limit); var finder = new ValidationTargetFinder(); var target = finder.Find("Assets/VitDeck/Validator/Tests/Data/VRCTriggerCountLimitRule", true); var result = rule.Validate(target); Assert.That(result.RuleName, Is.EqualTo("VRC_Triggerコンポーネントの数が制限を超えていることを検出するルール")); Assert.That(result.Issues.Count, Is.EqualTo(5)); Assert.That(result.Issues[0].level, Is.EqualTo(IssueLevel.Error)); Assert.That(result.Issues[0].target.name, Is.EqualTo("Cube")); //Assert.That(result.Issues[0].message, Is.EqualTo(string.Format("VRC_Triggerコンポーネントの数が{0}個を超えています。(5個)", limit))); //Assert.That(result.Issues[0].solution, Is.EqualTo("使用個数を減らして下さい。")); Assert.That(result.Issues[1].level, Is.EqualTo(IssueLevel.Error)); Assert.That(result.Issues[1].target.name, Is.EqualTo("Cube (2)")); //Assert.That(result.Issues[1].message, Is.EqualTo(string.Format("VRC_Triggerコンポーネントの数が{0}個を超えています。(5個)", limit))); //Assert.That(result.Issues[1].solution, Is.EqualTo("使用個数を減らして下さい。")); Assert.That(result.Issues[2].level, Is.EqualTo(IssueLevel.Error)); Assert.That(result.Issues[2].target.name, Is.EqualTo("Cube (4)")); //Assert.That(result.Issues[2].message, Is.EqualTo(string.Format("VRC_Triggerコンポーネントの数が{0}個を超えています。(5個)", limit))); //Assert.That(result.Issues[2].solution, Is.EqualTo("使用個数を減らして下さい。")); Assert.That(result.Issues[3].level, Is.EqualTo(IssueLevel.Error)); Assert.That(result.Issues[3].target.name, Is.EqualTo("Cube (1)")); //Assert.That(result.Issues[3].message, Is.EqualTo(string.Format("VRC_Triggerコンポーネントの数が{0}個を超えています。(5個)", limit))); //Assert.That(result.Issues[3].solution, Is.EqualTo("使用個数を減らして下さい。")); Assert.That(result.Issues[4].level, Is.EqualTo(IssueLevel.Error)); Assert.That(result.Issues[4].target.name, Is.EqualTo("Cube (3)")); //Assert.That(result.Issues[4].message, Is.EqualTo(string.Format("VRC_Triggerコンポーネントの数が{0}個を超えています。(5個)", limit))); //Assert.That(result.Issues[4].solution, Is.EqualTo("使用個数を減らして下さい。")); }