public IEnumerator EnableGameObjectBehavior()
        {
            // Given EnableGameObjectBehavior,
            TrainingSceneObject trainingSceneObject = TestingUtils.CreateSceneObject("TestObject");

            ICourse training1 = new LinearTrainingBuilder("Training")
                                .AddChapter(new LinearChapterBuilder("Chapter")
                                            .AddStep(new BasicCourseStepBuilder("Step")
                                                     .Enable("TestObject")))
                                .Build();

            // When we serialize and deserialize a training course with it
            ICourse training2 = Serializer.CourseFromByteArray(Serializer.CourseToByteArray(training1));

            EnableGameObjectBehavior behavior1 = training1.Data.FirstChapter.Data.FirstStep.Data.Behaviors.Data.Behaviors.First() as EnableGameObjectBehavior;
            EnableGameObjectBehavior behavior2 = training2.Data.FirstChapter.Data.FirstStep.Data.Behaviors.Data.Behaviors.First() as EnableGameObjectBehavior;

            // Then it's target training scene object is still the same.
            Assert.IsNotNull(behavior1);
            Assert.IsNotNull(behavior2);
            Assert.AreEqual(behavior1.Data.Target.Value, behavior2.Data.Target.Value);

            TestingUtils.DestroySceneObject(trainingSceneObject);

            return(null);
        }
Ejemplo n.º 2
0
        public IEnumerator FastForwardInactiveBehavior()
        {
            // Given an inactive training scene object and an EnableGameObjectBehavior,
            TrainingSceneObject toEnable = TestingUtils.CreateSceneObject("ToEnable");

            toEnable.GameObject.SetActive(false);

            EnableGameObjectBehavior behavior = new EnableGameObjectBehavior(toEnable);

            // When we mark it to fast-forward,
            behavior.LifeCycle.MarkToFastForward();

            // Then it doesn't autocomplete because it weren't activated yet.
            Assert.AreEqual(Stage.Inactive, behavior.LifeCycle.Stage);

            // Cleanup.
            TestingUtils.DestroySceneObject(toEnable);

            yield break;
        }
Ejemplo n.º 3
0
        public IEnumerator FastForwardInactiveBehaviorAndActivateIt()
        {
            // Given an inactive training scene object and a EnableGameObjectBehavior,
            TrainingSceneObject toEnable = TestingUtils.CreateSceneObject("ToEnable");

            toEnable.GameObject.SetActive(false);

            EnableGameObjectBehavior behavior = new EnableGameObjectBehavior(toEnable);

            // When we mark it to fast-forward and activate it,
            behavior.LifeCycle.MarkToFastForward();
            behavior.LifeCycle.Activate();

            // Then it should work without any differences because the behavior is done immediately anyways.
            Assert.AreEqual(Stage.Active, behavior.LifeCycle.Stage);
            Assert.IsTrue(toEnable.GameObject.activeSelf);

            // Cleanup.
            TestingUtils.DestroySceneObject(toEnable);

            yield break;
        }