예제 #1
0
        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);
        }
예제 #2
0
        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);
            }
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        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);
            }
        }