public IEnumerator BuildingTouchTest() { // Given you have a touchable property and a builder for a training with Touch default step GameObject touchableGo = new GameObject("Touchable"); TrainingSceneObject touchable = touchableGo.AddComponent <TrainingSceneObject>(); touchableGo.AddComponent <DummyTouchableProperty>(); touchable.ChangeUniqueName("Touchable"); LinearTrainingBuilder builder = new LinearTrainingBuilder("TestTraining") .AddChapter(new LinearChapterBuilder("TestChapter") .AddStep(InteractionDefaultSteps.Touch("TestTouchStep", "Touchable"))); // When you build a training with it IStep step = builder.Build().Data.FirstChapter.Data.FirstStep; // Then it has a step with a TouchCOndition Assert.True(step != null); Assert.True(step.Data.Name == "TestTouchStep"); Assert.True(step.Data.Transitions.Data.Transitions.First().Data.Conditions.Count == 1); Assert.True(step.Data.Transitions.Data.Transitions.First().Data.Conditions.First() is TouchedCondition); Assert.True(ReferenceEquals((step.Data.Transitions.Data.Transitions.First().Data.Conditions.First() as TouchedCondition).Data.TouchableProperty.Value.SceneObject, touchable)); // Cleanup Object.DestroyImmediate(touchableGo); return(null); }
public IEnumerator BuildingSnapZonePutTest() { // Given a snap zone and snappable property and a builder for a training with a PutIntoSnapZone default step GameObject snapZoneGo = new GameObject("SnapZone"); TrainingSceneObject snapZone = snapZoneGo.AddComponent <TrainingSceneObject>(); snapZoneGo.AddComponent <DummySnapZoneProperty>(); snapZone.ChangeUniqueName("SnapZone"); GameObject putGo = new GameObject("Puttable"); TrainingSceneObject objectToPut = putGo.AddComponent <TrainingSceneObject>(); putGo.AddComponent <DummySnappableProperty>(); objectToPut.ChangeUniqueName("ToPut"); LinearTrainingBuilder builder = new LinearTrainingBuilder("TestTraining") .AddChapter(new LinearChapterBuilder("TestChapter") .AddStep(InteractionDefaultSteps.PutIntoSnapZone("TestSnapZonePutStep", "SnapZone", "ToPut"))); // When you build a training with it IStep step = builder.Build().Data.FirstChapter.Data.FirstStep; // Then it has a step with a SnappedCondition Assert.True(step != null); Assert.True(step.Data.Name == "TestSnapZonePutStep"); Assert.True(step.Data.Transitions.Data.Transitions.First().Data.Conditions.Count == 1); Assert.True(step.Data.Transitions.Data.Transitions.First().Data.Conditions.First() is SnappedCondition); Assert.True(ReferenceEquals((step.Data.Transitions.Data.Transitions.First().Data.Conditions.First() as SnappedCondition).Data.Target.Value.SceneObject, objectToPut)); // Cleanup Object.DestroyImmediate(snapZoneGo); Object.DestroyImmediate(putGo); return(null); }