Esempio n. 1
0
        public bool GetEntries(string providerName,out Entry[] entries)
        {
            Provider provider;
            bool result = Providers.TryGetValue(providerName, out provider);

            if (provider != null)
            {
                entries = provider.Entries.
                    OrderByDescending(p => p.Value.CalculateFrecency()).
                    Select(p => p.Value).
                    ToArray();
            }
            else
                entries = null;
            return result;
        }
Esempio n. 2
0
        public void TestConfigCanMerge()
        {
            var now = DateTime.Now;
            var mockE1 = new Entry (@"c:\dir2\", 1, now, false);
            var mockE2 = new Entry(@"c:\dir2\file3",10,now,true);
            var mockE3 = new Entry(@"c:\dir3\file1",101,now,true);
            var mockContent = string.Join (Environment.NewLine,
                mockE1.ToString (),
                mockE2.ToString (),
                mockE3.ToString ());

            var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData> {
                {   FileSystemConfigPath, new MockFileData(mockContent) }
            });

            var db = new Database(fileSystem);
            var fsp = new Provider("FileSystem");
            db.Providers.Add ("FileSystem", fsp);
            now = now.AddSeconds (1);
            var e1 = new Entry (@"c:\dir1\", 12, now, false);
            var e2 = new Entry (@"c:\dir1\file2", 34, now, true);
            var e3 = new Entry(@"c:\dir2\file3",11,now,true);
            var e4 = new Entry(@"c:\dir3\file1",11,now,true);

            fsp.Add(e1);
            fsp.Add(e2);
            fsp.Add(e3);
            fsp.Add(e4);
            Assert.IsTrue(fsp.Remove(e4.FullPath));
            db.Save(100);

            var fsFileName = System.IO.Path.Combine (db.ConfigDir,$"{Database.ConfigFilePrefix}.FileSystem.txt");

            Assert.IsTrue(fileSystem.FileExists(FileSystemConfigPath));
            var configContent = fileSystem.File.ReadAllText (fsFileName);
            StringAssert.Contains (e1 + Environment.NewLine, configContent);
            StringAssert.Contains (e2 + Environment.NewLine, configContent);
            StringAssert.Contains (e3 + Environment.NewLine, configContent);
            StringAssert.Contains (mockE1 + Environment.NewLine, configContent);
            StringAssert.DoesNotContain (mockE2 + Environment.NewLine, configContent);
            StringAssert.DoesNotContain (mockE3 + Environment.NewLine, configContent);
            StringAssert.DoesNotContain(e4 + Environment.NewLine, configContent);
        }
Esempio n. 3
0
        public void TestGetEntries()
        {
            var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData> { });
            fileSystem.AddDirectory(Database.DefaultConfigDir);
            var db = new Database(fileSystem);
            var fsp = new Provider("FileSystem");
            db.Providers.Add("FileSystem", fsp);
            var e1 = new Entry(@"c:\dir1\", 12, DateTime.Now, false);
            var e2 = new Entry(@"c:\dir1\file2", 34, DateTime.Now, true);
            fsp.Add(e1);
            fsp.Add(e2);

            Entry[] entries = null;
            Assert.IsTrue(db.GetEntries("FileSystem", out entries));
            Assert.AreEqual(e2, entries[0]);
            Assert.AreEqual(e1, entries[1]);
        }
Esempio n. 4
0
        public void TestConfigSimpleDatabase()
        {
            var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData> {});
            fileSystem.AddDirectory (Database.DefaultConfigDir);

            var db = new Database(fileSystem);
            var fsp = new Provider("FileSystem");
            db.Providers.Add ("FileSystem", fsp);
            var e1 = new Entry (@"c:\dir1\", 12, DateTime.Now, false);
            var e2 = new Entry (@"c:\dir1\file2", 34, DateTime.Now, true);

            fsp.Add(e1);
            fsp.Add(e2);
            db.Save(100);

            var fsFileName = System.IO.Path.Combine (Database.DefaultConfigDir,$"{Database.ConfigFilePrefix}.FileSystem.txt");

            Assert.IsTrue(fileSystem.FileExists(FileSystemConfigPath));
            Assert.AreEqual(
                string.Join(Environment.NewLine,e1.ToString(),e2.ToString(),""),
                fileSystem.File.ReadAllText(fsFileName));
        }