public IEnumerator CompleteOnTargetedSnapZone() { // Setup object with mocked grabbed property and activate SnappablePropertyMock mockedProperty = CreateSnappablePropertyMock(); SnapZoneProperty snapZoneProperty = CreateSnapZoneProperty(); yield return(null); SnappedCondition condition = new SnappedCondition(mockedProperty, snapZoneProperty); condition.LifeCycle.Activate(); while (condition.LifeCycle.Stage != Stage.Active) { yield return(null); condition.Update(); } // Emit grabbed event mockedProperty.SetSnapZone(snapZoneProperty); mockedProperty.EmitSnapped(snapZoneProperty); while (condition.IsCompleted == false) { yield return(null); condition.Update(); } // Assert that condition is now completed Assert.IsTrue(condition.IsCompleted); }
public IEnumerator DontCompleteOnWrongSnapZone() { // Setup object with mocked grabbed property and activate SnappablePropertyMock mockedProperty = CreateSnappablePropertyMock(); SnapZoneProperty snapZoneProperty = CreateSnapZoneProperty(); SnapZoneProperty wrongSnapZoneProperty = CreateSnapZoneProperty(); yield return(null); SnappedCondition condition = new SnappedCondition(mockedProperty, snapZoneProperty); condition.LifeCycle.Activate(); while (condition.LifeCycle.Stage != Stage.Active) { yield return(null); condition.Update(); } // Emit grabbed event mockedProperty.SetSnapZone(wrongSnapZoneProperty); mockedProperty.EmitSnapped(wrongSnapZoneProperty); int frameCountEnd = Time.frameCount + 5; while (Time.frameCount <= frameCountEnd) { yield return(null); condition.Update(); } // Assert that condition is not completed Assert.IsFalse(condition.IsCompleted, "Condition should not be completed!"); }