位置节点增加保存图像到本地的功能;支持输入图像
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
// Validates: Requirements 6.1, 6.2
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using FsCheck;
|
||||
using FsCheck.Fluent;
|
||||
using FsCheck.Xunit;
|
||||
@@ -65,5 +67,65 @@ namespace XplorePlane.Tests.ViewModels
|
||||
return runningOk && succeededOk && failedOk && idleOk;
|
||||
});
|
||||
}
|
||||
|
||||
#region ManualImagePath Binding Tests - Validates: Requirements 2.4
|
||||
|
||||
[Fact]
|
||||
public void BrowseImageCommand_IsNotNull_AndCanExecute()
|
||||
{
|
||||
// Arrange
|
||||
var node = new SavePositionNode(Guid.NewGuid(), 0, "Pos_0", MotionState.Default);
|
||||
var vm = new CncNodeViewModel(node, (_, __) => { });
|
||||
|
||||
// Act & Assert
|
||||
Assert.NotNull(vm.BrowseImageCommand);
|
||||
Assert.True(vm.BrowseImageCommand.CanExecute(null));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ManualImagePath_Set_RaisesPropertyChangedNotification()
|
||||
{
|
||||
// Arrange
|
||||
var node = new SavePositionNode(Guid.NewGuid(), 0, "Pos_0", MotionState.Default);
|
||||
var vm = new CncNodeViewModel(node, (_, __) => { });
|
||||
var changedProperties = new List<string>();
|
||||
((INotifyPropertyChanged)vm).PropertyChanged += (_, e) => changedProperties.Add(e.PropertyName);
|
||||
|
||||
// Act
|
||||
vm.ManualImagePath = @"C:\Images\test.bmp";
|
||||
|
||||
// Assert
|
||||
Assert.Contains(nameof(vm.ManualImagePath), changedProperties);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ManualImagePath_Getter_ReturnsValueFromUnderlyingModel()
|
||||
{
|
||||
// Arrange
|
||||
var expectedPath = @"D:\TestImages\sample.png";
|
||||
var node = new SavePositionNode(Guid.NewGuid(), 0, "Pos_0", MotionState.Default, ManualImagePath: expectedPath);
|
||||
var vm = new CncNodeViewModel(node, (_, __) => { });
|
||||
|
||||
// Act & Assert
|
||||
Assert.Equal(expectedPath, vm.ManualImagePath);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ManualImagePath_Set_UpdatesUnderlyingModel()
|
||||
{
|
||||
// Arrange
|
||||
var node = new SavePositionNode(Guid.NewGuid(), 0, "Pos_0", MotionState.Default);
|
||||
var vm = new CncNodeViewModel(node, (_, __) => { });
|
||||
var newPath = @"C:\Images\updated.tiff";
|
||||
|
||||
// Act
|
||||
vm.ManualImagePath = newPath;
|
||||
|
||||
// Assert
|
||||
var updatedNode = Assert.IsType<SavePositionNode>(vm.Model);
|
||||
Assert.Equal(newPath, updatedNode.ManualImagePath);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user