public IEnumerator AcceptsMatch() { UnityObjectObservableList objects = containingObject.AddComponent <UnityObjectObservableList>(); yield return(null); subject.Objects = objects; objects.Add(containingObject); Assert.IsTrue(container.Accepts(containingObject)); }
protected virtual RuleContainer CreateRule(GameObject element) { RuleContainer container = new RuleContainer(); ListContainsRule rule = containingObject.AddComponent <ListContainsRule>(); UnityObjectObservableList objects = containingObject.AddComponent <UnityObjectObservableList>(); rule.Objects = objects; objects.Add(element); container.Interface = rule; return(container); }
public IEnumerator RefusesInactiveComponent() { UnityObjectObservableList objects = containingObject.AddComponent <UnityObjectObservableList>(); yield return(null); subject.Objects = objects; objects.Add(containingObject); subject.enabled = false; Assert.IsFalse(container.Accepts(containingObject)); }
public IEnumerator RefusesDifferent() { GameObject wrongGameObject = new GameObject(); UnityObjectObservableList objects = containingObject.AddComponent <UnityObjectObservableList>(); yield return(null); subject.Objects = objects; objects.Add(wrongGameObject); Assert.IsFalse(container.Accepts(containingObject)); Object.DestroyImmediate(wrongGameObject); }
public void ReceiveWithRuleRestrictionsOnCollisionSource() { GameObject forwardSource = new GameObject(); GameObject collisionSourceValid = new GameObject(); Collider colliderValid = collisionSourceValid.AddComponent <BoxCollider>(); GameObject collisionSourceInvalid = new GameObject(); Collider colliderInvalid = collisionSourceInvalid.AddComponent <BoxCollider>(); ListContainsRule rule = subject.gameObject.AddComponent <ListContainsRule>(); UnityObjectObservableList objects = containingObject.AddComponent <UnityObjectObservableList>(); rule.Objects = objects; objects.Add(collisionSourceValid); subject.ReceiveValidity = new RuleContainer { Interface = rule }; subject.RuleSource = CollisionNotifierEventProxyEmitter.RuleSourceType.CollidingSource; UnityEventListenerMock emittedMock = new UnityEventListenerMock(); subject.Emitted.AddListener(emittedMock.Listen); CollisionNotifier.EventData validDigest = new CollisionNotifier.EventData(); validDigest.Set(forwardSource.GetComponent <Component>(), true, null, colliderValid); CollisionNotifier.EventData invalidDigest = new CollisionNotifier.EventData(); invalidDigest.Set(forwardSource.GetComponent <Component>(), true, null, colliderInvalid); Assert.IsNull(subject.Payload); Assert.IsFalse(emittedMock.Received); subject.Receive(validDigest); Assert.AreEqual(validDigest, subject.Payload); Assert.IsTrue(emittedMock.Received); emittedMock.Reset(); subject.Receive(invalidDigest); Assert.AreEqual(validDigest, subject.Payload); Assert.IsFalse(emittedMock.Received); Object.DestroyImmediate(forwardSource); Object.DestroyImmediate(collisionSourceValid); Object.DestroyImmediate(collisionSourceInvalid); }
public IEnumerator AcceptsInactiveGameObject() { UnityObjectObservableList objects = containingObject.AddComponent <UnityObjectObservableList>(); yield return(null); subject.Objects = objects; objects.Add(containingObject); subject.AutoRejectStates = BaseRule.RejectRuleStates.RuleComponentIsDisabled; subject.gameObject.SetActive(false); Assert.IsTrue(container.Accepts(containingObject)); subject.enabled = false; Assert.IsFalse(container.Accepts(containingObject)); }
public void ReceiveWithRuleRestrictions() { UnityEventListenerMock emittedMock = new UnityEventListenerMock(); subject.Emitted.AddListener(emittedMock.Listen); GameObject digestValid = new GameObject(); GameObject digestInvalid = new GameObject(); ObjectPointer.EventData validData = new ObjectPointer.EventData(digestValid.transform); ObjectPointer.EventData invalidData = new ObjectPointer.EventData(digestInvalid.transform); ListContainsRule rule = subject.gameObject.AddComponent <ListContainsRule>(); UnityObjectObservableList objects = containingObject.AddComponent <UnityObjectObservableList>(); rule.Objects = objects; objects.Add(digestValid); subject.ReceiveValidity = new RuleContainer { Interface = rule }; Assert.IsNull(subject.Payload); Assert.IsFalse(emittedMock.Received); subject.Receive(validData); Assert.AreEqual(validData, subject.Payload); Assert.IsTrue(emittedMock.Received); emittedMock.Reset(); Assert.IsFalse(emittedMock.Received); subject.Receive(invalidData); Assert.AreEqual(validData, subject.Payload); Assert.IsFalse(emittedMock.Received); Object.DestroyImmediate(digestValid); Object.DestroyImmediate(digestInvalid); }