コード例 #1
0
ファイル: EnvironmentListTests.cs プロジェクト: krus/PTVS
        public void LoadUnloadProjectFactories()
        {
            var service      = new MockInterpreterOptionsService();
            var mockProvider = new MockPythonInterpreterFactoryProvider("Test Provider");

            mockProvider.AddFactory(new MockPythonInterpreterFactory(Guid.NewGuid(), "Test Environment", MockInterpreterConfiguration(new Version(2, 7))));
            service.AddProvider(mockProvider);

            var loaded = new LoadedProjectInterpreterFactoryProvider();

            service.AddProvider(loaded);
            using (var wpf = new WpfProxy())
                using (var list = new EnvironmentListProxy(wpf)) {
                    list.Service = service;

                    // List only contains one entry
                    AssertUtil.ContainsExactly(
                        wpf.Invoke(() => list.Environments.Select(ev => ev.Description).ToList()),
                        "Test Environment"
                        );

                    var project = new MockPythonInterpreterFactoryProvider("Fake Project");
                    project.AddFactory(new MockPythonInterpreterFactory(Guid.NewGuid(), "Fake Environment", MockInterpreterConfiguration(new Version(2, 7))));

                    loaded.ProjectLoaded(project, null);

                    // List now contains two entries
                    AssertUtil.ContainsExactly(
                        wpf.Invoke(() => list.Environments.Select(ev => ev.Description).ToList()),
                        "Test Environment",
                        "Fake Environment"
                        );

                    loaded.ProjectUnloaded(project);

                    // List only has one entry again
                    AssertUtil.ContainsExactly(
                        wpf.Invoke(() => list.Environments.Select(ev => ev.Description).ToList()),
                        "Test Environment"
                        );
                }
        }
コード例 #2
0
ファイル: EnvironmentListTests.cs プロジェクト: krus/PTVS
        public void AddRemoveProjectFactories()
        {
            var service = new MockInterpreterOptionsService();
            var loaded  = new LoadedProjectInterpreterFactoryProvider();

            service.AddProvider(loaded);
            using (var wpf = new WpfProxy())
                using (var list = new EnvironmentListProxy(wpf)) {
                    list.Service = service;

                    // List should be empty
                    AssertUtil.ContainsExactly(list.Environments);

                    var project = new MockPythonInterpreterFactoryProvider("Fake Project");

                    loaded.ProjectLoaded(project, null);

                    // List is still empty
                    AssertUtil.ContainsExactly(list.Environments);

                    project.AddFactory(new MockPythonInterpreterFactory(Guid.NewGuid(), "Fake Environment", MockInterpreterConfiguration(new Version(2, 7))));

                    // List now contains one project
                    AssertUtil.ContainsExactly(
                        wpf.Invoke(() => list.Environments.Select(ev => ev.Description).ToList()),
                        "Fake Environment"
                        );

                    project.RemoveAllFactories();

                    // List is empty again
                    AssertUtil.ContainsExactly(list.Environments);

                    loaded.ProjectUnloaded(project);
                }
        }