forked from DonJayamanne/pythonVSCode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserviceRegistry.unit.test.ts
More file actions
192 lines (186 loc) · 9.88 KB
/
Copy pathserviceRegistry.unit.test.ts
File metadata and controls
192 lines (186 loc) · 9.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
'use strict';
// tslint:disable: no-any
import { expect } from 'chai';
import * as typemoq from 'typemoq';
import { IExtensionSingleActivationService } from '../../client/activation/types';
import { ActiveResourceService } from '../../client/common/application/activeResource';
import { ApplicationEnvironment } from '../../client/common/application/applicationEnvironment';
import { ApplicationShell } from '../../client/common/application/applicationShell';
import { CommandManager } from '../../client/common/application/commandManager';
import { DebugService } from '../../client/common/application/debugService';
import { DocumentManager } from '../../client/common/application/documentManager';
import { Extensions } from '../../client/common/application/extensions';
import { LanguageService } from '../../client/common/application/languageService';
import { TerminalManager } from '../../client/common/application/terminalManager';
import {
IActiveResourceService,
IApplicationEnvironment,
IApplicationShell,
ICommandManager,
IDebugService,
IDocumentManager,
ILanguageService,
ILiveShareApi,
ITerminalManager,
IWorkspaceService
} from '../../client/common/application/types';
import { WorkspaceService } from '../../client/common/application/workspace';
import { AsyncDisposableRegistry } from '../../client/common/asyncDisposableRegistry';
import { ConfigurationService } from '../../client/common/configuration/service';
import { CryptoUtils } from '../../client/common/crypto';
import { EditorUtils } from '../../client/common/editor';
import { ExperimentsManager } from '../../client/common/experiments/manager';
import { FeatureDeprecationManager } from '../../client/common/featureDeprecationManager';
import {
ExtensionInsidersDailyChannelRule,
ExtensionInsidersOffChannelRule,
ExtensionInsidersWeeklyChannelRule
} from '../../client/common/insidersBuild/downloadChannelRules';
import { ExtensionChannelService } from '../../client/common/insidersBuild/downloadChannelService';
import { InsidersExtensionPrompt } from '../../client/common/insidersBuild/insidersExtensionPrompt';
import { InsidersExtensionService } from '../../client/common/insidersBuild/insidersExtensionService';
import {
ExtensionChannel,
IExtensionChannelRule,
IExtensionChannelService,
IInsiderExtensionPrompt
} from '../../client/common/insidersBuild/types';
import { ProductInstaller } from '../../client/common/installer/productInstaller';
import { InterpreterPathService } from '../../client/common/interpreterPathService';
import { BrowserService } from '../../client/common/net/browser';
import { HttpClient } from '../../client/common/net/httpClient';
import { NugetService } from '../../client/common/nuget/nugetService';
import { INugetService } from '../../client/common/nuget/types';
import { PersistentStateFactory } from '../../client/common/persistentState';
import { PathUtils } from '../../client/common/platform/pathUtils';
import { CurrentProcess } from '../../client/common/process/currentProcess';
import { registerTypes } from '../../client/common/serviceRegistry';
import { TerminalActivator } from '../../client/common/terminal/activator';
import { PowershellTerminalActivationFailedHandler } from '../../client/common/terminal/activator/powershellFailedHandler';
import { Bash } from '../../client/common/terminal/environmentActivationProviders/bash';
import { CommandPromptAndPowerShell } from '../../client/common/terminal/environmentActivationProviders/commandPrompt';
import { CondaActivationCommandProvider } from '../../client/common/terminal/environmentActivationProviders/condaActivationProvider';
import { PipEnvActivationCommandProvider } from '../../client/common/terminal/environmentActivationProviders/pipEnvActivationProvider';
import { PyEnvActivationCommandProvider } from '../../client/common/terminal/environmentActivationProviders/pyenvActivationProvider';
import { TerminalServiceFactory } from '../../client/common/terminal/factory';
import { TerminalHelper } from '../../client/common/terminal/helper';
import { SettingsShellDetector } from '../../client/common/terminal/shellDetectors/settingsShellDetector';
import { TerminalNameShellDetector } from '../../client/common/terminal/shellDetectors/terminalNameShellDetector';
import { UserEnvironmentShellDetector } from '../../client/common/terminal/shellDetectors/userEnvironmentShellDetector';
import { VSCEnvironmentShellDetector } from '../../client/common/terminal/shellDetectors/vscEnvironmentShellDetector';
import {
IShellDetector,
ITerminalActivationCommandProvider,
ITerminalActivationHandler,
ITerminalActivator,
ITerminalHelper,
ITerminalServiceFactory,
TerminalActivationProviders
} from '../../client/common/terminal/types';
import {
IAsyncDisposableRegistry,
IBrowserService,
IConfigurationService,
ICryptoUtils,
ICurrentProcess,
IEditorUtils,
IExperimentsManager,
IExtensions,
IFeatureDeprecationManager,
IHttpClient,
IInstaller,
IInterpreterPathService,
IPathUtils,
IPersistentStateFactory,
IRandom
} from '../../client/common/types';
import { IMultiStepInputFactory, MultiStepInputFactory } from '../../client/common/utils/multiStepInput';
import { Random } from '../../client/common/utils/random';
import { LiveShareApi } from '../../client/datascience/liveshare/liveshare';
import { IServiceManager } from '../../client/ioc/types';
import { ImportTracker } from '../../client/telemetry/importTracker';
import { IImportTracker } from '../../client/telemetry/types';
suite('Common - Service Registry', () => {
test('Registrations', () => {
const serviceManager = typemoq.Mock.ofType<IServiceManager>();
[
[IActiveResourceService, ActiveResourceService],
[IInterpreterPathService, InterpreterPathService],
[IExtensions, Extensions],
[IRandom, Random],
[IPersistentStateFactory, PersistentStateFactory],
[ITerminalServiceFactory, TerminalServiceFactory],
[IPathUtils, PathUtils],
[IApplicationShell, ApplicationShell],
[ICurrentProcess, CurrentProcess],
[IInstaller, ProductInstaller],
[ICommandManager, CommandManager],
[IConfigurationService, ConfigurationService],
[IWorkspaceService, WorkspaceService],
[IDocumentManager, DocumentManager],
[ITerminalManager, TerminalManager],
[IDebugService, DebugService],
[IApplicationEnvironment, ApplicationEnvironment],
[ILanguageService, LanguageService],
[IBrowserService, BrowserService],
[IHttpClient, HttpClient],
[IEditorUtils, EditorUtils],
[INugetService, NugetService],
[ITerminalActivator, TerminalActivator],
[ITerminalActivationHandler, PowershellTerminalActivationFailedHandler],
[ILiveShareApi, LiveShareApi],
[ICryptoUtils, CryptoUtils],
[IExperimentsManager, ExperimentsManager],
[ITerminalHelper, TerminalHelper],
[ITerminalActivationCommandProvider, PyEnvActivationCommandProvider, TerminalActivationProviders.pyenv],
[ITerminalActivationCommandProvider, Bash, TerminalActivationProviders.bashCShellFish],
[
ITerminalActivationCommandProvider,
CommandPromptAndPowerShell,
TerminalActivationProviders.commandPromptAndPowerShell
],
[ITerminalActivationCommandProvider, CondaActivationCommandProvider, TerminalActivationProviders.conda],
[ITerminalActivationCommandProvider, PipEnvActivationCommandProvider, TerminalActivationProviders.pipenv],
[IFeatureDeprecationManager, FeatureDeprecationManager],
[IAsyncDisposableRegistry, AsyncDisposableRegistry],
[IMultiStepInputFactory, MultiStepInputFactory],
[IImportTracker, ImportTracker],
[IShellDetector, TerminalNameShellDetector],
[IShellDetector, SettingsShellDetector],
[IShellDetector, UserEnvironmentShellDetector],
[IShellDetector, VSCEnvironmentShellDetector],
[IInsiderExtensionPrompt, InsidersExtensionPrompt],
[IExtensionSingleActivationService, InsidersExtensionService],
[IExtensionChannelService, ExtensionChannelService],
[IExtensionChannelRule, ExtensionInsidersOffChannelRule, ExtensionChannel.off],
[IExtensionChannelRule, ExtensionInsidersDailyChannelRule, ExtensionChannel.daily],
[IExtensionChannelRule, ExtensionInsidersWeeklyChannelRule, ExtensionChannel.weekly]
].forEach((mapping) => {
if (mapping.length === 2) {
serviceManager
.setup((s) =>
s.addSingleton(
typemoq.It.isValue(mapping[0] as any),
typemoq.It.is((value) => mapping[1] === value)
)
)
.verifiable(typemoq.Times.atLeastOnce());
} else {
serviceManager
.setup((s) =>
s.addSingleton(
typemoq.It.isValue(mapping[0] as any),
typemoq.It.isAny(),
typemoq.It.isValue(mapping[2] as any)
)
)
.callback((_, cls) => expect(cls).to.equal(mapping[1]))
.verifiable(typemoq.Times.once());
}
});
registerTypes(serviceManager.object);
serviceManager.verifyAll();
});
});