diff --git a/VECTO3GUI2020/ViewModel/Implementation/Common/BackingStorage.cs b/VECTO3GUI2020/ViewModel/Implementation/Common/BackingStorage.cs index fce1fbfdd7df9bcac93eea4d8bbd45c9c801ec69..98632857888c848bea268542e89eb2465280a5fa 100644 --- a/VECTO3GUI2020/ViewModel/Implementation/Common/BackingStorage.cs +++ b/VECTO3GUI2020/ViewModel/Implementation/Common/BackingStorage.cs @@ -35,7 +35,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation.Common public bool UnsavedChanges { - get => _unsavedChanges.Count != 0; + get => (_savedValues == null) || (_unsavedChanges.Count != 0); } private void ResetUnsavedChanges() diff --git a/Vecto3GUI2020Test/HelperTests/BackingStorageTest.cs b/Vecto3GUI2020Test/HelperTests/BackingStorageTest.cs index ee5bb386e6913f06a9471700003d69d3a9d503f7..278bbcba1f1610393009858163ebce167266b19e 100644 --- a/Vecto3GUI2020Test/HelperTests/BackingStorageTest.cs +++ b/Vecto3GUI2020Test/HelperTests/BackingStorageTest.cs @@ -73,6 +73,18 @@ namespace Vecto3GUI2020Test.HelperTests _testVm.BackingStorage.PropertyChanged += BackingStorage_PropertyChanged; } + [TearDown] + public void TearDown() + { + _unsavedChangesNotified = false; + + _currentValues = null; + _unsavedChanges = null; + _savedValues = null; + _testVm.BackingStorage.PropertyChanged -= BackingStorage_PropertyChanged; + _testVm = null; + } + private void BackingStorage_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { switch (e.PropertyName) { @@ -158,6 +170,13 @@ namespace Vecto3GUI2020Test.HelperTests Assert.IsFalse(_testVm.BackingStorage.UnsavedChanges); } + [Test] + public void UnsavedTrueBeforeFirstSave() + { + Assert.IsTrue(_testVm.BackingStorage.UnsavedChanges); + _testVm.BackingStorage.SaveChanges(); + Assert.IsFalse(_testVm.BackingStorage.UnsavedChanges); + } [Test] public void SavedChangesNotModified()