2019-01-24 16:43:03 +08: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.
2018-11-12 18:41:06 +08:00
2020-04-23 11:05:34 +08:00
using System.Linq ;
using NUnit.Framework ;
using osu.Framework.Extensions.IEnumerableExtensions ;
using osu.Framework.Testing ;
2018-11-12 18:41:06 +08:00
using osu.Game.Rulesets.Edit ;
using osu.Game.Rulesets.Mania.Edit.Blueprints ;
using osu.Game.Rulesets.Mania.Objects ;
using osu.Game.Rulesets.Mania.Objects.Drawables ;
2020-04-23 11:05:34 +08:00
using osu.Game.Rulesets.Mania.UI ;
2018-11-12 18:41:06 +08:00
using osu.Game.Rulesets.Objects ;
using osu.Game.Rulesets.Objects.Drawables ;
2020-04-23 11:05:34 +08:00
using osu.Game.Rulesets.UI ;
using osu.Game.Rulesets.UI.Scrolling ;
using osu.Game.Tests.Visual ;
using osuTK ;
using osuTK.Input ;
2018-11-12 18:41:06 +08:00
2020-09-25 17:48:04 +08:00
namespace osu.Game.Rulesets.Mania.Tests.Editor
2018-11-12 18:41:06 +08:00
{
2019-05-15 03:37:25 +08:00
public class TestSceneNotePlacementBlueprint : ManiaPlacementBlueprintTestScene
2018-11-12 18:41:06 +08:00
{
2020-04-23 11:05:34 +08:00
[SetUp]
public void Setup ( ) = > Schedule ( ( ) = >
{
this . ChildrenOfType < HitObjectContainer > ( ) . ForEach ( c = > c . Clear ( ) ) ;
ResetPlacement ( ) ;
( ( ScrollingTestContainer ) HitObjectContainer ) . Direction = ScrollingDirection . Down ;
} ) ;
[Test]
public void TestPlaceBeforeCurrentTimeDownwards ( )
{
AddStep ( "move mouse before current time" , ( ) = > InputManager . MoveMouseTo ( this . ChildrenOfType < Column > ( ) . Single ( ) . ScreenSpaceDrawQuad . BottomLeft - new Vector2 ( 0 , 10 ) ) ) ;
AddStep ( "click" , ( ) = > InputManager . Click ( MouseButton . Left ) ) ;
AddAssert ( "note start time < 0" , ( ) = > getNote ( ) . StartTime < 0 ) ;
}
[Test]
public void TestPlaceAfterCurrentTimeDownwards ( )
{
AddStep ( "move mouse after current time" , ( ) = > InputManager . MoveMouseTo ( this . ChildrenOfType < Column > ( ) . Single ( ) ) ) ;
AddStep ( "click" , ( ) = > InputManager . Click ( MouseButton . Left ) ) ;
AddAssert ( "note start time > 0" , ( ) = > getNote ( ) . StartTime > 0 ) ;
}
private Note getNote ( ) = > this . ChildrenOfType < DrawableNote > ( ) . FirstOrDefault ( ) ? . HitObject ;
2018-11-12 18:41:06 +08:00
protected override DrawableHitObject CreateHitObject ( HitObject hitObject ) = > new DrawableNote ( ( Note ) hitObject ) ;
protected override PlacementBlueprint CreateBlueprint ( ) = > new NotePlacementBlueprint ( ) ;
}
}