public void ShowToolwindowNegativeTest() { IVsPackage package = new ReferenceCheckerPackage() as IVsPackage; // Create a basic service provider OleServiceProvider serviceProvider = OleServiceProvider.CreateOleServiceProviderWithBasicServices(); //Add uishell service that knows how to create a toolwindow BaseMock uiShellService = UIShellServiceMock.GetUiShellInstanceCreateToolWinReturnsNull(); serviceProvider.AddService( typeof( SVsUIShell ), uiShellService, false ); // Site the package Assert.AreEqual( 0, package.SetSite( serviceProvider ), "SetSite did not return S_OK" ); MethodInfo method = typeof( ReferenceCheckerPackage ).GetMethod( "ShowToolWindow", BindingFlags.NonPublic | BindingFlags.Instance ); //Invoke thows TargetInvocationException, but we want it's inner Exception thrown by ShowToolWindow, InvalidOperationException. try { object result = method.Invoke( package, new object[] { null, null } ); } catch ( Exception e ) { throw e.InnerException; } }
public void ValidateToolWindowShown() { IVsPackage package = new ReferenceCheckerPackage() as IVsPackage; // Create a basic service provider OleServiceProvider serviceProvider = OleServiceProvider.CreateOleServiceProviderWithBasicServices(); //Add uishell service that knows how to create a toolwindow BaseMock uiShellService = UIShellServiceMock.GetUiShellInstanceCreateToolWin(); serviceProvider.AddService( typeof( SVsUIShell ), uiShellService, false ); // Site the package Assert.AreEqual( 0, package.SetSite( serviceProvider ), "SetSite did not return S_OK" ); MethodInfo method = typeof( ReferenceCheckerPackage ).GetMethod( "ShowToolWindow", BindingFlags.NonPublic | BindingFlags.Instance ); object result = method.Invoke( package, new object[] { null, null } ); }
public void InitializeMenuCommand() { // Create the package IVsPackage package = new ReferenceCheckerPackage() as IVsPackage; 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 CommandID menuCommandID = new CommandID( CareEvolution.ReferenceChecker.GuidList.guidReferenceCheckerCmdSet, (int)CareEvolution.ReferenceChecker.PkgCmdIDList.cmdidCheckReferences ); System.Reflection.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 ) ); }
public void MenuItemCallback() { // Create the package IVsPackage package = new ReferenceCheckerPackage() as IVsPackage; 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 MenuItemCallback 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 System.Reflection.MethodInfo info = package.GetType().GetMethod( "MenuItemCallback", BindingFlags.Instance | BindingFlags.NonPublic ); Assert.IsNotNull( info, "Failed to get the private method MenuItemCallback throug refplection" ); info.Invoke( package, new object[] { null, null } ); //Clean up services serviceProvider.RemoveService( typeof( SVsUIShell ) ); }