chore: deprecate standalone SecureStoreManager utility
Move SecureStoreManager project and tests to Deprecated folder and remove from solution. SecureStore functionality is now integrated into ConfigManager.
This commit is contained in:
@@ -0,0 +1,184 @@
|
||||
using Shouldly;
|
||||
using Xunit;
|
||||
using JdeScoping.SecureStoreManager.ViewModels;
|
||||
|
||||
namespace JdeScoping.SecureStoreManager.Tests.ViewModels;
|
||||
|
||||
public class ViewModelBaseTests
|
||||
{
|
||||
/// <summary>
|
||||
/// Test implementation of ViewModelBase for testing purposes.
|
||||
/// </summary>
|
||||
private class TestViewModel : ViewModelBase
|
||||
{
|
||||
private string _testProperty = string.Empty;
|
||||
private int _testIntProperty;
|
||||
|
||||
public string TestProperty
|
||||
{
|
||||
get => _testProperty;
|
||||
set => SetProperty(ref _testProperty, value);
|
||||
}
|
||||
|
||||
public int TestIntProperty
|
||||
{
|
||||
get => _testIntProperty;
|
||||
set => SetProperty(ref _testIntProperty, value);
|
||||
}
|
||||
|
||||
public void RaisePropertyChangedForTest(string propertyName)
|
||||
{
|
||||
OnPropertyChanged(propertyName);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetProperty_WhenValueUnchanged_ReturnsFalse()
|
||||
{
|
||||
// Arrange
|
||||
var sut = new TestViewModel();
|
||||
sut.TestProperty = "initialValue";
|
||||
|
||||
// Act
|
||||
sut.TestProperty = "initialValue"; // Same value
|
||||
|
||||
// Assert - SetProperty should have returned false, but we can verify by checking no event was raised
|
||||
// We test this indirectly through the property changed event not firing
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetProperty_WhenValueUnchanged_DoesNotRaisePropertyChanged()
|
||||
{
|
||||
// Arrange
|
||||
var sut = new TestViewModel();
|
||||
sut.TestProperty = "initialValue";
|
||||
var eventRaised = false;
|
||||
sut.PropertyChanged += (s, e) => eventRaised = true;
|
||||
|
||||
// Act
|
||||
sut.TestProperty = "initialValue"; // Same value
|
||||
|
||||
// Assert
|
||||
eventRaised.ShouldBeFalse();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetProperty_WhenValueChanged_ReturnsTrue()
|
||||
{
|
||||
// Arrange
|
||||
var sut = new TestViewModel();
|
||||
|
||||
// Act
|
||||
sut.TestProperty = "newValue";
|
||||
|
||||
// Assert - SetProperty returned true (verified by property change being made)
|
||||
sut.TestProperty.ShouldBe("newValue");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetProperty_WhenValueChanged_RaisesPropertyChanged()
|
||||
{
|
||||
// Arrange
|
||||
var sut = new TestViewModel();
|
||||
var eventRaised = false;
|
||||
sut.PropertyChanged += (s, e) => eventRaised = true;
|
||||
|
||||
// Act
|
||||
sut.TestProperty = "newValue";
|
||||
|
||||
// Assert
|
||||
eventRaised.ShouldBeTrue();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetProperty_RaisesEventWithCorrectPropertyName()
|
||||
{
|
||||
// Arrange
|
||||
var sut = new TestViewModel();
|
||||
string? raisedPropertyName = null;
|
||||
sut.PropertyChanged += (s, e) => raisedPropertyName = e.PropertyName;
|
||||
|
||||
// Act
|
||||
sut.TestProperty = "newValue";
|
||||
|
||||
// Assert
|
||||
raisedPropertyName.ShouldBe(nameof(TestViewModel.TestProperty));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetProperty_RaisesEventWithSenderAsThis()
|
||||
{
|
||||
// Arrange
|
||||
var sut = new TestViewModel();
|
||||
object? eventSender = null;
|
||||
sut.PropertyChanged += (s, e) => eventSender = s;
|
||||
|
||||
// Act
|
||||
sut.TestProperty = "newValue";
|
||||
|
||||
// Assert
|
||||
eventSender.ShouldBe(sut);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void OnPropertyChanged_RaisesPropertyChangedEvent()
|
||||
{
|
||||
// Arrange
|
||||
var sut = new TestViewModel();
|
||||
var eventRaised = false;
|
||||
sut.PropertyChanged += (s, e) => eventRaised = true;
|
||||
|
||||
// Act
|
||||
sut.RaisePropertyChangedForTest("SomeProperty");
|
||||
|
||||
// Assert
|
||||
eventRaised.ShouldBeTrue();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void OnPropertyChanged_RaisesEventWithCorrectPropertyName()
|
||||
{
|
||||
// Arrange
|
||||
var sut = new TestViewModel();
|
||||
string? raisedPropertyName = null;
|
||||
sut.PropertyChanged += (s, e) => raisedPropertyName = e.PropertyName;
|
||||
|
||||
// Act
|
||||
sut.RaisePropertyChangedForTest("CustomProperty");
|
||||
|
||||
// Assert
|
||||
raisedPropertyName.ShouldBe("CustomProperty");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetProperty_WithValueType_WorksCorrectly()
|
||||
{
|
||||
// Arrange
|
||||
var sut = new TestViewModel();
|
||||
var eventRaised = false;
|
||||
sut.PropertyChanged += (s, e) => eventRaised = true;
|
||||
|
||||
// Act
|
||||
sut.TestIntProperty = 42;
|
||||
|
||||
// Assert
|
||||
sut.TestIntProperty.ShouldBe(42);
|
||||
eventRaised.ShouldBeTrue();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetProperty_WithSameValueType_DoesNotRaiseEvent()
|
||||
{
|
||||
// Arrange
|
||||
var sut = new TestViewModel();
|
||||
sut.TestIntProperty = 42;
|
||||
var eventRaised = false;
|
||||
sut.PropertyChanged += (s, e) => eventRaised = true;
|
||||
|
||||
// Act
|
||||
sut.TestIntProperty = 42; // Same value
|
||||
|
||||
// Assert
|
||||
eventRaised.ShouldBeFalse();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user