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); }