protected virtual void MockServices() { serviceProvider = Microsoft.VsSDK.UnitTestLibrary.OleServiceProvider.CreateOleServiceProviderWithBasicServices(); // Add solution Support BaseMock solution = MockServicesProvider.GetSolutionFactoryInstance(); serviceProvider.AddService(typeof(IVsSolution), solution, false); //Add site support for ILocalRegistry BaseMock localRegistry = MockServicesProvider.GetLocalRegistryInstance(); serviceProvider.AddService(typeof(SLocalRegistry), (ILocalRegistry)localRegistry, false); // Add site support for UI Shell BaseMock uiShell = MockServicesProvider.GetUiShellInstance0(); serviceProvider.AddService(typeof(SVsUIShell), uiShell, false); serviceProvider.AddService(typeof(SVsUIShellOpenDocument), (IVsUIShellOpenDocument)uiShell, false); // Add site support for RegisterProjectTypes BaseMock mock = MockServicesProvider.GetRegisterProjectInstance(); serviceProvider.AddService(typeof(SVsRegisterProjectTypes), mock, false); // Add site support for VsShell BaseMock vsShell = MockServicesProvider.GetVsShellInstance0(); serviceProvider.AddService(typeof(SVsShell), vsShell, false); // Add site support for SolutionBuildManager service BaseMock solutionBuildManager = MockServicesProvider.GetSolutionBuildManagerInstance0(); serviceProvider.AddService(typeof(SVsSolutionBuildManager), solutionBuildManager, false); // SVsFileChangeEx support BaseMock fileChangeEx = MockServicesProvider.GetIVsFileChangeEx(); serviceProvider.AddService(typeof(SVsFileChangeEx), fileChangeEx, false); serviceProvider.AddService(typeof(ObjectExtenders), MockServicesProvider.GetObjectExtenders(), false); }
public void GeneralPropertyPageTestInitialize() { testString = "This is a test string"; // Create a basic service provider serviceProvider = Microsoft.VsSDK.UnitTestLibrary.OleServiceProvider.CreateOleServiceProviderWithBasicServices(); AddBasicSiteSupport(serviceProvider); // Initialize GeneralPropertyPage instance generalPropertyPage = new GeneralPropertyPage(); gppAccessor = new VisualStudio_Project_Samples_GeneralPropertyPageAccessor(generalPropertyPage); // Initialize ProjectPackage context projectPackage = new NestedProjectPackage(); ((IVsPackage)projectPackage).SetSite(serviceProvider); // prepare the factory projectFactory = new NestedProjectFactoryFake(projectPackage); //set the build engine and build project on the factory object FieldInfo buildEngine = typeof(ProjectFactory).GetField("buildEngine", BindingFlags.Instance | BindingFlags.NonPublic); buildEngine.SetValue(projectFactory, MSBuild.Engine.GlobalEngine); MSBuild.Project msbuildproject = MSBuild.Engine.GlobalEngine.CreateNewProject(); FieldInfo buildProject = typeof(ProjectFactory).GetField("buildProject", BindingFlags.Instance | BindingFlags.NonPublic); buildProject.SetValue(projectFactory, msbuildproject); //Create the project object using the projectfactory and load the project int canCreate; if (VSConstants.S_OK == ((IVsProjectFactory)projectFactory).CanCreateProject(fullPathToProjectFile, 2, out canCreate)) { MethodInfo preCreateForOuter = typeof(NestedProjectFactory).GetMethod("PreCreateForOuter", BindingFlags.Instance | BindingFlags.NonPublic); Assert.IsNotNull(preCreateForOuter, "failed to get the PreCreateForOuter method info object from NestedProjectFactory type"); projectNode = (NesteProjectNodeFake)preCreateForOuter.Invoke(projectFactory, new object[] { IntPtr.Zero }); Assert.IsNotNull(projectNode, "Failed to create the projectnode object"); Guid iidProject = new Guid(); int pfCanceled; projectNode.Load(fullPathToProjectFile, "", "", 2, ref iidProject, out pfCanceled); } }
public static void AddBasicSiteSupport(Microsoft.VsSDK.UnitTestLibrary.OleServiceProvider serviceProvider) { if (serviceProvider == null) { throw new ArgumentNullException("serviceProvider"); } // Add solution Support BaseMock solution = MockServicesProvider.GetSolutionFactoryInstance(); serviceProvider.AddService(typeof(IVsSolution), solution, false); //Add site support for ILocalRegistry BaseMock localRegistry = MockServicesProvider.GetLocalRegistryInstance(); serviceProvider.AddService(typeof(SLocalRegistry), (ILocalRegistry)localRegistry, false); // Add site support for UI Shell BaseMock uiShell = MockServicesProvider.GetUiShellInstance0(); serviceProvider.AddService(typeof(SVsUIShell), uiShell, false); serviceProvider.AddService(typeof(SVsUIShellOpenDocument), (IVsUIShellOpenDocument)uiShell, false); // Add site support for RegisterProjectTypes BaseMock mock = MockServicesProvider.GetRegisterProjectInstance(); serviceProvider.AddService(typeof(SVsRegisterProjectTypes), mock, false); // Add site support for VsShell BaseMock vsShell = MockServicesProvider.GetVsShellInstance0(); serviceProvider.AddService(typeof(SVsShell), vsShell, false); // Add site support for SolutionBuildManager service BaseMock solutionBuildManager = MockServicesProvider.GetSolutionBuildManagerInstance0(); serviceProvider.AddService(typeof(SVsSolutionBuildManager), solutionBuildManager, false); }
protected virtual void MockServices() { serviceProvider = Microsoft.VsSDK.UnitTestLibrary.OleServiceProvider.CreateOleServiceProviderWithBasicServices(); // Add solution Support BaseMock solution = MockServicesProvider.GetSolutionFactoryInstance(); serviceProvider.AddService(typeof(IVsSolution), solution, false); //Add site support for ILocalRegistry BaseMock localRegistry = MockServicesProvider.GetLocalRegistryInstance(); serviceProvider.AddService(typeof(SLocalRegistry), (ILocalRegistry)localRegistry, false); // Add site support for UI Shell BaseMock uiShell = MockServicesProvider.GetUiShellInstance0(); serviceProvider.AddService(typeof(SVsUIShell), uiShell, false); serviceProvider.AddService(typeof(SVsUIShellOpenDocument), (IVsUIShellOpenDocument)uiShell, false); // Add site support for RegisterProjectTypes BaseMock mock = MockServicesProvider.GetRegisterProjectInstance(); serviceProvider.AddService(typeof(SVsRegisterProjectTypes), mock, false); // Add site support for VsShell BaseMock vsShell = MockServicesProvider.GetVsShellInstance0(); serviceProvider.AddService(typeof(SVsShell), vsShell, false); // Add site support for SolutionBuildManager service BaseMock solutionBuildManager = MockServicesProvider.GetSolutionBuildManagerInstance0(); serviceProvider.AddService(typeof(SVsSolutionBuildManager), solutionBuildManager, false); // SVsFileChangeEx support BaseMock fileChangeEx = MockServicesProvider.GetIVsFileChangeEx(); serviceProvider.AddService(typeof(SVsFileChangeEx), fileChangeEx, false); }
public void GeneralPropertyPageTestInitialize() { testString = "This is a test string"; // Create a basic service provider serviceProvider = Microsoft.VsSDK.UnitTestLibrary.OleServiceProvider.CreateOleServiceProviderWithBasicServices(); AddBasicSiteSupport(serviceProvider); // Initialize GeneralPropertyPage instance generalPropertyPage = new GeneralPropertyPage(); gppAccessor = new VisualStudio_Project_Samples_GeneralPropertyPageAccessor(generalPropertyPage); // Initialize ProjectPackage context projectPackage = new NestedProjectPackage(); ((IVsPackage)projectPackage).SetSite(serviceProvider); // prepare the factory projectFactory = new NestedProjectFactoryFake(projectPackage); //set the build engine and build project on the factory object FieldInfo buildEngine = typeof(ProjectFactory).GetField("buildEngine", BindingFlags.Instance | BindingFlags.NonPublic); buildEngine.SetValue(projectFactory, MSBuild.Engine.GlobalEngine); MSBuild.Project msbuildproject = MSBuild.Engine.GlobalEngine.CreateNewProject(); FieldInfo buildProject = typeof(ProjectFactory).GetField("buildProject", BindingFlags.Instance | BindingFlags.NonPublic); buildProject.SetValue(projectFactory, msbuildproject); //Create the project object using the projectfactory and load the project int canCreate; if(VSConstants.S_OK == ((IVsProjectFactory)projectFactory).CanCreateProject(fullPathToProjectFile, 2, out canCreate)) { MethodInfo preCreateForOuter = typeof(NestedProjectFactory).GetMethod("PreCreateForOuter", BindingFlags.Instance | BindingFlags.NonPublic); Assert.IsNotNull(preCreateForOuter, "failed to get the PreCreateForOuter method info object from NestedProjectFactory type"); projectNode = (NesteProjectNodeFake)preCreateForOuter.Invoke(projectFactory, new object[] { IntPtr.Zero }); Assert.IsNotNull(projectNode, "Failed to create the projectnode object"); Guid iidProject = new Guid(); int pfCanceled; projectNode.Load(fullPathToProjectFile, "", "", 2, ref iidProject, out pfCanceled); } }