// // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. // using Microsoft.SqlServer.Management.Common; using Microsoft.SqlServer.Management.Smo; namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel { /// /// Internal for testing purposes only. This class provides wrapper functionality /// over SMO objects in order to facilitate unit testing /// internal class SmoWrapper { /// /// Creates instance of from provided instance. /// /// Server connection instance. /// Server instance. public virtual Server CreateServer(ServerConnection serverConn) { return serverConn == null ? null : new Server(serverConn); } /// /// Checks if connection is open on the instance. /// /// SMO Object containing connection context. /// True if connection is open, otherwise false. public virtual bool IsConnectionOpen(SmoObjectBase smoObj) { SqlSmoObject sqlObj = smoObj as SqlSmoObject; return sqlObj != null && sqlObj.ExecutionManager != null && sqlObj.ExecutionManager.ConnectionContext != null && sqlObj.ExecutionManager.ConnectionContext.IsOpen; } /// /// Opens connection on the connection context of instance. /// /// SMO Object containing connection context. public virtual void OpenConnection(SmoObjectBase smoObj) { SqlSmoObject sqlObj = smoObj as SqlSmoObject; if (sqlObj != null && sqlObj.ExecutionManager != null && sqlObj.ExecutionManager.ConnectionContext != null) { sqlObj.ExecutionManager.ConnectionContext.Connect(); } } } }