namespace Mr.BrickAdventures.Progression.Tests; internal sealed class InMemoryProfileStore : IProfileStore { private ProfileSnapshot? _saved; private bool _corrupt; public void Save(Profile profile) => _saved = profile.Export(); public void Corrupt() => _corrupt = true; public LoadResult Load() { if (_corrupt) return LoadResult.Corrupt("snapshot could not be read"); if (_saved is null) return LoadResult.Absent(); try { return LoadResult.Loaded(Profile.Restore(_saved)); } catch (Exception e) { return LoadResult.Corrupt(e.Message); } } }