mirror of
https://github.com/jie65535/ChineseChess.git
synced 2024-07-27 18:55:00 +08:00
67 lines
2.6 KiB
C#
67 lines
2.6 KiB
C#
using System;
|
|
|
|
using ChineseChess.GUI.Contracts.Services;
|
|
using ChineseChess.GUI.Models;
|
|
using ChineseChess.GUI.ViewModels;
|
|
|
|
using Microsoft.Extensions.Options;
|
|
|
|
using Moq;
|
|
|
|
using Xunit;
|
|
|
|
namespace ChineseChess.GUI.Tests.XUnit
|
|
{
|
|
public class SettingsViewModelTests
|
|
{
|
|
public SettingsViewModelTests()
|
|
{
|
|
}
|
|
|
|
[Fact]
|
|
public void TestSettingsViewModel_SetCurrentTheme()
|
|
{
|
|
var mockThemeSelectorService = new Mock<IThemeSelectorService>();
|
|
mockThemeSelectorService.Setup(mock => mock.GetCurrentTheme()).Returns(AppTheme.Light);
|
|
var mockAppConfig = new Mock<IOptions<AppConfig>>();
|
|
var mockSystemService = new Mock<ISystemService>();
|
|
var mockApplicationInfoService = new Mock<IApplicationInfoService>();
|
|
|
|
var settingsVm = new SettingsViewModel(mockAppConfig.Object, mockThemeSelectorService.Object, mockSystemService.Object, mockApplicationInfoService.Object);
|
|
settingsVm.OnNavigatedTo(null);
|
|
|
|
Assert.Equal(AppTheme.Light, settingsVm.Theme);
|
|
}
|
|
|
|
[Fact]
|
|
public void TestSettingsViewModel_SetCurrentVersion()
|
|
{
|
|
var mockThemeSelectorService = new Mock<IThemeSelectorService>();
|
|
var mockAppConfig = new Mock<IOptions<AppConfig>>();
|
|
var mockSystemService = new Mock<ISystemService>();
|
|
var mockApplicationInfoService = new Mock<IApplicationInfoService>();
|
|
var testVersion = new Version(1, 2, 3, 4);
|
|
mockApplicationInfoService.Setup(mock => mock.GetVersion()).Returns(testVersion);
|
|
|
|
var settingsVm = new SettingsViewModel(mockAppConfig.Object, mockThemeSelectorService.Object, mockSystemService.Object, mockApplicationInfoService.Object);
|
|
settingsVm.OnNavigatedTo(null);
|
|
|
|
Assert.Equal($"ChineseChess.GUI - {testVersion}", settingsVm.VersionDescription);
|
|
}
|
|
|
|
[Fact]
|
|
public void TestSettingsViewModel_SetThemeCommand()
|
|
{
|
|
var mockThemeSelectorService = new Mock<IThemeSelectorService>();
|
|
var mockAppConfig = new Mock<IOptions<AppConfig>>();
|
|
var mockSystemService = new Mock<ISystemService>();
|
|
var mockApplicationInfoService = new Mock<IApplicationInfoService>();
|
|
|
|
var settingsVm = new SettingsViewModel(mockAppConfig.Object, mockThemeSelectorService.Object, mockSystemService.Object, mockApplicationInfoService.Object);
|
|
settingsVm.SetThemeCommand.Execute(AppTheme.Light.ToString());
|
|
|
|
mockThemeSelectorService.Verify(mock => mock.SetTheme(AppTheme.Light));
|
|
}
|
|
}
|
|
}
|