public void ReceiveInactiveGameObject() { UnityEventListenerMock emittedMock = new UnityEventListenerMock(); subject.Emitted.AddListener(emittedMock.Listen); ActiveCollisionConsumer.EventData digest = new ActiveCollisionConsumer.EventData(); subject.gameObject.SetActive(false); Assert.IsFalse(emittedMock.Received); subject.Receive(digest); Assert.AreEqual(digest, subject.Payload); Assert.IsFalse(emittedMock.Received); }
public void CreateAndClear() { UnityEventListenerMock createdMock = new UnityEventListenerMock(); UnityEventListenerMock clearedMock = new UnityEventListenerMock(); subject.Created.AddListener(createdMock.Listen); subject.Destroyed.AddListener(clearedMock.Listen); GameObject publisherObject = new GameObject(); ActiveCollisionPublisher publisher = publisherObject.AddComponent <ActiveCollisionPublisher>(); publisher.sourceContainer = publisherObject; publisherObject.transform.position = Vector3.one; GameObject collisionNotifierContainer; CollisionNotifier.EventData collisionNotifierEventData = CollisionNotifierHelper.GetEventData(out collisionNotifierContainer); collisionNotifierContainer.transform.position = Vector3.one * 2f; collisionNotifierContainer.transform.rotation = Quaternion.Euler(Vector3.forward * 90f); ActiveCollisionConsumer.EventData eventData = new ActiveCollisionConsumer.EventData(); eventData.Set(publisher, collisionNotifierEventData); Assert.IsFalse(createdMock.Received); Assert.IsFalse(clearedMock.Received); Assert.IsNull(subject.Container); subject.Create(eventData); Assert.IsTrue(createdMock.Received); Assert.IsFalse(clearedMock.Received); Assert.IsNotNull(subject.Container); Assert.AreEqual(publisherObject.transform.position.ToString(), subject.Container.transform.position.ToString()); Assert.AreEqual(publisherObject.transform.rotation.ToString(), subject.Container.transform.rotation.ToString()); Assert.AreEqual(Vector3.one, subject.Container.transform.localScale); createdMock.Reset(); clearedMock.Reset(); subject.Destroy(); Assert.IsFalse(createdMock.Received); Assert.IsTrue(clearedMock.Received); Assert.IsNull(subject.Container); Object.DestroyImmediate(publisherObject); Object.DestroyImmediate(collisionNotifierContainer); }
public void ReceiveInactiveComponent() { UnityEventListenerMock emittedMock = new UnityEventListenerMock(); subject.Emitted.AddListener(emittedMock.Listen); ActiveCollisionConsumer.EventData digest = new ActiveCollisionConsumer.EventData(); subject.enabled = false; Assert.IsNull(subject.Payload); Assert.IsFalse(emittedMock.Received); subject.Receive(digest); Assert.IsNull(subject.Payload); Assert.IsFalse(emittedMock.Received); }
/// <summary> /// Extracts the source container from the given publisher contained within the <see cref="ActiveCollisionConsumer.EventData"/>. /// </summary> /// <param name="eventData">The event data to extract the source container from.</param> public virtual void DoExtract(ActiveCollisionConsumer.EventData eventData) { Extract(eventData?.Publisher); }
/// <summary> /// Extracts the source container from the given publisher contained within the <see cref="ActiveCollisionConsumer.EventData"/>. /// </summary> /// <param name="eventData">The event data to extract the source container from.</param> /// <returns>The source container within the publisher.</returns> public virtual GameObject Extract(ActiveCollisionConsumer.EventData eventData) { return(Extract(eventData?.Publisher)); }
public void SetOnlyOnce() { UnityEventListenerMock createdMock = new UnityEventListenerMock(); UnityEventListenerMock clearedMock = new UnityEventListenerMock(); subject.PointSet.AddListener(createdMock.Listen); subject.PointUnset.AddListener(clearedMock.Listen); GameObject publisherObject = new GameObject(); ActiveCollisionPublisher.PayloadData publisher = new ActiveCollisionPublisher.PayloadData(); publisher.SourceContainer = publisherObject; publisherObject.transform.position = Vector3.one; CollisionNotifier.EventData collisionNotifierEventData = CollisionNotifierHelper.GetEventData(out GameObject collisionNotifierContainer); collisionNotifierContainer.transform.position = Vector3.one * 2f; collisionNotifierContainer.transform.rotation = Quaternion.Euler(Vector3.forward * 90f); ActiveCollisionConsumer.EventData eventData = new ActiveCollisionConsumer.EventData(); eventData.Set(publisher, collisionNotifierEventData); GameObject publisherObjectAlt = new GameObject(); ActiveCollisionPublisher.PayloadData publisherAlt = new ActiveCollisionPublisher.PayloadData(); publisherAlt.SourceContainer = publisherObjectAlt; publisherObjectAlt.transform.position = Vector3.one; CollisionNotifier.EventData collisionNotifierEventDataAlt = CollisionNotifierHelper.GetEventData(out GameObject collisionNotifierContainerAlt); collisionNotifierContainerAlt.transform.position = Vector3.one * 4f; collisionNotifierContainerAlt.transform.rotation = Quaternion.Euler(Vector3.up * 90f); ActiveCollisionConsumer.EventData eventDataAlt = new ActiveCollisionConsumer.EventData(); eventDataAlt.Set(publisherAlt, collisionNotifierEventDataAlt); Assert.IsFalse(createdMock.Received); Assert.IsFalse(clearedMock.Received); Assert.IsNull(subject.Container); subject.Set(eventData); Assert.IsTrue(createdMock.Received); Assert.IsFalse(clearedMock.Received); Assert.IsNotNull(subject.Container); Assert.AreEqual(publisherObject.transform.position.ToString(), subject.Container.transform.position.ToString()); Assert.AreEqual(publisherObject.transform.rotation.ToString(), subject.Container.transform.rotation.ToString()); Assert.AreEqual(Vector3.one, subject.Container.transform.localScale); createdMock.Reset(); clearedMock.Reset(); subject.Set(eventDataAlt); Assert.IsFalse(createdMock.Received); Assert.IsFalse(clearedMock.Received); Assert.IsNotNull(subject.Container); Assert.AreEqual(publisherObject.transform.position.ToString(), subject.Container.transform.position.ToString()); Assert.AreEqual(publisherObject.transform.rotation.ToString(), subject.Container.transform.rotation.ToString()); Assert.AreEqual(Vector3.one, subject.Container.transform.localScale); Object.DestroyImmediate(publisherObject); Object.DestroyImmediate(publisherObjectAlt); Object.DestroyImmediate(collisionNotifierContainer); Object.DestroyImmediate(collisionNotifierContainerAlt); }