public void ProviderLoadLog_Success() { var sp = new MockServiceProvider(); var log = new MockActivityLog(); sp.Services[typeof(SVsActivityLog).GUID] = log; var sm = new MockSettingsManager(); sp.Services[typeof(SVsSettingsManager).GUID] = sm; var path = FactoryProviderSuccessPath; sm.Store.AddSetting(@"PythonTools\InterpreterFactories\Test", "CodeBase", path); var service = new InterpreterOptionsService(sp); foreach (var msg in log.AllItems) { Console.WriteLine(msg); } AssertUtil.AreEqual( new Regex(@"Information//Python Tools//Loading interpreter provider assembly.*//" + Regex.Escape(path)), log.AllItems.Single() ); Assert.AreEqual(1, service.KnownProviders.Count()); }
public void RecentPackageRepositoryDoesNotReturnPackagesFromSourcesThatAreRemoved() { // Arrange var sources = new List <PackageSource> { new PackageSource("Source1"), new PackageSource("Source2") }; var factory = new Mock <IPackageRepositoryFactory>(); factory.Setup(c => c.CreateRepository(It.IsAny <string>())).Returns <string>(c => { switch (c) { case "Source1": var repo1 = new MockPackageRepository(); repo1.AddRange(new[] { PackageUtility.CreatePackage("Pack1") }); return(repo1); case "Source2": var repo2 = new MockPackageRepository(); repo2.AddRange(new[] { PackageUtility.CreatePackage("Pack2", "1.1") }); return(repo2); } return(null); }); var settingsManager = new MockSettingsManager(); settingsManager.SavePackageMetadata(new[] { new PersistencePackageMetadata("Pack1", "1.0", new DateTime(2011, 01, 01)), new PersistencePackageMetadata("Pack2", "1.1", new DateTime(2011, 01, 01)), new PersistencePackageMetadata("Pack3", "1.0", new DateTime(2011, 01, 01)), }); var sourceProvider = new Mock <IPackageSourceProvider>(); sourceProvider.Setup(c => c.LoadPackageSources()).Returns(sources); var repository = new RecentPackageRepository( null, factory.Object, sourceProvider.Object, settingsManager, new MockPackageRepository()); // Act - 1, Scene - 1 var packages = repository.GetPackages(); // Assert Assert.Equal(2, packages.Count()); AssertPackage(packages.First(), "Pack1", "1.0"); AssertPackage(packages.Last(), "Pack2", "1.1"); // Act - 1, Scene - 2 sources.Remove(sources.Last()); packages = repository.GetPackages(); Assert.Equal(1, packages.Count()); AssertPackage(packages.First(), "Pack1", "1.0"); // Fin }
public void ProviderLoadLog_CorruptImage() { var sp = new MockServiceProvider(); var log = new MockActivityLog(); sp.Services[typeof(SVsActivityLog).GUID] = log; var sm = new MockSettingsManager(); sp.Services[typeof(SVsSettingsManager).GUID] = sm; var path = FactoryProviderCorruptPath; sm.Store.AddSetting(@"PythonTools\InterpreterFactories\Test", "CodeBase", path); var service = new InterpreterOptionsService(sp); foreach (var msg in log.AllItems) { Console.WriteLine(msg); } AssertUtil.AreEqual( new Regex(@"Error//Python Tools//Failed to load interpreter provider assembly.+System\.BadImageFormatException.+//" + Regex.Escape(path)), log.ErrorsAndWarnings.Single() ); }
public void ProviderLoadLog_FileNotFound() { var sp = new MockServiceProvider(); var log = new MockActivityLog(); sp.Services[typeof(SVsActivityLog).GUID] = log; var sm = new MockSettingsManager(); sp.Services[typeof(SVsSettingsManager).GUID] = sm; var path = Path.ChangeExtension(Path.GetTempFileName(), "dll"); File.Delete(path); Assert.IsFalse(File.Exists(path)); sm.Store.AddSetting(@"PythonTools\InterpreterFactories\Test", "CodeBase", path); var service = new InterpreterOptionsService(sp); foreach (var msg in log.AllItems) { Console.WriteLine(msg); } AssertUtil.AreEqual( new Regex(@"Error//Python Tools//Failed to load interpreter provider assembly.+System\.IO\.FileNotFoundException.+//" + Regex.Escape(path)), log.ErrorsAndWarnings.Single() ); }
public void ProviderLoadLog_SuccessAndFailure() { var sp = new MockServiceProvider(); var log = new MockActivityLog(); sp.Services[typeof(SVsActivityLog).GUID] = log; var sm = new MockSettingsManager(); sp.Services[typeof(SVsSettingsManager).GUID] = sm; var path1 = FactoryProviderTypeLoadErrorPath; var path2 = FactoryProviderSuccessPath; sm.Store.AddSetting(@"PythonTools\InterpreterFactories\Test1", "CodeBase", path1); sm.Store.AddSetting(@"PythonTools\InterpreterFactories\Test2", "CodeBase", path2); var service = new InterpreterOptionsService(sp); foreach (var msg in log.AllItems) { Console.WriteLine(msg); } AssertUtil.AreEqual( new Regex(@"Error//Python Tools//Failed to import factory providers.*System\.ComponentModel\.Composition\.CompositionException"), log.ErrorsAndWarnings.Single() ); Assert.AreEqual(1, service.KnownProviders.Count()); }
static IInterpreterOptionsService GetInterpreterOptionsService(bool defaultProviders = true) { var sp = new MockServiceProvider(); sp.Services[typeof(SVsActivityLog).GUID] = new MockActivityLog(); var settings = new MockSettingsManager(); sp.Services[typeof(SVsSettingsManager).GUID] = settings; if (defaultProviders) { settings.Store.AddSetting( InterpreterOptionsService.FactoryProvidersCollection + "\\CPythonAndConfigurable", InterpreterOptionsService.FactoryProviderCodeBaseSetting, typeof(CPythonInterpreterFactoryConstants).Assembly.Location ); settings.Store.AddSetting( InterpreterOptionsService.FactoryProvidersCollection + "\\LoadedProjects", InterpreterOptionsService.FactoryProviderCodeBaseSetting, typeof(LoadedProjectInterpreterFactoryProvider).Assembly.Location ); } else { settings.Store.CreateCollection(InterpreterOptionsService.SuppressFactoryProvidersCollection); } return(new InterpreterOptionsService(sp)); }
public void PropertyChangedDistinctTest() { var manager = new MockSettingsManager(); var triggerCount = 0; manager.PropertyChanged += (sender, args) => { // Ignore IsSaved changing if (args.PropertyName == nameof(manager.IsSaved)) { return; } // Count how many times event was raised triggerCount++; }; // Change value manager.Enum = MockEnum.Three; // Change value again, to the same thing manager.Enum = MockEnum.Three; manager.Enum = MockEnum.Three; // Change value to a new thing manager.Enum = MockEnum.One; // Change value again, to the same thing manager.Enum = MockEnum.One; manager.Enum = MockEnum.One; // Check if event was only raised the minimum number of times Assert.AreEqual(2, triggerCount); }
public void SaveTest() { var manager = new MockSettingsManager(); // Save manager.Save(); Assert.IsTrue(File.Exists(manager.FullFilePath)); }
public void DeleteTest() { var manager = new MockSettingsManager(); // Save manager.Save(); // Delete manager.Delete(); Assert.IsFalse(File.Exists(manager.FullFilePath)); }
static CompositionContainer CreateCompositionContainer(bool defaultProviders = true) { var sp = new MockServiceProvider(); sp.Services[typeof(SVsActivityLog).GUID] = new MockActivityLog(); var settings = new MockSettingsManager(); sp.Services[typeof(SVsSettingsManager).GUID] = settings; return(InterpreterCatalog.CreateContainer(typeof(IInterpreterRegistryService), typeof(IInterpreterOptionsService))); }
public void InstantiateTest() { var manager = new MockSettingsManager(); // Check that configuration properties are set Assert.IsNotNull(manager.Configuration); Assert.IsNotNull(manager.Configuration.SubDirectoryPath); Assert.IsNotNull(manager.Configuration.FileName); Assert.IsNotNull(manager.FullDirectoryPath); Assert.IsNotNull(manager.FullFilePath); }
public void Cleanup() { var mock = new MockSettingsManager(); try { Directory.Delete(mock.FullDirectoryPath, true); } catch (DirectoryNotFoundException) { } }
public void DeleteWithDirTest() { var manager = new MockSettingsManager(); // Save manager.Save(); // Delete manager.Delete(true); Assert.IsFalse(File.Exists(manager.FullFilePath)); Assert.IsFalse(Directory.Exists(manager.FullDirectoryPath)); }
public void ResetTest() { var manager = new MockSettingsManager(); // Change some values manager.Str = "Test"; manager.Enum = MockEnum.One; // Reset manager.Reset(); // Check values Assert.AreEqual("Hello World", manager.Str); Assert.AreEqual(MockEnum.Two, manager.Enum); }
public void CopyFromTest() { var manager1 = new MockSettingsManager(); var manager2 = new MockSettingsManager(); // Change stuff in manager2 manager2.Class = new MockClass(); manager2.Class.Decimal = 123123; // Copy manager1.CopyFrom(manager2); // Check values Assert.IsNotNull(manager1.Class); Assert.AreEqual(123123, manager1.Class.Decimal); }
private RecentPackageRepository CreateRecentPackageRepository( IEnumerable <IPackage> packagesList = null, IEnumerable <IPersistencePackageMetadata> settingsMetadata = null, IPackageRepository cacheRepository = null) { if (packagesList == null) { var packageA = PackageUtility.CreatePackage("A", "1.0"); var packageC = PackageUtility.CreatePackage("C", "2.0"); packagesList = new[] { packageA, packageC }; } var mockRepository = new Mock <IPackageRepository>(); mockRepository.Setup(p => p.GetPackages()).Returns(packagesList.AsQueryable()); var mockRepositoryFactory = new Mock <IPackageRepositoryFactory>(); mockRepositoryFactory.Setup(f => f.CreateRepository(It.IsAny <string>())).Returns(mockRepository.Object); var mockSettingsManager = new MockSettingsManager(); if (settingsMetadata == null) { var A = new PersistencePackageMetadata("A", "1.0", new DateTime(2010, 8, 12)); var B = new PersistencePackageMetadata("B", "2.0", new DateTime(2011, 3, 2)); settingsMetadata = new[] { A, B }; } mockSettingsManager.SavePackageMetadata(settingsMetadata); var mockPackageSourceProvider = new MockPackageSourceProvider(); mockPackageSourceProvider.SavePackageSources(new[] { new PackageSource("source") }); if (cacheRepository == null) { cacheRepository = new MockPackageRepository(); } return(new RecentPackageRepository( /* dte */ null, mockRepositoryFactory.Object, mockPackageSourceProvider, mockSettingsManager, cacheRepository)); }
public void CloneTest() { var manager = new MockSettingsManager(); // Change stuff manager.Array = new ushort[] { 99, 5, 6 }; // Clone var clone = manager.Clone() as MockSettingsManager; Assert.IsNotNull(clone); // Check values Assert.IsNotNull(clone.Array); Assert.AreEqual(3, clone.Array.Length); Assert.AreEqual(99, clone.Array[0]); Assert.AreEqual(5, clone.Array[1]); Assert.AreEqual(6, clone.Array[2]); }
public void IsSavedTest() { var manager = new MockSettingsManager(); // IsSaved should be true because it's persistent (all values are default) Assert.IsTrue(manager.IsSaved); // Change values manager.DateTime = DateTime.Now; // IsSaved should be false because a value was changed Assert.IsFalse(manager.IsSaved); // Save manager.Save(); // IsSaved should be true because the settings are saved Assert.IsTrue(manager.IsSaved); // Change values manager.Int = 43; // IsSaved should be false because a value was changed Assert.IsFalse(manager.IsSaved); // Load manager.Load(); // IsSaved should be true because the settings are saved Assert.IsTrue(manager.IsSaved); // Change values manager.Class = new MockClass(); // IsSaved should be false because a value was changed Assert.IsFalse(manager.IsSaved); // Reset manager.Reset(); // IsSaved should be false because it's not persistent anymore Assert.IsFalse(manager.IsSaved); }
public EditorTestToolset(bool useRealUIThread = true) { _exportProvider = MefExportProviders.CreateEditorExportProvider(); var settingsManager = new MockSettingsManager(); settingsManager.Store.AllowEmptyCollections = true; _serviceProvider = _exportProvider.GetExportedValue <MockServiceProvider>(); _serviceProvider.Services[typeof(SVsSettingsManager).GUID] = settingsManager; if (useRealUIThread) { _serviceProvider.AddService(typeof(UIThreadBase), new UIThread(_exportProvider.GetExportedValue <JoinableTaskContext>())); } else { _serviceProvider.AddService(typeof(UIThreadBase), new MockUIThread()); } UIThread = (UIThreadBase)_serviceProvider.GetService(typeof(UIThreadBase)); }
public void SaveChangesTest() { var manager = new MockSettingsManager(); // Change some values manager.Int = 13; manager.Double = 3.14; // Save manager.Save(); // Re-create manager = new MockSettingsManager(); // Load manager.Load(); // Check values Assert.AreEqual(13, manager.Int); Assert.AreEqual(3.14, manager.Double); Assert.AreEqual("Hello World", manager.Str); }
private RecentPackagesRepository CreateRecentPackageRepository(IPackage[] packagesList = null, IPersistencePackageMetadata[] settingsMetadata = null) { if (packagesList == null) { var packageA = PackageUtility.CreatePackage("A", "1.0"); var packageC = PackageUtility.CreatePackage("C", "2.0"); packagesList = new[] { packageA, packageC }; } var mockRepository = new Mock <IPackageRepository>(); mockRepository.Setup(p => p.GetPackages()).Returns(packagesList.AsQueryable()); var mockRepositoryFactory = new Mock <IPackageRepositoryFactory>(); mockRepositoryFactory.Setup(f => f.CreateRepository(It.IsAny <PackageSource>())).Returns(mockRepository.Object); var mockSettingsManager = new MockSettingsManager(); if (settingsMetadata == null) { var A = new PersistencePackageMetadata("A", "1.0", new DateTime(2010, 8, 12)); var B = new PersistencePackageMetadata("B", "2.0", new DateTime(2011, 3, 2)); settingsMetadata = new[] { A, B }; } mockSettingsManager.SavePackageMetadata(settingsMetadata); var mockPackageSourceProvider = new Mock <IPackageSourceProvider>(); mockPackageSourceProvider.Setup(p => p.AggregateSource).Returns(new PackageSource("All") { IsAggregate = true }); return(new RecentPackagesRepository(null, mockRepositoryFactory.Object, mockPackageSourceProvider.Object, mockSettingsManager)); }
public void SaveUpgradeLoadTest() { var oldManager = new MockSettingsManager(); // Set some values oldManager.Double = 66.55; oldManager.Class = new MockClass(); oldManager.Class.Long = 132; // Save oldManager.Save(); // Upgrade var newManager = new MockSettingsManagerNewer(); // Load newManager.Load(); // Check values Assert.AreEqual(66.55, newManager.Double); Assert.IsNotNull(newManager.Class); Assert.AreEqual(132, newManager.Class.Long); Assert.AreEqual('Q', newManager.Char); }
public void PropertyChangedTest() { var manager = new MockSettingsManager(); string changedProperty = null; manager.PropertyChanged += (sender, args) => { // Ignore IsSaved changing if (args.PropertyName == nameof(manager.IsSaved)) { return; } // Save the name of the changed property changedProperty = args.PropertyName; }; // Change value manager.DateTime = DateTime.UtcNow; // Check if event raised correctly Assert.IsNotNull(changedProperty); Assert.AreEqual(nameof(manager.DateTime), changedProperty); }
public SettingsResponse GetAccounts(int userID) { ISettingsManager manager = new MockSettingsManager(); return(manager.GetAccounts(userID)); }
public SettingsResponse GetCountries(int accountID) { ISettingsManager manager = new MockSettingsManager(); return(manager.GetSegmentInfo(accountID, SegmentType.Country)); }
public void RecentPackageRepositoryDoesNotReturnPackagesFromSourcesThatAreDisabled() { // Arrange var sources = new List<PackageSource> { new PackageSource("Source1"), new PackageSource("Source2", "Source2", isEnabled: false) }; var factory = new Mock<IPackageRepositoryFactory>(); factory.Setup(c => c.CreateRepository(It.IsAny<string>())).Returns<string>(c => { switch (c) { case "Source1": var repo1 = new MockPackageRepository(); repo1.AddRange(new[] { PackageUtility.CreatePackage("Pack1") }); return repo1; case "Source2": var repo2 = new MockPackageRepository(); repo2.AddRange(new[] { PackageUtility.CreatePackage("Pack2", "1.1") }); return repo2; } return null; }); var settingsManager = new MockSettingsManager(); settingsManager.SavePackageMetadata(new[] { new PersistencePackageMetadata("Pack1", "1.0", new DateTime(2011, 01, 01)), new PersistencePackageMetadata("Pack2", "1.1", new DateTime(2011, 01, 01)), new PersistencePackageMetadata("Pack3", "1.0", new DateTime(2011, 01, 01)), }); var sourceProvider = new Mock<IPackageSourceProvider>(); sourceProvider.Setup(c => c.LoadPackageSources()).Returns(sources); var repository = new RecentPackageRepository( null, factory.Object, sourceProvider.Object, settingsManager, new MockPackageRepository()); // Act var packages = repository.GetPackages(); // Assert Assert.Equal(1, packages.Count()); AssertPackage(packages.First(), "Pack1", "1.0"); //AssertPackage(packages.Last(), "Pack2", "1.1"); }
private RecentPackagesRepository CreateRecentPackageRepository(IPackage[] packagesList = null, IPersistencePackageMetadata[] settingsMetadata = null) { if (packagesList == null) { var packageA = PackageUtility.CreatePackage("A", "1.0"); var packageC = PackageUtility.CreatePackage("C", "2.0"); packagesList = new[] { packageA, packageC }; } var mockRepository = new Mock<IPackageRepository>(); mockRepository.Setup(p => p.GetPackages()).Returns(packagesList.AsQueryable()); var mockRepositoryFactory = new Mock<IPackageRepositoryFactory>(); mockRepositoryFactory.Setup(f => f.CreateRepository(It.IsAny<PackageSource>())).Returns(mockRepository.Object); var mockSettingsManager = new MockSettingsManager(); if (settingsMetadata == null) { var A = new PersistencePackageMetadata("A", "1.0", new DateTime(2010, 8, 12)); var B = new PersistencePackageMetadata("B", "2.0", new DateTime(2011, 3, 2)); settingsMetadata = new[] { A, B }; } mockSettingsManager.SavePackageMetadata(settingsMetadata); var mockPackageSourceProvider = new Mock<IPackageSourceProvider>(); mockPackageSourceProvider.Setup(p => p.AggregateSource).Returns(new PackageSource("All") { IsAggregate = true }); return new RecentPackagesRepository(null, mockRepositoryFactory.Object, mockPackageSourceProvider.Object, mockSettingsManager); }
private RecentPackageRepository CreateRecentPackageRepository( IEnumerable<IPackage> packagesList = null, IEnumerable<IPersistencePackageMetadata> settingsMetadata = null, IPackageRepository cacheRepository = null) { if (packagesList == null) { var packageA = PackageUtility.CreatePackage("A", "1.0"); var packageC = PackageUtility.CreatePackage("C", "2.0"); packagesList = new[] { packageA, packageC }; } var mockRepository = new Mock<IPackageRepository>(); mockRepository.Setup(p => p.GetPackages()).Returns(packagesList.AsQueryable()); var mockRepositoryFactory = new Mock<IPackageRepositoryFactory>(); mockRepositoryFactory.Setup(f => f.CreateRepository(It.IsAny<string>())).Returns(mockRepository.Object); var mockSettingsManager = new MockSettingsManager(); if (settingsMetadata == null) { var A = new PersistencePackageMetadata("A", "1.0", new DateTime(2010, 8, 12)); var B = new PersistencePackageMetadata("B", "2.0", new DateTime(2011, 3, 2)); settingsMetadata = new[] { A, B }; } mockSettingsManager.SavePackageMetadata(settingsMetadata); var mockPackageSourceProvider = new MockPackageSourceProvider(); mockPackageSourceProvider.SavePackageSources(new[] { new PackageSource("source") }); if (cacheRepository == null) { cacheRepository = new MockPackageRepository(); } return new RecentPackageRepository( /* dte */ null, mockRepositoryFactory.Object, mockPackageSourceProvider, mockSettingsManager, cacheRepository); }