Example #1
0
        public void ParentsCloneToParent()
        {
            UnityEventValueListenerMock <GameObject> clonedMock = new UnityEventValueListenerMock <GameObject>();

            subject.Cloned.AddListener(clonedMock.Listen);
            GameObject source   = new GameObject();
            GameObject expected = new GameObject();

            subject.Parent = expected;

            subject.Source = source;
            GameObject actual = subject.Clone();

            Assert.AreEqual(expected, actual.transform.parent.gameObject);

            clonedMock.Reset();
            Object.DestroyImmediate(actual);

            subject.Source = null;
            actual         = subject.Clone(source);
            Assert.AreEqual(expected, actual.transform.parent.gameObject);

            Object.DestroyImmediate(actual);
            Object.DestroyImmediate(source);
            Object.DestroyImmediate(expected);
        }
Example #2
0
        public void CreatesSourceClone()
        {
            UnityEventValueListenerMock <GameObject> clonedMock = new UnityEventValueListenerMock <GameObject>();

            subject.Cloned.AddListener(clonedMock.Listen);
            GameObject expected = new GameObject();

            subject.Source = expected;
            GameObject actual = subject.Clone();

            Assert.IsNotNull(actual);
            Assert.AreNotEqual(expected, actual);
            Assert.IsTrue(clonedMock.Received);
            Assert.AreEqual(actual, clonedMock.Value);

            clonedMock.Reset();
            Object.DestroyImmediate(actual);

            subject.Source = null;
            actual         = subject.Clone(expected);

            Assert.IsNotNull(actual);
            Assert.AreNotEqual(expected, actual);
            Assert.IsTrue(clonedMock.Received);
            Assert.AreEqual(actual, clonedMock.Value);

            Object.DestroyImmediate(actual);
            Object.DestroyImmediate(expected);
        }
Example #3
0
        public void DoesNotChangeSource()
        {
            UnityEventValueListenerMock <GameObject> clonedMock = new UnityEventValueListenerMock <GameObject>();

            subject.Cloned.AddListener(clonedMock.Listen);
            GameObject gameObject = new GameObject();

            subject.Source = gameObject;
            GameObject actual = subject.Clone();

            Assert.AreEqual(gameObject, subject.Source);

            clonedMock.Reset();
            Object.DestroyImmediate(actual);

            subject.Source = null;
            actual         = subject.Clone(gameObject);
            Assert.AreEqual(null, subject.Source);

            Object.DestroyImmediate(actual);
            Object.DestroyImmediate(gameObject);
        }
Example #4
0
        public void DoesNotCloneNullSource()
        {
            UnityEventValueListenerMock <GameObject> clonedMock = new UnityEventValueListenerMock <GameObject>();

            subject.Cloned.AddListener(clonedMock.Listen);

            subject.Source = null;
            GameObject actual = subject.Clone();

            Assert.IsNull(actual);
            Assert.IsFalse(clonedMock.Received);
            Assert.IsNull(clonedMock.Value);

            clonedMock.Reset();

            actual = subject.Clone(null);

            Assert.IsNull(actual);
            Assert.IsFalse(clonedMock.Received);
            Assert.IsNull(clonedMock.Value);

            Object.DestroyImmediate(actual);
        }
        public void Extract()
        {
            UnityEventValueListenerMock <Vector3> differenceExtractedMock = new UnityEventValueListenerMock <Vector3>();

            subject.DifferenceExtracted.AddListener(differenceExtractedMock.Listen);
            UnityEventValueListenerMock <float> distanceExtractedMock = new UnityEventValueListenerMock <float>();

            subject.DistanceExtracted.AddListener(distanceExtractedMock.Listen);

            ObjectDistanceComparator.EventData eventData = new ObjectDistanceComparator.EventData
            {
                CurrentDifference = new Vector3(2f, 5f, 10f),
                CurrentDistance   = 42.123f
            };

            Assert.IsFalse(differenceExtractedMock.Received);
            Assert.IsFalse(distanceExtractedMock.Received);

            subject.Extract(eventData);

            Assert.AreEqual(eventData.CurrentDifference, differenceExtractedMock.Value);
            Assert.AreEqual(eventData.CurrentDistance, distanceExtractedMock.Value);
        }
