/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ 'use strict'; import { TPromise } from 'vs/base/common/winjs.base'; import { EventEmitter } from 'vs/base/common/eventEmitter'; import { getConfigurationKeys } from 'vs/platform/configuration/common/model'; import { IConfigurationService, getConfigurationValue, IConfigurationValue, IConfigurationKeys, IConfigurationValues, IConfigurationData, Configuration, ConfigurationModel } from 'vs/platform/configuration/common/configuration'; export class TestConfigurationService extends EventEmitter implements IConfigurationService { public _serviceBrand: any; private configuration = Object.create(null); public reloadConfiguration(section?: string): TPromise { return TPromise.as(this.getConfiguration()); } public getConfiguration(): any { return this.configuration; } public getConfigurationData(): IConfigurationData { return new Configuration(new ConfigurationModel(), new ConfigurationModel(this.configuration)).toData(); } public setUserConfiguration(key: any, value: any): Thenable { this.configuration[key] = value; return TPromise.as(null); } public onDidUpdateConfiguration() { return { dispose() { } }; } public lookup(key: string): IConfigurationValue { return { value: getConfigurationValue(this.getConfiguration(), key), default: getConfigurationValue(this.getConfiguration(), key), user: getConfigurationValue(this.getConfiguration(), key), workspace: null, folder: null }; } public keys(): IConfigurationKeys { return { default: getConfigurationKeys(), user: Object.keys(this.configuration), workspace: [], folder: [] }; } public values(): IConfigurationValues { return {}; } }