test that save status updates correctly for data/non-data changes

This commit is contained in:
haven1433 2023-08-12 21:42:07 -05:00
parent 7700163949
commit 9ea072693d
2 changed files with 26 additions and 2 deletions

View File

@ -160,9 +160,10 @@ namespace HavenSoft.HexManiac.Core.ViewModels {
var hasDataChange = HasDataChange;
if (hasDataChange != hasDataChangeCache) {
hasDataChangeCache = hasDataChange;
NotifyPropertyChanged(nameof(HasDataChange), nameof(IsSaved));
NotifyPropertiesChanged(nameof(HasDataChange), nameof(IsSaved));
} else if (!hasDataChange && currentChange.HasAnyChange) {
NotifyPropertyChanged(nameof(IsSaved));
}
if (!hasDataChange && currentChange.HasAnyChange) NotifyPropertyChanged(nameof(IsSaved));
}
private void UndoExecuted() {

View File

@ -496,5 +496,28 @@ namespace HavenSoft.HexManiac.Tests {
Assert.Equal(3, recentChanges.Count);
}
[Fact]
public void DataChange_Name_ContainsAstrisk() {
var view = new StubView(ViewPort);
ViewPort.Edit("03");
Assert.EndsWith("*", ViewPort.Name);
Assert.True(ViewPort.ChangeHistory.HasDataChange);
Assert.Contains(nameof(ViewPort.Name), view.PropertyNotifications);
Assert.Contains(nameof(ViewPort.Save), view.CommandCanExecuteChangedNotifications);
}
[Fact]
public void NonDataChange_Name_NoAstrisk() {
var view = new StubView(ViewPort);
ViewPort.Edit("^test ");
Assert.False(ViewPort.Name.EndsWith("*"));
Assert.False(ViewPort.ChangeHistory.HasDataChange);
Assert.Contains(nameof(ViewPort.Save), view.CommandCanExecuteChangedNotifications);
}
}
}