@ -1,19 +1,31 @@
using System.Collections.Generic ;
using System.Collections.Generic ;
using Xunit ;
namespace Avalonia.Input.UnitTests
{
public class KeyGestureTests
{
public static readonly IEnumerable < object [ ] > Sampl eData = new object [ ] [ ]
public static readonly IEnumerable < object [ ] > Pars eData = new object [ ] [ ]
{
new object [ ] { "Ctrl+A" , new KeyGesture ( Key . A , InputModifiers . Control ) } ,
new object [ ] { " \tShift\t+Alt +B" , new KeyGesture ( Key . B , InputModifiers . Shift | InputModifiers . Alt ) } ,
new object [ ] { "Control++" , new KeyGesture ( Key . OemPlus , InputModifiers . Control ) }
new object [ ] { "Ctrl+A" , new KeyGesture ( Key . A , KeyModifiers . Control ) } ,
new object [ ] { " \tShift\t+Alt +B" , new KeyGesture ( Key . B , KeyModifiers . Shift | KeyModifiers . Alt ) } ,
new object [ ] { "Control++" , new KeyGesture ( Key . OemPlus , KeyModifiers . Control ) } ,
new object [ ] { "Shift+⌘+A" , new KeyGesture ( Key . A , KeyModifiers . Meta | KeyModifiers . Shift ) } ,
new object [ ] { "Shift+Cmd+A" , new KeyGesture ( Key . A , KeyModifiers . Meta | KeyModifiers . Shift ) } ,
} ;
public static readonly IEnumerable < object [ ] > ToStringData = new object [ ] [ ]
{
new object [ ] { new KeyGesture ( Key . A ) , "A" } ,
new object [ ] { new KeyGesture ( Key . A , KeyModifiers . Control ) , "Ctrl+A" } ,
new object [ ] { new KeyGesture ( Key . A , KeyModifiers . Control | KeyModifiers . Shift ) , "Ctrl+Shift+A" } ,
new object [ ] { new KeyGesture ( Key . A , KeyModifiers . Alt | KeyModifiers . Shift ) , "Shift+Alt+A" } ,
new object [ ] { new KeyGesture ( Key . A , KeyModifiers . Control | KeyModifiers . Alt | KeyModifiers . Shift ) , "Ctrl+Shift+Alt+A" } ,
new object [ ] { new KeyGesture ( Key . A , KeyModifiers . Meta | KeyModifiers . Shift ) , "Shift+⌘+A" } ,
} ;
[Theory]
[MemberData(nameof(SampleData))]
[MemberData(nameof(Pars eData))]
public void Key_Gesture_Is_Able_To_Parse_Sample_Data ( string text , KeyGesture gesture )
{
Assert . Equal ( gesture , KeyGesture . Parse ( text ) ) ;
@ -32,5 +44,12 @@ namespace Avalonia.Input.UnitTests
Key = pressedKey
} ) ) ;
}
[Theory]
[MemberData(nameof(ToStringData))]
public void ToString_Produces_Correct_Results ( KeyGesture gesture , string expected )
{
Assert . Equal ( expected , gesture . ToString ( ) ) ;
}
}
}