public void FilesAreCreatedInCorrectSubfolders()
        {
            _sut.GetArchive("a");
            _sut.GetArchive("b/b");
            _sut.GetArchive("c/c/c");
            _sut.GetArchive("d/d/d/d");

            _sut.Dispose();

            Assert.True(Directory.Exists(_root));
            Assert.True(File.Exists(Path.Combine(_root, "a/.zipfolder")));
            Assert.True(File.Exists(Path.Combine(_root, "b/b/.zipfolder")));
            Assert.True(File.Exists(Path.Combine(_root, "c/c/c/.zipfolder")));
            Assert.True(File.Exists(Path.Combine(_root, "d/d/d/d/.zipfolder")));
        }
        public void ExistingFilesAreNotOverwritten()
        {
            _sut.Dispose();

            Directory.CreateDirectory(Path.Combine(_root, "a"));
            var metaFile = Path.Combine(_root, @"a\.zipfolder");
            var zip0     = Path.Combine(_root, @"a\0.zip");
            var zip1     = Path.Combine(_root, @"a\1.zip");

            // setup fake data from previous run
            File.WriteAllText(metaFile, "test");
            using (var testZip = new WritingArchive(zip0))
            {
                testZip.Add("test");
            }

            // new initialization
            _sut = new ZipFolderLRUCache <string>(_root, 2);
            var a = _sut.GetArchive("a");

            a.Add("x");
            _sut.Dispose();

            Assert.True(File.Exists(metaFile));
            Assert.True(File.Exists(zip0));
            Assert.True(File.Exists(zip1));

            Assert.AreEqual("test", File.ReadAllText(metaFile));
            AssertZipContent(zip0, "test");
            AssertZipContent(zip1, "x");
        }
        public void ComplexKeysArePossibleThoughNotRecommended()
        {
            var sut = new ZipFolderLRUCache <List <string> >(_root, 2);
            var key = new List <string> {
                "a", "b"
            };

            sut.GetArchive(key);
            sut.Dispose();

            var metaFile = Path.Combine(_root, "[a,b]\\.zipfolder");
            var actual   = File.ReadAllText(metaFile);
            var expected = key.ToFormattedJson();

            Assert.AreEqual(expected, actual);
        }
示例#4
0
 public void CloseCache()
 {
     _cache.Dispose();
 }