Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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"));
        }
Ejemplo n.º 5
0
        public void TestFindInvalid()
        {
            var testFolder = "Invalid";
            var finder     = new ValidationTargetFinder();

            Assert.That(() => finder.Find(testFolder),
                        Throws.Exception.TypeOf <FatalValidationErrorException>()
                        .And.Message.EqualTo("正しいベースフォルダを指定してください。:Invalid"));
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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));
        }
Ejemplo n.º 11
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));
        }
Ejemplo n.º 12
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));
        }
Ejemplo n.º 16
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);
        }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 19
0
        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);
        }
Ejemplo n.º 20
0
        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));
            }
        }
Ejemplo n.º 22
0
        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")));
        }
Ejemplo n.º 27
0
        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);
        }
Ejemplo n.º 28
0
        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"));
        }
Ejemplo n.º 30
0
        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("使用個数を減らして下さい。"));
        }