Exemplo n.º 1
0
        public void ProjectMenuItemCallback()
        {
            // Create the package
            IVsPackage package = new VSCopyLocalPackage();

            Assert.IsNotNull(package, "The object does not implement IVsPackage");

            // Create a basic service provider
            OleServiceProvider serviceProvider = OleServiceProvider.CreateOleServiceProviderWithBasicServices();

            // Create a UIShell service mock and proffer the service so that it can called from the ProjectMenuItemCallback method
            BaseMock uishellMock = UIShellServiceMock.GetUiShellInstance();

            serviceProvider.AddService(typeof(SVsUIShell), uishellMock, true);

            // Site the package
            Assert.AreEqual(0, package.SetSite(serviceProvider), "SetSite did not return S_OK");

            //Invoke private method on package class and observe that the method does not throw
            MethodInfo info = package.GetType().GetMethod("ProjectMenuItemCallback", BindingFlags.Instance | BindingFlags.NonPublic);

            Assert.IsNotNull(info, "Failed to get the private method ProjectMenuItemCallback throug refplection");
            info.Invoke(package, new object[] { null, null });

            //Clean up services
            serviceProvider.RemoveService(typeof(SVsUIShell));
        }
Exemplo n.º 2
0
        public void InitializeMenuCommand()
        {
            // Create the package
            IVsPackage package = new VSCopyLocalPackage();

            Assert.IsNotNull(package, "The object does not implement IVsPackage");

            // Create a basic service provider
            OleServiceProvider serviceProvider = OleServiceProvider.CreateOleServiceProviderWithBasicServices();

            // Site the package
            Assert.AreEqual(0, package.SetSite(serviceProvider), "SetSite did not return S_OK");

            //Verify that the menu command can be found
            var        menuCommandID = new CommandID(GuidList.GuidVSCopyLocalCmdSet, (int)PkgCmdIDList.CmdidProjectCommand);
            MethodInfo info          = typeof(Package).GetMethod("GetService", BindingFlags.Instance | BindingFlags.NonPublic);

            Assert.IsNotNull(info);
            OleMenuCommandService mcs = info.Invoke(package, new object[] { (typeof(IMenuCommandService)) }) as OleMenuCommandService;

            Assert.IsNotNull(mcs.FindCommand(menuCommandID));
        }