using Zinnia.Association; using Zinnia.Pattern.Collection; using Zinnia.Rule; namespace Test.Zinnia.Association { using NUnit.Framework; using Test.Zinnia.Utility.Stub; using UnityEngine; public class RuleAssociationTest { private GameObject containingObject; private RuleAssociation subject; private RuleContainer ruleContainer; [SetUp] public void SetUp() { containingObject = new GameObject("RuleAssociationTest"); containingObject.SetActive(false); subject = containingObject.AddComponent(); ruleContainer = new RuleContainer(); containingObject.SetActive(true); } [TearDown] public void TearDown() { Object.Destroy(containingObject); } [Test] public void ShouldBeActiveTrueFromPatternMatcherRule() { PatternMatcherObservableList patterns = containingObject.AddComponent(); PatternMatcherRule rule = containingObject.AddComponent(); rule.Patterns = patterns; ruleContainer.Interface = rule; subject.Rule = ruleContainer; GameObject patternOneContainer = new GameObject("pattern1"); PatternMatcherStub patternOne = patternOneContainer.AddComponent(); patternOne.source = "tomatch"; patternOne.Pattern = "^tomatch$"; patterns.Add(patternOne); GameObject patternTwoContainer = new GameObject("pattern2"); PatternMatcherStub patternTwo = patternTwoContainer.AddComponent(); patternTwo.source = "tomatch"; patternTwo.Pattern = "^toma.*$"; patterns.Add(patternTwo); GameObject patternThreeContainer = new GameObject("pattern3"); PatternMatcherStub patternThree = patternThreeContainer.AddComponent(); patternThree.source = "tomatch"; patternThree.Pattern = ""; patterns.Add(patternThree); Assert.IsTrue(subject.ShouldBeActive()); Object.Destroy(patternOneContainer); Object.Destroy(patternTwoContainer); Object.Destroy(patternThreeContainer); } [Test] public void ShouldBeActiveFalseFromPatternMatcherRule() { PatternMatcherObservableList patterns = containingObject.AddComponent(); PatternMatcherRule rule = containingObject.AddComponent(); rule.Patterns = patterns; ruleContainer.Interface = rule; subject.Rule = ruleContainer; GameObject patternOneContainer = new GameObject("pattern1"); PatternMatcherStub patternOne = patternOneContainer.AddComponent(); patternOne.source = "tomatch"; patternOne.Pattern = "^tomatch$"; patterns.Add(patternOne); GameObject patternTwoContainer = new GameObject("pattern2"); PatternMatcherStub patternTwo = patternTwoContainer.AddComponent(); patternTwo.source = "tomatch"; patternTwo.Pattern = "wontmatch"; patterns.Add(patternTwo); GameObject patternThreeContainer = new GameObject("pattern3"); PatternMatcherStub patternThree = patternThreeContainer.AddComponent(); patternThree.source = "tomatch"; patternThree.Pattern = ""; patterns.Add(patternThree); Assert.IsFalse(subject.ShouldBeActive()); Object.Destroy(patternOneContainer); Object.Destroy(patternTwoContainer); Object.Destroy(patternThreeContainer); } } }