public void TagsAreNotReWrittenOnOpen() { var tags = new[] { "alpha", "beta", "charlie", "delta", "echo", "foxtrot", "golf" }; foreach (var tag in tags) { _cache.AddOrGet(tag); } _cache.Dispose(); _cache = null; using (var opened = new TagsCache()) { opened.Open(_path); opened.Dispose(); } using (var file = new RecordStream <int>()) { file.Open(_path); file.DeclareRecordType(0, typeof(TagStorageClass)); Assert.That(file.ReadRecords <TagStorageClass>().Count(t => t.Tag == "charlie"), Is.EqualTo(1)); } }
public void TagsCanBeRetrievedByKeyAfterOpen() { var tags = new[] { "alpha", "beta", "charlie", "delta", "echo", "foxtrot", "golf" }; var id = 0; foreach (var tag in tags) { id = _cache.AddOrGet(tag); } var opened = new TagsCache(); _cache.Dispose(); _cache = opened; opened.Open(_path); var result = _cache.Get(id); Assert.That(result, Is.EqualTo("golf")); }
public void SetUp() { _folder = new AutoKillFolder("TestTagsCache", true); Directory.CreateDirectory(_folder.Path); _path = Path.Combine(_folder.Path, "test"); _cache = new TagsCache(); _cache.Create(_path); }
async Task <string> GetTagLabel(int id) { if (TagsCache.TryGetValue(id, out var s)) { return(s); } var response = await HTTP.GetAsync(apiUrl + $"/tag/{id}"); var jobj = JObject.Parse(await response.Content.ReadAsStringAsync()); var l = jobj["label"].ToObject <string>(); TagsCache[id] = l; return(l); }
private string LoadTags(TagsCache cache = null) { if (cache == null) { cache = _cache; } var sb = new StringBuilder(); foreach (var tag in cache.Tags) { sb.AppendFormat("{0} = {1}", tag, _cache.AddOrGet(tag)); sb.AppendLine(); } return(sb.ToString()); }
public void TagsAreLoadedOnOpen() { var tags = new[] { "alpha", "beta", "charlie", "delta", "echo", "foxtrot", "golf" }; foreach (var tag in tags) { _cache.AddOrGet(tag); } var opened = new TagsCache(); _cache.Dispose(); _cache = opened; opened.Open(_path); var result = LoadTags(opened); Console.WriteLine(result); Approvals.Verify(result); }