mirror of
https://github.com/SK-la/osu-framework.git
synced 2026-03-15 03:20:30 +00:00
93 lines
2.8 KiB
C#
93 lines
2.8 KiB
C#
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
// See the LICENCE file in the repository root for full licence text.
|
|
|
|
using NUnit.Framework;
|
|
using osu.Framework.Graphics;
|
|
using osu.Framework.Graphics.Containers;
|
|
using osu.Framework.Testing;
|
|
using osu.Framework.Tests.Visual;
|
|
|
|
namespace osu.Framework.Tests.Transforms
|
|
{
|
|
[HeadlessTest]
|
|
public partial class TestSceneTransformEventBindings : FrameworkTestScene
|
|
{
|
|
[Test]
|
|
public void TestOnCompleteBinding()
|
|
{
|
|
Container container;
|
|
int completedFired = 0;
|
|
|
|
AddStep("setup", () =>
|
|
{
|
|
Child = container = new Container();
|
|
|
|
completedFired = 0;
|
|
container.FadeIn(500).Then().FadeOut(500).OnComplete(_ => completedFired++);
|
|
});
|
|
|
|
AddAssert("not immediately fired", () => completedFired == 0);
|
|
AddUntilStep("wait for single fire", () => completedFired == 1);
|
|
}
|
|
|
|
[Test]
|
|
public void TestOnCompleteBindingImmediateExecution()
|
|
{
|
|
Container container;
|
|
int completedFired = 0;
|
|
|
|
AddStep("setup", () =>
|
|
{
|
|
Child = container = new Container();
|
|
|
|
completedFired = 0;
|
|
container.FadeIn(500).Then().FadeOut().OnComplete(_ => { completedFired++; });
|
|
});
|
|
|
|
AddAssert("not immediately fired", () => completedFired == 0);
|
|
AddUntilStep("wait for single fire", () => completedFired == 1);
|
|
}
|
|
|
|
[Test]
|
|
public void TestOnCompleteBindingInterrupted()
|
|
{
|
|
Container container;
|
|
int completedFired = 0;
|
|
int abortFired = 0;
|
|
|
|
AddStep("setup", () =>
|
|
{
|
|
Child = container = new Container();
|
|
|
|
completedFired = 0;
|
|
abortFired = 0;
|
|
|
|
container.FadeIn(500).Then().FadeOut(500).OnAbort(_ => abortFired++);
|
|
container.FadeIn(500).OnComplete(_ => completedFired++);
|
|
});
|
|
|
|
AddAssert("not immediately fired", () => completedFired == 0);
|
|
AddAssert("abort fired", () => abortFired == 1);
|
|
AddUntilStep("wait for single fire", () => completedFired == 1);
|
|
}
|
|
|
|
[Test]
|
|
public void TestOnCompleteBindingFinishTransforms()
|
|
{
|
|
Container container;
|
|
int completedFired = 0;
|
|
|
|
AddStep("setup", () =>
|
|
{
|
|
Child = container = new Container();
|
|
|
|
completedFired = 0;
|
|
container.FadeIn(500).Then().FadeOut(500).OnComplete(_ => completedFired++);
|
|
container.FinishTransforms();
|
|
});
|
|
|
|
AddAssert("immediately fired", () => completedFired == 1);
|
|
}
|
|
}
|
|
}
|