using System; using System.Text; using System.Collections.Generic; using System.Linq; using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.VSSDK.Tools.VsIdeTesting; using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.Shell; using EnvDTE; namespace VSPackageInstall_IntegrationTests { /// /// Integration test for package validation /// [TestClass] public class PackageTest { private delegate void ThreadInvoker(); private TestContext testContextInstance; /// ///Gets or sets the test context which provides ///information about and functionality for the current test run. /// public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } [TestMethod] [HostType("VS IDE")] public void PackageLoadTest() { UIThreadInvoker.Invoke((ThreadInvoker)delegate() { //Get the Shell Service IVsShell shellService = VsIdeTestHostContext.ServiceProvider.GetService(typeof(SVsShell)) as IVsShell; Assert.IsNotNull(shellService); //Validate package load IVsPackage package; Guid packageGuid = new Guid(VitaliiGanzha.VSPackageInstall.GuidList.guidVSPackageInstallPkgString); Assert.IsTrue(0 == shellService.LoadPackage(ref packageGuid, out package)); Assert.IsNotNull(package, "Package failed to load"); }); } } }