SQL Operations Studio Public Preview 1 (0.23) release source code

This commit is contained in:
Karl Burtram
2017-11-09 14:30:27 -08:00
parent b88ecb8d93
commit 3cdac41339
8829 changed files with 759707 additions and 286 deletions

View File

@@ -0,0 +1,90 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as assert from 'assert';
import { IDisposable, dispose, ReferenceCollection } from 'vs/base/common/lifecycle';
class Disposable implements IDisposable {
isDisposed = false;
dispose() { this.isDisposed = true; }
}
suite('Lifecycle', () => {
test('dispose single disposable', () => {
const disposable = new Disposable();
assert(!disposable.isDisposed);
dispose(disposable);
assert(disposable.isDisposed);
});
test('dispose disposable array', () => {
const disposable = new Disposable();
const disposable2 = new Disposable();
assert(!disposable.isDisposed);
assert(!disposable2.isDisposed);
dispose([disposable, disposable2]);
assert(disposable.isDisposed);
assert(disposable2.isDisposed);
});
test('dispose disposables', () => {
const disposable = new Disposable();
const disposable2 = new Disposable();
assert(!disposable.isDisposed);
assert(!disposable2.isDisposed);
dispose(disposable, disposable2);
assert(disposable.isDisposed);
assert(disposable2.isDisposed);
});
});
suite('Reference Collection', () => {
class Collection extends ReferenceCollection<number> {
private _count = 0;
get count() { return this._count; }
protected createReferencedObject(key: string): number { this._count++; return key.length; }
protected destroyReferencedObject(object: number): void { this._count--; }
}
test('simple', () => {
const collection = new Collection();
const ref1 = collection.acquire('test');
assert(ref1);
assert.equal(ref1.object, 4);
assert.equal(collection.count, 1);
ref1.dispose();
assert.equal(collection.count, 0);
const ref2 = collection.acquire('test');
const ref3 = collection.acquire('test');
assert.equal(ref2.object, ref3.object);
assert.equal(collection.count, 1);
const ref4 = collection.acquire('monkey');
assert.equal(ref4.object, 6);
assert.equal(collection.count, 2);
ref2.dispose();
assert.equal(collection.count, 2);
ref3.dispose();
assert.equal(collection.count, 1);
ref4.dispose();
assert.equal(collection.count, 0);
});
});