osu/osu.Game.Rulesets.Osu.Tests/TestSceneSpinnerApplication.cs

52 lines
1.6 KiB
C#
Raw Normal View History

2020-11-06 14:56:02 +00:00
// 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.Timing;
using osu.Game.Beatmaps;
using osu.Game.Beatmaps.ControlPoints;
using osu.Game.Rulesets.Osu.Objects;
using osu.Game.Rulesets.Osu.Objects.Drawables;
using osu.Game.Tests.Visual;
using osuTK;
namespace osu.Game.Rulesets.Osu.Tests
{
public class TestSceneSpinnerApplication : OsuTestScene
{
[Test]
2020-11-14 19:12:46 +00:00
public void TestApplyNewSpinner()
2020-11-06 14:56:02 +00:00
{
DrawableSpinner dho = null;
AddStep("create spinner", () => Child = dho = new DrawableSpinner(prepareObject(new Spinner
{
Position = new Vector2(256, 192),
IndexInCurrentCombo = 0,
2020-11-14 19:12:46 +00:00
Duration = 500,
2020-11-06 14:56:02 +00:00
}))
{
Clock = new FramedClock(new StopwatchClock())
});
2020-11-14 19:12:46 +00:00
AddStep("rotate some", () => dho.RotationTracker.AddRotation(180));
AddAssert("rotation is set", () => dho.RotationTracker.RateAdjustedRotation == 180);
2020-11-06 14:56:02 +00:00
AddStep("apply new spinner", () => dho.Apply(prepareObject(new Spinner
{
Position = new Vector2(256, 192),
ComboIndex = 1,
Duration = 1000,
2020-11-10 11:16:52 +00:00
}), null));
2020-11-14 19:12:46 +00:00
AddAssert("rotation is reset", () => dho.RotationTracker.RateAdjustedRotation == 0);
2020-11-06 14:56:02 +00:00
}
private Spinner prepareObject(Spinner circle)
{
circle.ApplyDefaults(new ControlPointInfo(), new BeatmapDifficulty());
return circle;
}
}
}