using System.Collections; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.IO; using GameServiceWarden.Core.Persistence; namespace GameServiceWarden.Core.Tests.Modules { public class FakePersistentDictionary : IPersistentDictionary, IReadOnlyPersistentDictionary { private IDictionary backing = new Dictionary(); public V this[string key] { get { return backing[key]; } set { backing[key] = value; } } public string MapDirectory { get { return "fake/directory/"; } } public ICollection Keys { get { return backing.Keys; } } public ICollection Values { get { return backing.Values; } } public int Count { get { return backing.Count; } } public bool IsReadOnly { get { return false; } } IEnumerable IReadOnlyDictionary.Keys { get { return backing.Keys; } } IEnumerable IReadOnlyDictionary.Values { get { return backing.Values; } } public void Add(string key, V value) { backing.Add(key, value); } public void Add(KeyValuePair item) { backing.Add(item); } public void Clear() { backing.Clear(); } public bool Contains(KeyValuePair item) { return backing.Contains(item); } public bool ContainsKey(string key) { return backing.ContainsKey(key); } public void CopyTo(KeyValuePair[] array, int arrayIndex) { backing.CopyTo(array, arrayIndex); } public IEnumerator> GetEnumerator() { return backing.GetEnumerator(); } public string GetPathForKey(string key) { return MapDirectory + Path.DirectorySeparatorChar + key; } public bool Remove(string key) { return backing.Remove(key); } public bool Remove(KeyValuePair item) { return backing.Remove(item); } public bool TryGetValue(string key, [MaybeNullWhen(false)] out V value) { return backing.TryGetValue(key, out value); } IEnumerator IEnumerable.GetEnumerator() { return backing.GetEnumerator(); } } }