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));
        }
Exemple #7
0
        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);
        }