public void Consume() { UnityEventListenerMock consumedMock = new UnityEventListenerMock(); UnityEventListenerMock clearedMock = new UnityEventListenerMock(); subject.Consumed.AddListener(consumedMock.Listen); subject.Cleared.AddListener(clearedMock.Listen); GameObject publisherObject = new GameObject(); ActiveCollisionPublisher.PayloadData publisher = new ActiveCollisionPublisher.PayloadData(); publisher.SourceContainer = publisherObject; Assert.IsFalse(consumedMock.Received); Assert.IsFalse(clearedMock.Received); Assert.IsNull(subject.PublisherSource); subject.Consume(publisher, null); Assert.IsTrue(consumedMock.Received); Assert.IsFalse(clearedMock.Received); Assert.AreEqual(publisher, subject.PublisherSource); Object.DestroyImmediate(publisherObject); }
public void ExtractFromConsumerEvent() { UnityEventListenerMock extractedMock = new UnityEventListenerMock(); subject.Extracted.AddListener(extractedMock.Listen); GameObject publisherSource = new GameObject(); GameObject publisherChild = new GameObject(); publisherChild.transform.SetParent(publisherSource.transform); ActiveCollisionPublisher.PayloadData publisher = new ActiveCollisionPublisher.PayloadData(); publisher.SourceContainer = publisherSource; ActiveCollisionConsumer.EventData eventData = new ActiveCollisionConsumer.EventData(); eventData.Set(publisher, null); Assert.IsNull(subject.Result); Assert.IsFalse(extractedMock.Received); subject.Extract(eventData); Assert.AreEqual(publisherSource, subject.Result); Assert.IsTrue(extractedMock.Received); Object.DestroyImmediate(publisherSource); Object.DestroyImmediate(publisherChild); }
public void ExtractInactiveGameObject() { UnityEventListenerMock extractedMock = new UnityEventListenerMock(); subject.Extracted.AddListener(extractedMock.Listen); GameObject publisherSource = new GameObject(); GameObject publisherChild = new GameObject(); publisherChild.transform.SetParent(publisherSource.transform); ActiveCollisionPublisher.PayloadData publisher = new ActiveCollisionPublisher.PayloadData(); publisher.SourceContainer = publisherSource; Assert.IsNull(subject.Result); Assert.IsFalse(extractedMock.Received); subject.gameObject.SetActive(false); subject.Extract(publisher); Assert.IsNull(subject.Result); Assert.IsFalse(extractedMock.Received); Object.DestroyImmediate(publisherSource); Object.DestroyImmediate(publisherChild); }
public override void Consume(ActiveCollisionPublisher.PayloadData publisher, CollisionNotifier.EventData currentCollision) { if (isActiveAndEnabled) { received = true; } }
public override bool Consume(ActiveCollisionPublisher.PayloadData publisher, CollisionNotifier.EventData currentCollision) { received = false; if (isActiveAndEnabled) { received = true; } return(received); }
/// <summary> /// Extracts the source container from the given publisher payload data. /// </summary> /// <param name="publisher">The publisher payload data to extract from.</param> /// <returns>The source container within the publisher.</returns> public virtual GameObject Extract(ActiveCollisionPublisher.PayloadData publisher) { if (publisher == null || publisher.SourceContainer == null) { Result = null; return(null); } Result = publisher.SourceContainer; return(base.Extract()); }
public void Receive() { UnityEventListenerMock emittedMock = new UnityEventListenerMock(); subject.Emitted.AddListener(emittedMock.Listen); ActiveCollisionPublisher.PayloadData digest = new ActiveCollisionPublisher.PayloadData(); Assert.IsFalse(emittedMock.Received); subject.Receive(digest); Assert.AreEqual(digest, subject.Payload); Assert.IsTrue(emittedMock.Received); }
/// <summary> /// Extracts the source container from the given publisher payload data. /// </summary> /// <param name="publisher">The publisher payload data to extract from.</param> /// <returns>The source container within the publisher.</returns> public virtual GameObject Extract(ActiveCollisionPublisher.PayloadData publisher) { if (!isActiveAndEnabled || publisher == null || publisher.sourceContainer == null) { SourceContainer = null; return(null); } SourceContainer = publisher.sourceContainer; Extracted?.Invoke(SourceContainer); return(SourceContainer); }
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.PayloadData publisher = new ActiveCollisionPublisher.PayloadData(); publisher.sourceContainer = publisherObject; publisherObject.transform.position = Vector3.one; GameObject collisionNotifierContainer = new GameObject();; 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 ExtractInvalidPublisher() { UnityEventListenerMock extractedMock = new UnityEventListenerMock(); subject.Extracted.AddListener(extractedMock.Listen); ActiveCollisionPublisher.PayloadData publisher = new ActiveCollisionPublisher.PayloadData(); Assert.IsNull(subject.Result); Assert.IsFalse(extractedMock.Received); subject.Extract(publisher); Assert.IsNull(subject.Result); Assert.IsFalse(extractedMock.Received); }
public void ReceiveInactiveComponent() { UnityEventListenerMock emittedMock = new UnityEventListenerMock(); subject.Emitted.AddListener(emittedMock.Listen); ActiveCollisionPublisher.PayloadData digest = new ActiveCollisionPublisher.PayloadData(); subject.enabled = false; Assert.IsNull(subject.Payload); Assert.IsFalse(emittedMock.Received); subject.Receive(digest); Assert.IsNull(subject.Payload); Assert.IsFalse(emittedMock.Received); }
public IEnumerator ConsumeExclusion() { UnityEventListenerMock consumedMock = new UnityEventListenerMock(); UnityEventListenerMock clearedMock = new UnityEventListenerMock(); subject.Consumed.AddListener(consumedMock.Listen); subject.Cleared.AddListener(clearedMock.Listen); GameObject publisherObject = new GameObject(); ActiveCollisionPublisher.PayloadData publisher = new ActiveCollisionPublisher.PayloadData(); publisher.PublisherContainer = publisherObject; publisherObject.AddComponent <RuleStub>(); NegationRule negationRule = containingObject.AddComponent <NegationRule>(); AnyComponentTypeRule anyComponentTypeRule = containingObject.AddComponent <AnyComponentTypeRule>(); SerializableTypeComponentObservableList rules = containingObject.AddComponent <SerializableTypeComponentObservableList>(); yield return(null); anyComponentTypeRule.ComponentTypes = rules; rules.Add(typeof(RuleStub)); negationRule.Rule = new RuleContainer { Interface = anyComponentTypeRule }; subject.PublisherValidity = new RuleContainer { Interface = negationRule }; Assert.IsFalse(consumedMock.Received); Assert.IsFalse(clearedMock.Received); Assert.IsNull(subject.PublisherSource); subject.Consume(publisher, null); Assert.IsFalse(consumedMock.Received); Assert.IsFalse(clearedMock.Received); Assert.IsNull(subject.PublisherSource); Object.DestroyImmediate(publisherObject); }
protected virtual ActiveCollisionConsumer.EventData ConsumerDataFromInteractor(InteractorFacade interactor) { ActiveCollisionPublisher.PayloadData interactorPublisher = new ActiveCollisionPublisher.PayloadData(); interactorPublisher.sourceContainer = interactor?.grabInteractorSetup?.attachPoint; return(new ActiveCollisionConsumer.EventData().Set(interactorPublisher, null)); }
/// <summary> /// Extracts the source container from the given publisher payload data. /// </summary> /// <param name="publisher">The publisher payload data to extract from.</param> public virtual void DoExtract(ActiveCollisionPublisher.PayloadData publisher) { Extract(publisher); }
public override void Register(ActiveCollisionConsumer consumer, ActiveCollisionPublisher.PayloadData payload) { ConsumerCount++; }