Files
jdescopingtool/NEW/tests/JdeScoping.ConfigManager.Tests/ViewModels/Forms/DataSyncFormViewModelTests.cs
T
Joseph Doherty 7c4781dfe3 refactor(configmanager): split into Core, CLI, and UI projects
Extract shared models, services, and application logic into
JdeScoping.ConfigManager.Core library. Add JdeScoping.ConfigManager.Cli
console app with validate, test-connection, and secret commands using
System.CommandLine. UI project now references Core for platform-agnostic
functionality while retaining Avalonia-specific dialog and clipboard services.
2026-01-28 10:01:48 -05:00

77 lines
2.0 KiB
C#

using JdeScoping.ConfigManager.Core.Models;
using JdeScoping.ConfigManager.ViewModels.Forms;
namespace JdeScoping.ConfigManager.Tests.ViewModels.Forms;
public class DataSyncFormViewModelTests
{
[Fact]
public void Constructor_InitializesFromModel()
{
// Arrange
var model = new DataSyncSection
{
Enabled = true,
MaxDegreeOfParallelism = 8,
BatchSize = 25000
};
// Act
var sut = new DataSyncFormViewModel(model, () => { });
// Assert
sut.Enabled.ShouldBeTrue();
sut.MaxDegreeOfParallelism.ShouldBe(8);
sut.BatchSize.ShouldBe(25000);
}
[Fact]
public void PropertyChange_UpdatesModel()
{
// Arrange
var model = new DataSyncSection { MaxDegreeOfParallelism = 4 };
var sut = new DataSyncFormViewModel(model, () => { });
// Act
sut.MaxDegreeOfParallelism = 16;
// Assert
model.MaxDegreeOfParallelism.ShouldBe(16);
}
[Fact]
public void PropertyChange_InvokesOnChanged()
{
// Arrange
var model = new DataSyncSection();
var changedInvoked = false;
var sut = new DataSyncFormViewModel(model, () => changedInvoked = true);
// Act
sut.BatchSize = 10000;
// Assert
changedInvoked.ShouldBeTrue();
}
[Fact]
public void PropertyChange_RaisesPropertyChanged()
{
// Arrange
var model = new DataSyncSection();
var sut = new DataSyncFormViewModel(model, () => { });
var propertyChangedRaised = false;
sut.PropertyChanged += (s, e) =>
{
if (e.PropertyName == nameof(DataSyncFormViewModel.LookbackMultiplier))
propertyChangedRaised = true;
};
// Act
sut.LookbackMultiplier = 2.5;
// Assert
propertyChangedRaised.ShouldBeTrue();
}
}