using Zinnia.Extension; using Zinnia.Rule; namespace Test.Zinnia.Rule { using NUnit.Framework; using UnityEngine; public class ActiveInHierarchyRuleTest { private GameObject containingObject; private RuleContainer container; private ActiveInHierarchyRule subject; [SetUp] public void SetUp() { containingObject = new GameObject("ActiveInHierarchyRuleTest"); container = new RuleContainer(); subject = containingObject.AddComponent(); container.Interface = subject; } [TearDown] public void TearDown() { Object.DestroyImmediate(containingObject); } [Test] public void AcceptsMatch() { containingObject.SetActive(true); Assert.IsTrue(container.Accepts(containingObject)); } [Test] public void RefusesEmpty() { Assert.IsFalse(container.Accepts(null)); } [Test] public void RefusesInactiveContainer() { containingObject.SetActive(false); Assert.IsFalse(container.Accepts(containingObject)); } [Test] public void RefusesInactiveGameObject() { containingObject.SetActive(true); subject.gameObject.SetActive(false); Assert.IsFalse(container.Accepts(containingObject)); } [Test] public void RefusesInactiveComponent() { containingObject.SetActive(true); subject.enabled = false; Assert.IsFalse(container.Accepts(containingObject)); } } }