Skip to content
This repository was archived by the owner on Nov 25, 2023. It is now read-only.

Commit 536ed26

Browse files
committed
Unit test VaryLayer
1 parent 227e734 commit 536ed26

File tree

1 file changed

+76
-24
lines changed

1 file changed

+76
-24
lines changed

src/InvvardDev.EZLayoutDisplay.Tests/ViewModel/DisplayLayoutViewModelTest.cs

Lines changed: 76 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Windows.Input;
24
using InvvardDev.EZLayoutDisplay.Desktop.Model;
35
using InvvardDev.EZLayoutDisplay.Desktop.Service.Interface;
46
using 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

Comments
 (0)