Esempio n. 1
0
        public void AddToEnd()
        {
            UnityEventListenerMock becamePopulatedMock = new UnityEventListenerMock();
            UnityEventListenerMock elementAddedMock    = new UnityEventListenerMock();
            UnityEventListenerMock elementRemovedMock  = new UnityEventListenerMock();
            UnityEventListenerMock becameEmptyMock     = new UnityEventListenerMock();

            subject.BecamePopulated.AddListener(becamePopulatedMock.Listen);
            subject.ElementAdded.AddListener(elementAddedMock.Listen);
            subject.ElementRemoved.AddListener(elementRemovedMock.Listen);
            subject.BecameEmpty.AddListener(becameEmptyMock.Listen);
            GameObject elementOne = new GameObject();
            GameObject elementTwo = new GameObject();

            Assert.IsEmpty(subject.Elements);

            subject.AddToEnd(elementOne);

            Assert.AreEqual(1, subject.Elements.Count);
            Assert.IsTrue(becamePopulatedMock.Received);
            Assert.IsTrue(elementAddedMock.Received);
            Assert.IsFalse(elementRemovedMock.Received);
            Assert.IsFalse(becameEmptyMock.Received);

            becamePopulatedMock.Reset();
            elementAddedMock.Reset();
            elementRemovedMock.Reset();
            becameEmptyMock.Reset();

            subject.AddToEnd(elementTwo);
            Assert.AreEqual(2, subject.Elements.Count);
            Assert.AreEqual(elementTwo, subject.Elements[1]);

            Assert.IsFalse(becamePopulatedMock.Received);
            Assert.IsTrue(elementAddedMock.Received);
            Assert.IsFalse(elementRemovedMock.Received);
            Assert.IsFalse(becameEmptyMock.Received);

            Object.DestroyImmediate(elementOne);
            Object.DestroyImmediate(elementTwo);
        }
 /// <summary>
 /// Ignores all of the colliders on the given <see cref="InteractorFacade"/>.
 /// </summary>
 /// <param name="interactor">The interactor to ignore.</param>
 protected virtual void IgnoreInteractorCollision(InteractorFacade interactor)
 {
     ignoredGameObjectCollisions.AddToEnd(interactor.gameObject);
     interactor.Grabbed.AddListener(IgnoreInteractorGrabbedCollision);
     interactor.Ungrabbed.AddListener(ResumeInteractorUngrabbedCollision);
 }