/*************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. This code is licensed under the Visual Studio SDK license terms. THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT. ***************************************************************************/ using System; using Microsoft.VisualStudio; using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VsSDK.UnitTestLibrary; namespace VSPackageInstall_UnitTests { static class UIShellServiceMock { private static GenericMockFactory uiShellFactory; #region UiShell Getters /// /// Returns an IVsUiShell that does not implement any methods /// /// internal static BaseMock GetUiShellInstance() { if (uiShellFactory == null) { uiShellFactory = new GenericMockFactory("UiShell", new Type[] { typeof(IVsUIShell), typeof(IVsUIShellOpenDocument) }); } BaseMock uiShell = uiShellFactory.GetInstance(); return uiShell; } /// /// Get an IVsUiShell that implements SetWaitCursor, SaveDocDataToFile, ShowMessageBox /// /// uishell mock internal static BaseMock GetUiShellInstance0() { BaseMock uiShell = GetUiShellInstance(); string name = string.Format("{0}.{1}", typeof(IVsUIShell).FullName, "SetWaitCursor"); uiShell.AddMethodCallback(name, new EventHandler(SetWaitCursorCallBack)); name = string.Format("{0}.{1}", typeof(IVsUIShell).FullName, "SaveDocDataToFile"); uiShell.AddMethodCallback(name, new EventHandler(SaveDocDataToFileCallBack)); name = string.Format("{0}.{1}", typeof(IVsUIShell).FullName, "ShowMessageBox"); uiShell.AddMethodCallback(name, new EventHandler(ShowMessageBoxCallBack)); return uiShell; } #endregion #region Callbacks private static void SetWaitCursorCallBack(object caller, CallbackArgs arguments) { arguments.ReturnValue = VSConstants.S_OK; } private static void SaveDocDataToFileCallBack(object caller, CallbackArgs arguments) { arguments.ReturnValue = VSConstants.S_OK; } private static void ShowMessageBoxCallBack(object caller, CallbackArgs arguments) { arguments.ReturnValue = VSConstants.S_OK; arguments.SetParameter(10, (int)System.Windows.Forms.DialogResult.Yes); } #endregion } }