Skip to content

Commit 4aa7935

Browse files
author
Benjamin Pasero
committed
tests - reduce code duplication
1 parent 11fd274 commit 4aa7935

23 files changed

Lines changed: 488 additions & 808 deletions

src/vs/workbench/contrib/backup/test/electron-browser/backupRestorer.test.ts

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,10 @@ import { URI } from 'vs/base/common/uri';
1212
import { createTextBufferFactory } from 'vs/editor/common/model/textModel';
1313
import { getRandomTestPath } from 'vs/base/test/node/testUtils';
1414
import { DefaultEndOfLine } from 'vs/editor/common/model';
15-
import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles';
1615
import { hashPath } from 'vs/workbench/services/backup/node/backupFileService';
1716
import { NativeBackupTracker } from 'vs/workbench/contrib/backup/electron-browser/backupTracker';
18-
import { TestTextFileService, workbenchInstantiationService } from 'vs/workbench/test/electron-browser/workbenchTestServices';
17+
import { workbenchInstantiationService } from 'vs/workbench/test/electron-browser/workbenchTestServices';
1918
import { TextFileEditorModelManager } from 'vs/workbench/services/textfile/common/textFileEditorModelManager';
20-
import { BackupRestorer } from 'vs/workbench/contrib/backup/common/backupRestorer';
2119
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
2220
import { EditorPart } from 'vs/workbench/browser/parts/editor/editorPart';
2321
import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService';
@@ -33,6 +31,8 @@ import { NodeTestBackupFileService } from 'vs/workbench/services/backup/test/ele
3331
import { dispose, IDisposable } from 'vs/base/common/lifecycle';
3432
import { Schemas } from 'vs/base/common/network';
3533
import { isEqual } from 'vs/base/common/resources';
34+
import { TestServiceAccessor } from 'vs/workbench/test/browser/workbenchTestServices';
35+
import { BackupRestorer } from 'vs/workbench/contrib/backup/common/backupRestorer';
3636

3737
const userdataDir = getRandomTestPath(os.tmpdir(), 'vsctests', 'backuprestorer');
3838
const backupHome = path.join(userdataDir, 'Backups');
@@ -51,15 +51,8 @@ class TestBackupRestorer extends BackupRestorer {
5151
}
5252
}
5353

