added tests to project
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
using CursorLang.Models;
|
||||
using CursorLang.ViewModels;
|
||||
|
||||
namespace CursorLang.Tests.ViewModels;
|
||||
|
||||
public sealed class LayoutPopupViewModelTests
|
||||
{
|
||||
// Before the first layout change there is nothing to show, yet the window
|
||||
// is already being built
|
||||
[Fact]
|
||||
public void Before_the_first_layout_a_dash_is_shown()
|
||||
{
|
||||
Assert.Equal("—", new LayoutPopupViewModel(new AppSettings()).ShortName);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void The_look_comes_straight_from_the_settings()
|
||||
{
|
||||
var settings = new AppSettings();
|
||||
|
||||
Assert.Same(settings, new LayoutPopupViewModel(settings).Settings);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void A_changed_layout_name_is_announced_to_subscribers()
|
||||
{
|
||||
var viewModel = new LayoutPopupViewModel(new AppSettings());
|
||||
List<string?> changed = [];
|
||||
viewModel.PropertyChanged += (_, e) => changed.Add(e.PropertyName);
|
||||
|
||||
viewModel.ShortName = "RU";
|
||||
|
||||
Assert.Equal("RU", viewModel.ShortName);
|
||||
Assert.Equal([nameof(LayoutPopupViewModel.ShortName)], changed);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void The_same_layout_name_is_not_announced_again()
|
||||
{
|
||||
var viewModel = new LayoutPopupViewModel(new AppSettings()) { ShortName = "RU" };
|
||||
List<string?> changed = [];
|
||||
viewModel.PropertyChanged += (_, e) => changed.Add(e.PropertyName);
|
||||
|
||||
viewModel.ShortName = "RU";
|
||||
|
||||
Assert.Empty(changed);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user