Example #6
0
        public IEnumerator TimerEmitTimeUnchangedAfterCancelled()
        {
            UnityEventListenerMock timerCompleteMock  = new UnityEventListenerMock();
            UnityEventListenerMock timerCancelledMock = new UnityEventListenerMock();
            UnityEventValueListenerMock <float> timerElapsedTimeMock   = new UnityEventValueListenerMock <float>();
            UnityEventValueListenerMock <float> timerRemainingTimeMock = new UnityEventValueListenerMock <float>();

            subject.Completed.AddListener(timerCompleteMock.Listen);
            subject.Cancelled.AddListener(timerCancelledMock.Listen);
            subject.ElapsedTimeEmitted.AddListener(timerElapsedTimeMock.Listen);
            subject.RemainingTimeEmitted.AddListener(timerRemainingTimeMock.Listen);

            float beginTime = Time.time;
            float startTime = 0.5f;

            subject.StartTime = startTime;

            Assert.IsFalse(timerElapsedTimeMock.Received);
            Assert.IsFalse(timerRemainingTimeMock.Received);

            subject.EmitElapsedTime();
            Assert.IsTrue(timerElapsedTimeMock.Received);
            Assert.AreApproximatelyEqual(timerElapsedTimeMock.Value, 0, Tolerance);

            subject.EmitRemainingTime();
            Assert.IsTrue(timerRemainingTimeMock.Received);
            Assert.AreApproximatelyEqual(timerRemainingTimeMock.Value, 0.5f, Tolerance);

            timerElapsedTimeMock.Reset();
            timerRemainingTimeMock.Reset();

            subject.Begin();

            Assert.IsFalse(timerCompleteMock.Received);
            Assert.IsFalse(timerCancelledMock.Received);

            subject.EmitElapsedTime();
            Assert.IsTrue(timerElapsedTimeMock.Received);
            Assert.AreApproximatelyEqual(timerElapsedTimeMock.Value, 0, Tolerance);

            subject.EmitRemainingTime();
            Assert.IsTrue(timerRemainingTimeMock.Received);
            Assert.AreApproximatelyEqual(timerRemainingTimeMock.Value, 0.5f, Tolerance);

            timerElapsedTimeMock.Reset();
            timerRemainingTimeMock.Reset();

            yield return(new WaitForSeconds(0.2f));

            float elapsedTime   = Time.time - beginTime;
            float remainingTime = startTime + (beginTime - Time.time);

            subject.EmitElapsedTime();
            Assert.IsTrue(timerElapsedTimeMock.Received);
            Assert.AreEqual(timerElapsedTimeMock.Value, elapsedTime);

            subject.EmitRemainingTime();
            Assert.IsTrue(timerRemainingTimeMock.Received);
            Assert.AreEqual(timerRemainingTimeMock.Value, remainingTime);

            timerElapsedTimeMock.Reset();
            timerRemainingTimeMock.Reset();

            subject.Cancel();
            Assert.IsFalse(timerCompleteMock.Received);
            Assert.IsTrue(timerCancelledMock.Received);

            subject.EmitElapsedTime();
            Assert.IsTrue(timerElapsedTimeMock.Received);
            Assert.AreEqual(timerElapsedTimeMock.Value, elapsedTime);

            subject.EmitRemainingTime();
            Assert.IsTrue(timerRemainingTimeMock.Received);
            Assert.AreEqual(timerRemainingTimeMock.Value, remainingTime);

            timerElapsedTimeMock.Reset();
            timerRemainingTimeMock.Reset();

            yield return(new WaitForSeconds(0.5f));

            subject.EmitElapsedTime();
            Assert.IsTrue(timerElapsedTimeMock.Received);
            Assert.AreEqual(timerElapsedTimeMock.Value, elapsedTime);

            subject.EmitRemainingTime();
            Assert.IsTrue(timerRemainingTimeMock.Received);
            Assert.AreEqual(timerRemainingTimeMock.Value, remainingTime);
        }