public void Indexer_WhenNameIsValid_ReturnsSameInstanceForSameName()
        {
            var directory = new DirectoryInfo(@"C:\Foo");
            var preferenceStore = new FilePreferenceStore(directory);

            Assert.AreSame(preferenceStore["name"], preferenceStore["name"]);
        }
        public void Indexer_WhenNameIsNull_Throws()
        {
            var directory = new DirectoryInfo(@"C:\Foo");
            var preferenceStore = new FilePreferenceStore(directory);

            object x;
            Assert.Throws<ArgumentNullException>(() => { x = preferenceStore[null]; });
        }
        public void Constructor_WhenDirectoryIsValid_InitializesPreferenceStoreDir()
        {
            var directory = new DirectoryInfo(@"C:\Foo");

            var preferenceStore = new FilePreferenceStore(directory);

            Assert.AreEqual(directory, preferenceStore.PreferenceStoreDir);
        }
        public void Indexer_WhenNameIsValidButContainsInvalidCharsForAFileName_ReturnsFilePreferenceSetInstanceWithEncodedFileName()
        {
            var directory = new DirectoryInfo(@"C:\Foo");
            var preferenceStore = new FilePreferenceStore(directory);

            var preferenceSet = (FilePreferenceSet)preferenceStore["Prefs?\\Foo"];

            Assert.AreEqual(new FileInfo(@"C:\Foo\Prefs__Foo.gallioprefs"), preferenceSet.PreferenceSetFile);
        }
        public void Indexer_WhenNameIsValid_ReturnsFilePreferenceSet()
        {
            var directory = new DirectoryInfo(@"C:\Foo");
            var preferenceStore = new FilePreferenceStore(directory);

            var preferenceSet = (FilePreferenceSet)preferenceStore["Prefs"];

            Assert.AreEqual(new FileInfo(@"C:\Foo\Prefs.gallioprefs"), preferenceSet.PreferenceSetFile);
        }
        private IPreferenceStore GetPreferenceStore(DirectoryInfo preferenceStoreDir)
        {
            lock (cachedPreferenceStores)
            {
                string           preferenceStoreDirPath = preferenceStoreDir.FullName;
                IPreferenceStore result;
                if (!cachedPreferenceStores.TryGetValue(preferenceStoreDirPath, out result))
                {
                    result = new FilePreferenceStore(preferenceStoreDir);
                    cachedPreferenceStores.Add(preferenceStoreDirPath, result);
                }

                return(result);
            }
        }
        private IPreferenceStore GetPreferenceStore(DirectoryInfo preferenceStoreDir)
        {
            lock (cachedPreferenceStores)
            {
                string preferenceStoreDirPath = preferenceStoreDir.FullName;
                IPreferenceStore result;
                if (!cachedPreferenceStores.TryGetValue(preferenceStoreDirPath, out result))
                {
                    result = new FilePreferenceStore(preferenceStoreDir);
                    cachedPreferenceStores.Add(preferenceStoreDirPath, result);
                }

                return result;
            }
        }