Preserve damaged backup evidence across later saves

This commit is contained in:
NINI
2026-10-05 11:44:28 +09:00
parent 7c2f6d9fd1
commit 7641365e37
4 changed files with 24 additions and 1 deletions
@@ -75,6 +75,18 @@ namespace MagnetismHeroes.Tests
Assert.That(Directory.GetFiles(_directory, "*.damaged-*").Select(File.ReadAllText), Does.Contain("broken-primary"));
Assert.That(File.ReadAllText(_path + ".bak"), Is.EqualTo("broken-backup"));
}
[Test] public void BothDamagedOriginalsSurviveTwoSubsequentSuccessfulWrites()
{
File.WriteAllText(_path, "distinct-broken-primary"); File.WriteAllText(_path + ".bak", "distinct-broken-backup");
var store = Store(); Assert.That(store.TryLoad(out _, out _), Is.False);
Assert.That(store.TrySave(new ProgressSave(), out var error), Is.True, error);
Assert.That(store.TrySave(Puzzle(), out error), Is.True, error);
var forensic = Directory.GetFiles(_directory, "*.damaged-*").Select(File.ReadAllText).ToArray();
Assert.That(forensic, Does.Contain("distinct-broken-primary"));
Assert.That(forensic, Does.Contain("distinct-broken-backup"));
Assert.That(store.TryLoad(out var restored, out error), Is.True, error);
Assert.That(restored.puzzleStates.Single().stageId, Is.EqualTo(1));
}
[Test] public void InvalidGroupMembershipDoesNotReplaceAValidSave()
{
var store = Store(); var progress = Puzzle(); Assert.That(store.TrySave(progress, out _), Is.True);