1- using System . Collections . Generic ;
1+ using System ;
2+ using System . Collections . Generic ;
3+ using System . Windows . Input ;
24using InvvardDev . EZLayoutDisplay . Desktop . Model ;
35using InvvardDev . EZLayoutDisplay . Desktop . Service . Interface ;
46using InvvardDev . EZLayoutDisplay . Desktop . View ;
@@ -10,18 +12,31 @@ namespace InvvardDev.EZLayoutDisplay.Tests.ViewModel
1012{
1113 public class DisplayLayoutViewModelTest
1214 {
15+ private static EZLayout CreateLayers ( int layerNumber )
16+ {
17+ var keyboardLayout = new EZLayout ( ) ;
18+
19+ for ( int i = 0 ; i < layerNumber ; i ++ )
20+ {
21+ keyboardLayout . EZLayers . Add ( new EZLayer {
22+ Index = i ,
23+ EZKeys = new List < EZKey > {
24+ new EZKey ( )
25+ }
26+ } ) ;
27+ }
28+
29+ return keyboardLayout ;
30+ }
31+
1332 [ Fact ]
1433 public void DisplayLayoutViewModel_Constructor ( )
1534 {
1635 //Arrange
1736 var mockWindowService = new Mock < IWindowService > ( ) ;
1837 var mockLayoutService = new Mock < ILayoutService > ( ) ;
1938 var mockSettingsService = new Mock < ISettingsService > ( ) ;
20- mockSettingsService . SetupProperty ( s => s . EZLayout ,
21- new EZLayout
22- {
23- EZLayers = new List < EZLayer > { new EZLayer { EZKeys = new List < EZKey > { new EZKey { Label = new KeyLabel ( "A" ) , Modifier = new KeyLabel ( "a" ) } } } }
24- } ) ;
39+ mockSettingsService . SetupProperty ( s => s . EZLayout , CreateLayers ( 1 ) ) ;
2540
2641 //Act
2742 var displayLayoutViewModel = new DisplayLayoutViewModel ( mockWindowService . Object , mockLayoutService . Object , mockSettingsService . Object ) ;
@@ -56,8 +71,8 @@ public void LostFocusCommand_Execute()
5671 }
5772
5873 [ Theory ]
59- [ InlineData ( true ) ]
60- [ InlineData ( false ) ]
74+ [ InlineData ( true ) ]
75+ [ InlineData ( false ) ]
6176 public void LostFocusCommand_CanExecute ( bool isPinned )
6277 {
6378 //Arrange
@@ -82,7 +97,7 @@ public void LostFocusCommand_CanExecute(bool isPinned)
8297 }
8398 }
8499
85- [ Fact ]
100+ [ Fact ]
86101 public void HideWindowCommand_Execute ( )
87102 {
88103 //Arrange
@@ -99,7 +114,7 @@ public void HideWindowCommand_Execute()
99114 mockWindowService . Verify ( w => w . CloseWindow < DisplayLayoutWindow > ( ) , Times . Once ) ;
100115 }
101116
102- [ Theory ]
117+ [ Theory ]
103118 [ InlineData ( 0 , 1 , true ) ]
104119 [ InlineData ( 1 , 2 , false ) ]
105120 [ InlineData ( 76 , 2 , false ) ]
@@ -119,7 +134,10 @@ public void LoadCompleteLayout(int numberOfKey, int numberOfLayer, bool noLayout
119134
120135 for ( int i = 0 ; i < numberOfLayer ; i ++ )
121136 {
122- keyboardLayout . EZLayers . Add ( new EZLayer { Index = i , EZKeys = new List < EZKey > ( ezKeys ) } ) ;
137+ keyboardLayout . EZLayers . Add ( new EZLayer {
138+ Index = i ,
139+ EZKeys = new List < EZKey > ( ezKeys )
140+ } ) ;
123141 }
124142
125143 var mockWindowService = new Mock < IWindowService > ( ) ;
@@ -143,13 +161,49 @@ [ InlineData(1, true) ]
143161 public void NextLayerCommand_CanExecute ( int layerNumber , bool expectedCanExecute )
144162 {
145163 //Arrange
146- var keyboardLayout = new EZLayout ( ) ;
164+ var keyboardLayout = CreateLayers ( layerNumber ) ;
147165
148- for ( int i = 0 ; i < layerNumber ; i ++ )
166+ var layoutTemplate = new List < KeyTemplate > ( ) ;
167+
168+ for ( int i = 0 ; i < 1 ; i ++ )
149169 {
150- keyboardLayout . EZLayers . Add ( new EZLayer { Index = i , EZKeys = new List < EZKey > { new EZKey ( ) } } ) ;
170+ layoutTemplate . Add ( new KeyTemplate ( i , i , 54 , 81 ) ) ;
151171 }
152172
173+ var mockLayoutService = new Mock < ILayoutService > ( ) ;
174+ mockLayoutService . Setup ( l => l . GetLayoutTemplate ( ) ) . ReturnsAsync ( layoutTemplate ) ;
175+ var mockWindowService = new Mock < IWindowService > ( ) ;
176+ var mockSettingsService = new Mock < ISettingsService > ( ) ;
177+ mockSettingsService . SetupProperty ( s => s . EZLayout , keyboardLayout ) ;
178+
179+ //Act
180+ var displayLayoutViewModel = new DisplayLayoutViewModel ( mockWindowService . Object , mockLayoutService . Object , mockSettingsService . Object ) ;
181+
182+ //Assert
183+ Assert . Equal ( expectedCanExecute , displayLayoutViewModel . NextLayerCommand . CanExecute ( null ) ) ;
184+ }
185+
186+ [ WpfTheory ]
187+ [ InlineData ( 0 , 0 , 120 ) ]
188+ [ InlineData ( 0 , 0 , - 120 ) ]
189+ [ InlineData ( 1 , 0 , 120 ) ]
190+ [ InlineData ( 1 , 0 , - 120 ) ]
191+ [ InlineData ( 2 , 1 , - 120 ) ]
192+ [ InlineData ( 2 , 1 , 120 ) ]
193+ [ InlineData ( 2 , 0 , 120 , - 120 ) ]
194+ [ InlineData ( 2 , 0 , 120 , 120 ) ]
195+ [ InlineData ( 2 , 1 , 120 , 120 , - 120 ) ]
196+ [ InlineData ( 3 , 2 , 120 ) ]
197+ [ InlineData ( 3 , 1 , - 120 ) ]
198+ [ InlineData ( 3 , 2 , - 120 , - 120 ) ]
199+ [ InlineData ( 3 , 1 , 120 , 120 ) ]
200+ [ InlineData ( 3 , 0 , - 120 , - 120 , - 120 ) ]
201+ [ InlineData ( 3 , 0 , 120 , 120 , 120 ) ]
202+ public void ScrollLayerCommand_Execute ( int layerNumber , int expectedCurrentLayerIndex , params int [ ] scrollingValues )
203+ {
204+ //Arrange
205+ var keyboardLayout = CreateLayers ( layerNumber ) ;
206+
153207 var layoutTemplate = new List < KeyTemplate > ( ) ;
154208
155209 for ( int i = 0 ; i < 1 ; i ++ )
@@ -166,8 +220,13 @@ public void NextLayerCommand_CanExecute(int layerNumber, bool expectedCanExecute
166220 //Act
167221 var displayLayoutViewModel = new DisplayLayoutViewModel ( mockWindowService . Object , mockLayoutService . Object , mockSettingsService . Object ) ;
168222
223+ foreach ( var scrollingValue in scrollingValues )
224+ {
225+ displayLayoutViewModel . ScrollLayerCommand . Execute ( new MouseWheelEventArgs ( Mouse . PrimaryDevice , 0 , scrollingValue ) ) ;
226+ }
227+
169228 //Assert
170- Assert . Equal ( expectedCanExecute , displayLayoutViewModel . NextLayerCommand . CanExecute ( null ) ) ;
229+ Assert . Equal ( expectedCurrentLayerIndex , displayLayoutViewModel . CurrentLayerIndex ) ;
171230 }
172231
173232 [ Theory ]
@@ -184,13 +243,7 @@ [ InlineData(3, 3, 0) ]
184243 public void NextLayerCommand_Execute ( int layerNumber , int nextLayerHit , int expectedCurrentLayerIndex )
185244 {
186245 //Arrange
187- var keyboardLayout = new EZLayout ( ) ;
188-
189- for ( int i = 0 ; i < layerNumber ; i ++ )
190- {
191- keyboardLayout . EZLayers . Add ( new EZLayer { Index = i , EZKeys = new List < EZKey > { new EZKey ( ) } } ) ;
192- }
193-
246+ var keyboardLayout = CreateLayers ( layerNumber ) ;
194247 var layoutTemplate = new List < KeyTemplate > ( ) ;
195248
196249 for ( int i = 0 ; i < 1 ; i ++ )
@@ -223,8 +276,7 @@ public void NoLayoutAvailable()
223276 var mockLayoutService = new Mock < ILayoutService > ( ) ;
224277 var mockWindowService = new Mock < IWindowService > ( ) ;
225278 var mockSettingsService = new Mock < ISettingsService > ( ) ;
226- mockSettingsService . SetupProperty ( s => s . EZLayout ,
227- new EZLayout { EZLayers = new List < EZLayer > ( ) } ) ;
279+ mockSettingsService . SetupProperty ( s => s . EZLayout , CreateLayers ( 0 ) ) ;
228280
229281 // Act
230282 var displayLayoutViewModel = new DisplayLayoutViewModel ( mockWindowService . Object , mockLayoutService . Object , mockSettingsService . Object ) ;
0 commit comments