Пример #1
0
        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));
            }
        }
Пример #2
0
        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"));
        }
Пример #3
0
 public void SetUp()
 {
     _folder = new AutoKillFolder("TestTagsCache", true);
     Directory.CreateDirectory(_folder.Path);
     _path  = Path.Combine(_folder.Path, "test");
     _cache = new TagsCache();
     _cache.Create(_path);
 }
Пример #4
0
        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);
        }
Пример #5
0
        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());
        }
Пример #6
0
        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);
        }