54-
class ServiceAccessor {
55-
constructor(
56-
@ITextFileService public textFileService: TestTextFileService
57-
) {
58-
}
59-
}
60-
6154
suite('BackupRestorer', () => {
62-
let accessor: ServiceAccessor;
55+
let accessor: TestServiceAccessor;
6356

6457
let disposables: IDisposable[] = [];
6558

@@ -105,7 +98,7 @@ suite('BackupRestorer', () => {
10598
const editorService: EditorService = instantiationService.createInstance(EditorService);
10699
instantiationService.stub(IEditorService, editorService);
107100

108-
accessor = instantiationService.createInstance(ServiceAccessor);
101+
accessor = instantiationService.createInstance(TestServiceAccessor);
109102

110103
await part.whenRestored;
111104

src/vs/workbench/contrib/backup/test/electron-browser/backupTracker.test.ts

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,8 @@ import * as path from 'vs/base/common/path';
1010
import * as pfs from 'vs/base/node/pfs';
1111
import { URI } from 'vs/base/common/uri';
1212
import { getRandomTestPath } from 'vs/base/test/node/testUtils';
13-
import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles';
1413
import { hashPath } from 'vs/workbench/services/backup/node/backupFileService';
1514
import { NativeBackupTracker } from 'vs/workbench/contrib/backup/electron-browser/backupTracker';
16-
import { TestLifecycleService, TestFilesConfigurationService, TestContextService, TestFileService, TestFileDialogService } from 'vs/workbench/test/browser/workbenchTestServices';
1715
import { TextFileEditorModelManager } from 'vs/workbench/services/textfile/common/textFileEditorModelManager';
1816
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
1917
import { EditorPart } from 'vs/workbench/browser/parts/editor/editorPart';
@@ -32,16 +30,14 @@ import { toResource } from 'vs/base/test/common/utils';
3230
import { IFilesConfigurationService } from 'vs/workbench/services/filesConfiguration/common/filesConfigurationService';
3331
import { IWorkingCopyService } from 'vs/workbench/services/workingCopy/common/workingCopyService';
3432
import { ILogService } from 'vs/platform/log/common/log';
35-
import { HotExitConfiguration, IFileService } from 'vs/platform/files/common/files';
33+
import { HotExitConfiguration } from 'vs/platform/files/common/files';
3634
import { ShutdownReason, ILifecycleService, BeforeShutdownEvent } from 'vs/platform/lifecycle/common/lifecycle';
3735
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
3836
import { IFileDialogService, ConfirmResult, IDialogService } from 'vs/platform/dialogs/common/dialogs';
3937
import { IWorkspaceContextService, Workspace } from 'vs/platform/workspace/common/workspace';
4038
import { IElectronService } from 'vs/platform/electron/node/electron';
4139
import { BackupTracker } from 'vs/workbench/contrib/backup/common/backupTracker';
42-
import { ModelServiceImpl } from 'vs/editor/common/services/modelServiceImpl';
43-
import { IModelService } from 'vs/editor/common/services/modelService';
44-
import { TestTextFileService, TestElectronService, workbenchInstantiationService } from 'vs/workbench/test/electron-browser/workbenchTestServices';
40+
import { workbenchInstantiationService, TestServiceAccessor } from 'vs/workbench/test/electron-browser/workbenchTestServices';
4541
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
4642
import { UntitledTextEditorInput } from 'vs/workbench/services/untitled/common/untitledTextEditorInput';
4743

@@ -52,23 +48,6 @@ const workspacesJsonPath = path.join(backupHome, 'workspaces.json');
5248
const workspaceResource = URI.file(platform.isWindows ? 'c:\\workspace' : '/workspace');
5349
const workspaceBackupPath = path.join(backupHome, hashPath(workspaceResource));
5450

55-
class ServiceAccessor {
56-
constructor(
57-
@ILifecycleService public lifecycleService: TestLifecycleService,
58-
@ITextFileService public textFileService: TestTextFileService,
59-
@IFilesConfigurationService public filesConfigurationService: TestFilesConfigurationService,
60-
@IWorkspaceContextService public contextService: TestContextService,
61-
@IModelService public modelService: ModelServiceImpl,
62-
@IFileService public fileService: TestFileService,
63-
@IElectronService public electronService: TestElectronService,
64-
@IFileDialogService public fileDialogService: TestFileDialogService,
65-
@IBackupFileService public backupFileService: NodeTestBackupFileService,
66-
@IWorkingCopyService public workingCopyService: IWorkingCopyService,
67-
@IEditorService public editorService: IEditorService
68-
) {
69-
}
70-
}
71-
7251
class TestBackupTracker extends NativeBackupTracker {
7352

7453
constructor(
@@ -102,12 +81,12 @@ class BeforeShutdownEventImpl implements BeforeShutdownEvent {
10281
}
10382

10483
suite('BackupTracker', () => {
105-
let accessor: ServiceAccessor;
84+
let accessor: TestServiceAccessor;
10685
let disposables: IDisposable[] = [];
10786

10887
setup(async () => {
10988
const instantiationService = workbenchInstantiationService();
110-
accessor = instantiationService.createInstance(ServiceAccessor);
89+
accessor = instantiationService.createInstance(TestServiceAccessor);
11190

11291
disposables.push(Registry.as<IEditorRegistry>(EditorExtensions.Editors).registerEditor(
11392
EditorDescriptor.create(
@@ -134,7 +113,7 @@ suite('BackupTracker', () => {
134113
return pfs.rimraf(backupHome, pfs.RimRafMode.MOVE);
135114
});
136115

137-
async function createTracker(): Promise<[ServiceAccessor, EditorPart, BackupTracker, IInstantiationService]> {
116+
async function createTracker(): Promise<[TestServiceAccessor, EditorPart, BackupTracker, IInstantiationService]> {
138117
const backupFileService = new NodeTestBackupFileService(workspaceBackupPath);
139118
const instantiationService = workbenchInstantiationService();
140119
instantiationService.stub(IBackupFileService, backupFileService);
@@ -148,7 +127,7 @@ suite('BackupTracker', () => {
148127
const editorService: EditorService = instantiationService.createInstance(EditorService);
149128
instantiationService.stub(IEditorService, editorService);
150129

151-
accessor = instantiationService.createInstance(ServiceAccessor);
130+
accessor = instantiationService.createInstance(TestServiceAccessor);
152131

153132
await part.whenRestored;
154133

src/vs/workbench/contrib/codeEditor/test/browser/saveParticipant.test.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,23 @@ import * as assert from 'assert';
77
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
88
import { FinalNewLineParticipant, TrimFinalNewLinesParticipant } from 'vs/workbench/contrib/codeEditor/browser/saveParticipants';
99
import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService';
10-
import { workbenchInstantiationService, TestTextFileService } from 'vs/workbench/test/browser/workbenchTestServices';
10+
import { workbenchInstantiationService, TestServiceAccessor } from 'vs/workbench/test/browser/workbenchTestServices';
1111
import { toResource } from 'vs/base/test/common/utils';
12-
import { IModelService } from 'vs/editor/common/services/modelService';
1312
import { Range } from 'vs/editor/common/core/range';
1413
import { Selection } from 'vs/editor/common/core/selection';
1514
import { TextFileEditorModel } from 'vs/workbench/services/textfile/common/textFileEditorModel';
16-
import { ITextFileService, IResolvedTextFileEditorModel, snapshotToString } from 'vs/workbench/services/textfile/common/textfiles';
15+
import { IResolvedTextFileEditorModel, snapshotToString } from 'vs/workbench/services/textfile/common/textfiles';
1716
import { SaveReason } from 'vs/workbench/common/editor';
1817
import { TextFileEditorModelManager } from 'vs/workbench/services/textfile/common/textFileEditorModelManager';
1918

20-
class ServiceAccessor {
21-
constructor(@ITextFileService public textFileService: TestTextFileService, @IModelService public modelService: IModelService) {
22-
}
23-
}
24-
2519
suite('MainThreadSaveParticipant', function () {
2620

2721
let instantiationService: IInstantiationService;
28-
let accessor: ServiceAccessor;
22+
let accessor: TestServiceAccessor;
2923

3024
setup(() => {
3125
instantiationService = workbenchInstantiationService();
32-
accessor = instantiationService.createInstance(ServiceAccessor);
26+
accessor = instantiationService.createInstance(TestServiceAccessor);
3327
});
3428

3529
teardown(() => {

src/vs/workbench/contrib/files/test/browser/editorAutoSave.test.ts

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@ import * as assert from 'assert';
77
import { Event } from 'vs/base/common/event';
88
import { toResource } from 'vs/base/test/common/utils';
99
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
10-
import { TestFileService, TestFilesConfigurationService, TestEnvironmentService, workbenchInstantiationService } from 'vs/workbench/test/browser/workbenchTestServices';
11-
import { ITextFileService, IResolvedTextFileEditorModel, ITextFileEditorModel } from 'vs/workbench/services/textfile/common/textfiles';
12-
import { IFileService } from 'vs/platform/files/common/files';
10+
import { TestFilesConfigurationService, TestEnvironmentService, workbenchInstantiationService, TestServiceAccessor } from 'vs/workbench/test/browser/workbenchTestServices';
11+
import { IResolvedTextFileEditorModel, ITextFileEditorModel } from 'vs/workbench/services/textfile/common/textfiles';
1312
import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService';
1413
import { dispose, IDisposable } from 'vs/base/common/lifecycle';
1514
import { IEditorRegistry, EditorDescriptor, Extensions as EditorExtensions } from 'vs/workbench/browser/editor';
@@ -28,17 +27,6 @@ import { IFilesConfigurationService } from 'vs/workbench/services/filesConfigura
2827
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
2928
import { MockContextKeyService } from 'vs/platform/keybinding/test/common/mockKeybindingService';
3029

31-
class ServiceAccessor {
32-
constructor(
33-
@IEditorService public editorService: IEditorService,
34-
@IEditorGroupsService public editorGroupService: IEditorGroupsService,
35-
@ITextFileService public textFileService: ITextFileService,
36-
@IFileService public fileService: TestFileService,
37-
@IConfigurationService public configurationService: TestConfigurationService
38-
) {
39-
}
40-
}
41-
4230
suite('EditorAutoSave', () => {
4331

4432
let disposables: IDisposable[] = [];
@@ -81,7 +69,7 @@ suite('EditorAutoSave', () => {
8169
const editorService: EditorService = instantiationService.createInstance(EditorService);
8270
instantiationService.stub(IEditorService, editorService);
8371

84-
const accessor = instantiationService.createInstance(ServiceAccessor);
72+
const accessor = instantiationService.createInstance(TestServiceAccessor);
8573

8674
const editorAutoSave = instantiationService.createInstance(EditorAutoSave);
8775

src/vs/workbench/contrib/files/test/browser/fileEditorInput.test.ts

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,34 +7,23 @@ import * as assert from 'assert';
77
import { URI } from 'vs/base/common/uri';
88
import { toResource } from 'vs/base/test/common/utils';
99
import { FileEditorInput } from 'vs/workbench/contrib/files/common/editors/fileEditorInput';
10-
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
11-
import { workbenchInstantiationService, TestTextFileService } from 'vs/workbench/test/browser/workbenchTestServices';
10+
import { workbenchInstantiationService, TestServiceAccessor } from 'vs/workbench/test/browser/workbenchTestServices';
1211
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
1312
import { EncodingMode, Verbosity } from 'vs/workbench/common/editor';
14-
import { ITextFileService, TextFileOperationError, TextFileOperationResult } from 'vs/workbench/services/textfile/common/textfiles';
13+
import { TextFileOperationError, TextFileOperationResult } from 'vs/workbench/services/textfile/common/textfiles';
1514
import { FileOperationResult, FileOperationError } from 'vs/platform/files/common/files';
1615
import { TextFileEditorModel } from 'vs/workbench/services/textfile/common/textFileEditorModel';
17-
import { IModelService } from 'vs/editor/common/services/modelService';
1816
import { timeout } from 'vs/base/common/async';
1917
import { ModesRegistry, PLAINTEXT_MODE_ID } from 'vs/editor/common/modes/modesRegistry';
2018
import { DisposableStore } from 'vs/base/common/lifecycle';
2119

22-
class ServiceAccessor {
23-
constructor(
24-
@IEditorService public editorService: IEditorService,
25-
@ITextFileService public textFileService: TestTextFileService,
26-
@IModelService public modelService: IModelService
27-
) {
28-
}
29-
}
30-
3120
suite('Files - FileEditorInput', () => {
3221
let instantiationService: IInstantiationService;
33-
let accessor: ServiceAccessor;
22+
let accessor: TestServiceAccessor;
3423

3524
setup(() => {
3625
instantiationService = workbenchInstantiationService();
37-
accessor = instantiationService.createInstance(ServiceAccessor);
26+
accessor = instantiationService.createInstance(TestServiceAccessor);
3827
});
3928

4029
test('Basics', async function () {

src/vs/workbench/contrib/files/test/browser/fileEditorTracker.test.ts

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import { Event } from 'vs/base/common/event';
88
import { TextFileEditorTracker } from 'vs/workbench/contrib/files/browser/editors/textFileEditorTracker';
99
import { toResource } from 'vs/base/test/common/utils';
1010
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
11-
import { TestFileService, TestTextFileService, workbenchInstantiationService } from 'vs/workbench/test/browser/workbenchTestServices';
12-
import { ITextFileService, IResolvedTextFileEditorModel, snapshotToString } from 'vs/workbench/services/textfile/common/textfiles';
13-
import { FileChangesEvent, FileChangeType, IFileService } from 'vs/platform/files/common/files';
11+
import { workbenchInstantiationService, TestServiceAccessor } from 'vs/workbench/test/browser/workbenchTestServices';
12+
import { IResolvedTextFileEditorModel, snapshotToString } from 'vs/workbench/services/textfile/common/textfiles';
13+
import { FileChangesEvent, FileChangeType } from 'vs/platform/files/common/files';
1414
import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService';
1515
import { timeout } from 'vs/base/common/async';
1616
import { dispose, IDisposable } from 'vs/base/common/lifecycle';
@@ -26,16 +26,6 @@ import { EditorService } from 'vs/workbench/services/editor/browser/editorServic
2626
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
2727
import { UntitledTextEditorInput } from 'vs/workbench/services/untitled/common/untitledTextEditorInput';
2828

29-
class ServiceAccessor {
30-
constructor(
31-
@IEditorService public editorService: IEditorService,
32-
@IEditorGroupsService public editorGroupService: IEditorGroupsService,
33-
@ITextFileService public textFileService: TestTextFileService,
34-
@IFileService public fileService: TestFileService
35-
) {
36-
}
37-
}
38-
3929
suite('Files - TextFileEditorTracker', () => {
4030

4131
let disposables: IDisposable[] = [];
@@ -58,7 +48,7 @@ suite('Files - TextFileEditorTracker', () => {
5848

5949
test('file change event updates model', async function () {
6050
const instantiationService = workbenchInstantiationService();
61-
const accessor = instantiationService.createInstance(ServiceAccessor);
51+
const accessor = instantiationService.createInstance(TestServiceAccessor);
6252

6353
const tracker = instantiationService.createInstance(TextFileEditorTracker);
6454

@@ -82,7 +72,7 @@ suite('Files - TextFileEditorTracker', () => {
8272
(<TextFileEditorModelManager>accessor.textFileService.files).dispose();
8373
});
8474

85-
async function createTracker(): Promise<[EditorPart, ServiceAccessor, TextFileEditorTracker, IInstantiationService, IEditorService]> {
75+
async function createTracker(): Promise<[EditorPart, TestServiceAccessor, TextFileEditorTracker, IInstantiationService, IEditorService]> {
8676
const instantiationService = workbenchInstantiationService();
8777

8878
const part = instantiationService.createInstance(EditorPart);
@@ -94,7 +84,7 @@ suite('Files - TextFileEditorTracker', () => {
9484
const editorService: EditorService = instantiationService.createInstance(EditorService);
9585
instantiationService.stub(IEditorService, editorService);
9686

97-
const accessor = instantiationService.createInstance(ServiceAccessor);
87+
const accessor = instantiationService.createInstance(TestServiceAccessor);
9888

9989
await part.whenRestored;
10090

src/vs/workbench/contrib/files/test/browser/fileOnDiskProvider.test.ts

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,19 @@
55

66
import * as assert from 'assert';
77
import { URI } from 'vs/base/common/uri';
8-
import { workbenchInstantiationService, TestFileService } from 'vs/workbench/test/browser/workbenchTestServices';
8+
import { workbenchInstantiationService, TestServiceAccessor } from 'vs/workbench/test/browser/workbenchTestServices';
99
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
1010
import { TextFileContentProvider } from 'vs/workbench/contrib/files/common/files';
1111
import { snapshotToString } from 'vs/workbench/services/textfile/common/textfiles';
12-
import { IFileService } from 'vs/platform/files/common/files';
13-
14-
class ServiceAccessor {
15-
constructor(
16-
@IFileService public fileService: TestFileService
17-
) {
18-
}
19-
}
2012

2113
suite('Files - FileOnDiskContentProvider', () => {
2214

2315
let instantiationService: IInstantiationService;
24-
let accessor: ServiceAccessor;
16+
let accessor: TestServiceAccessor;
2517

2618
setup(() => {
2719
instantiationService = workbenchInstantiationService();
28-
accessor = instantiationService.createInstance(ServiceAccessor);
20+
accessor = instantiationService.createInstance(TestServiceAccessor);
2921
});
3022

3123
test('provideTextContent', async () => {

0 commit comments

Comments
 (0)