Beispiel #1
0
        protected virtual void LoadProject()
        {
            // Prepare the package
            projectPackage = new NestedProjectPackage();
            ((IVsPackage)projectPackage).SetSite(serviceProvider);

            // prepare the factory
            projectFactory = new NestedProjectFactoryFake(projectPackage);
            this.SetMsbuildEngine(projectFactory);

            //Create the project object using the projectfactory and load the project
            int canCreate;

            if (VSConstants.S_OK == ((IVsProjectFactory)projectFactory).CanCreateProject(fullPathToProjectFile, (uint)__VSCREATEPROJFLAGS.CPF_OPENFILE, 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, "", "", (uint)__VSCREATEPROJFLAGS.CPF_OPENFILE, ref iidProject, out pfCanceled);
            }

            generalPropertyPage = new GeneralPropertyPage(projectNode);
        }
        public override void Initialize()
        {
            base.Initialize();

            generalPropertyPage = new GeneralPropertyPage();

            customProjectPackage = new CustomProjectPackage();
            ((IVsPackage)customProjectPackage).SetSite(serviceProvider);

            customProjectFactory = new MyCustomProjectFactory(customProjectPackage);

            base.SetMsbuildEngine(customProjectFactory);

            int canCreate;

            if (VSConstants.S_OK == ((IVsProjectFactory)customProjectFactory).CanCreateProject(projectFile, 2, out canCreate))
            {
                PrivateType   type = new PrivateType(typeof(MyCustomProjectFactory));
                PrivateObject obj  = new PrivateObject(customProjectFactory, type);
                projectNode = (MyCustomProjectNode)obj.Invoke("PreCreateForOuter", new object[] { IntPtr.Zero });

                Guid iidProject = new Guid();
                int  pfCanceled;
                projectNode.Load(projectFile, "", "", 2, ref iidProject, out pfCanceled);
            }
        }
Beispiel #3
0
        /// <summary>
        /// Runs after the test has run and to free resources obtained 
        /// by all the tests in the test class.
        /// </summary>
        // [TestCleanup()]
        public void Cleanup()
        {
            ((IVsPackage)projectPackage).SetSite(null);
            serviceProvider.Dispose();

            generalPropertyPage = null;
        }
Beispiel #4
0
        /// <summary>
        /// Runs after the test has run and to free resources obtained
        /// by all the tests in the test class.
        /// </summary>
        // [TestCleanup()]
        public void Cleanup()
        {
            ((IVsPackage)projectPackage).SetSite(null);
            serviceProvider.Dispose();

            generalPropertyPage = null;
        }
Beispiel #5
0
        public void DefaultNamespaceTest()
        {
            GeneralPropertyPage target = generalPropertyPage;

            target.DefaultNamespace = testString;
            Assert.AreEqual(testString, target.DefaultNamespace, "DefaultNamespace property value was not initialized by expected value;");
            Assert.IsTrue((VSConstants.S_OK == target.IsPageDirty()), "IsDirty status was unexpected after changing of the property of the tested object.");
        }
Beispiel #6
0
        public void ConstructorTest()
        {
            GeneralPropertyPage target = generalPropertyPage;

            target.Name = testString;
            Assert.AreEqual(testString, target.Name, target.ApplicationIcon,
                            "Name property value was not initialized by expected value in GeneralPropertyPage() constructor.");
        }
Beispiel #7
0
        public void AssemblyNameTest()
        {
            GeneralPropertyPage target = generalPropertyPage;

            target.AssemblyName = testString;
            Assert.AreEqual(testString, gppAccessor.assemblyName, target.ApplicationIcon,
                            "AssemblyName property value was not initialized by expected value.");
            Assert.IsTrue((VSConstants.S_OK == target.IsPageDirty()), "IsDirty status was unexpected after changing of the property of the tested object.");
        }
Beispiel #8
0
        public void ProjectFileTest()
        {
            PrepareProjectConfig();
            GeneralPropertyPage target = generalPropertyPage;

            // Project File Name must be equivalent with name of the currently loaded project
            Assert.AreEqual(Path.GetFileName(fullPathToProjectFile), target.ProjectFile,
                            "ProjectFile property value was initialized by unexpected path value.");
        }
Beispiel #9
0
        public void GetClassNameTest()
        {
            GeneralPropertyPage target = generalPropertyPage;
            string expectedClassName   = "Microsoft.VisualStudio.Project.Samples.NestedProject.GeneralPropertyPage";
            string actualClassName     = target.GetClassName();

            Assert.AreEqual(expectedClassName, actualClassName,
                            "GetClassName() method was returned unexpected Type FullName value.");
        }
Beispiel #10
0
        public void StartupObjectTest()
        {
            GeneralPropertyPage target = generalPropertyPage;

            target.StartupObject = testString;
            Assert.AreEqual(testString, gppAccessor.startupObject, target.StartupObject,
                            "StartupObject property value was not initialized by expected value.");
            Assert.IsTrue((VSConstants.S_OK == target.IsPageDirty()),
                          "IsDirty status was unexpected after changing of the property of the tested object.");
        }
Beispiel #11
0
        public void OutputFileWithLibraryTypeTest()
        {
            GeneralPropertyPage target = generalPropertyPage;

            gppAccessor.outputType = OutputType.Library;
            string expectedValue = target.AssemblyName + ".dll";

            Assert.AreEqual(expectedValue, target.OutputFile,
                            "OutputFile name was initialized by unexpected value for Library OutputType.");
        }
Beispiel #12
0
        public void OutputFileWithWinExeTypeTest()
        {
            GeneralPropertyPage target = generalPropertyPage;

            gppAccessor.outputType = OutputType.WinExe;
            string expectedValue = target.AssemblyName + ".exe";

            Assert.AreEqual(expectedValue, target.OutputFile,
                            "OutputFile name was initialized by unexpected value for WINEXE OutputType.");
        }
        public void TargetPlatformLocationTest()
        {
            GeneralPropertyPage target = generalPropertyPage;

            target.TargetPlatformLocation = testString;
            Assert.AreEqual(testString, target.TargetPlatformLocation,
                            "TargetPlatformLocation property value was not initialized by expected value.");
            Assert.IsTrue((VSConstants.S_OK == target.IsPageDirty()),
                          "IsDirty status was unexpected after changing of the property of the tested object.");
        }
        public void ConstructorTest()
        {
            GeneralPropertyPage page = generalPropertyPage;

            page.Name = expected;

            string actual = page.Name;

            Assert.AreEqual(expected, actual, "Name property value was not initialized by expected value in GeneralPropertyPage() constructor.");
        }
        private static void AssertOuputFile(GeneralPropertyPage page, string expectedAssemblyName, OutputType outputType)
        {
            FieldInfo outputTypeInfo = typeof(GeneralPropertyPage).GetField("outputType", BindingFlags.NonPublic | BindingFlags.Instance);

            outputTypeInfo.SetValue(page, outputType);
            Assert.AreEqual <string>(outputType.ToString(), outputTypeInfo.GetValue(page).ToString());
            string expectedOutputFile = expectedAssemblyName + PythonProjectNode.GetOuputExtension(outputType);

            Assert.AreEqual <string>(expectedOutputFile, page.OutputFile);
        }
        public void ApplyChangesNullableProjectMgrTest()
        {
            GeneralPropertyPage target = generalPropertyPage;

            // sets indirectly projectMgr to null
            target.SetObjects(0, null);
            int actual = gppAccessor.ApplyChanges();

            Assert.IsNull(target.ProjectMgr, "ProjectMgr instance was not initialized to null as it expected.");
            Assert.AreEqual(VSConstants.E_INVALIDARG, actual, "Method ApplyChanges() was returned unexpected value in case of uninitialized project instance.");
        }
Beispiel #17
0
        public void OutputTypeTest()
        {
            GeneralPropertyPage target          = generalPropertyPage;
            OutputType          expectedOutType = OutputType.Library;

            target.OutputType = expectedOutType;

            Assert.AreEqual(expectedOutType, target.OutputType,
                            "OutputType property value was initialized by unexpected value.");
            Assert.IsTrue((VSConstants.S_OK == target.IsPageDirty()),
                          "IsDirty status was unexpected after changing of the property of the tested object.");
        }
        public void TargetPlatformTest()
        {
            GeneralPropertyPage target = generalPropertyPage;
            PlatformType        expectedPlatformType = PlatformType.v2;

            target.TargetPlatform = expectedPlatformType;

            Assert.AreEqual(expectedPlatformType, target.TargetPlatform,
                            "TargetPlatform property value was not initialized by expected value.");
            Assert.IsTrue((VSConstants.S_OK == target.IsPageDirty()),
                          "IsDirty status was unexpected after changing of the property of the tested object.");
        }
Beispiel #19
0
        public void ProjectFolderTest()
        {
            PrepareProjectConfig();
            GeneralPropertyPage target = generalPropertyPage;

            string expectedProjectFolderPath = Path.GetDirectoryName(fullPathToProjectFile);

            expectedProjectFolderPath = Path.GetDirectoryName(expectedProjectFolderPath);

            // Project Folder path must be equivalent with path of the currently loaded project
            Assert.AreEqual(expectedProjectFolderPath, target.ProjectFolder,
                            "ProjectFolder property value was initialized by unexpected path value.");
        }
        public void VerifyOutPutFileNameProperty()
        {
            GeneralPropertyPage page = new GeneralPropertyPage();

            // Set the assemblyname
            string defaultAssemblyName = "Test";
            FieldInfo assemblyName = typeof(GeneralPropertyPage).GetField("assemblyName", BindingFlags.NonPublic | BindingFlags.Instance);
            assemblyName.SetValue(page, defaultAssemblyName);
            Assert.AreEqual<string>(defaultAssemblyName, assemblyName.GetValue(page).ToString());

            // Test that Output file (DefaultAssemblyName and Library) provides expected result
            AssertOuputFile(page, defaultAssemblyName, OutputType.Library);

            // Test that Output file (DefaultAssemblyName and WinExe) provides expected result
            AssertOuputFile(page, defaultAssemblyName, OutputType.WinExe);

            // Test that Output file (DefaultAssemblyName and Exe) provides expected result
            AssertOuputFile(page, defaultAssemblyName, OutputType.Exe);
        }
        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 void VerifyOutPutFileNameProperty()
        {
            GeneralPropertyPage page = new GeneralPropertyPage();

            // Set the assemblyname
            string    defaultAssemblyName = "Test";
            FieldInfo assemblyName        = typeof(GeneralPropertyPage).GetField("assemblyName", BindingFlags.NonPublic | BindingFlags.Instance);

            assemblyName.SetValue(page, defaultAssemblyName);
            Assert.AreEqual <string>(defaultAssemblyName, assemblyName.GetValue(page).ToString());

            // Test that Output file (DefaultAssemblyName and Library) provides expected result
            AssertOuputFile(page, defaultAssemblyName, OutputType.Library);

            // Test that Output file (DefaultAssemblyName and WinExe) provides expected result
            AssertOuputFile(page, defaultAssemblyName, OutputType.WinExe);

            // Test that Output file (DefaultAssemblyName and Exe) provides expected result
            AssertOuputFile(page, defaultAssemblyName, OutputType.Exe);
        }
Beispiel #23
0
        protected virtual void LoadProject()
        {
            generalPropertyPage = new GeneralPropertyPage();

            // Prepare the package
            projectPackage = new NestedProjectPackage();
            ((IVsPackage)projectPackage).SetSite(serviceProvider);

            // prepare the factory
            projectFactory = new NestedProjectFactoryFake(projectPackage);
            this.SetMsbuildEngine(projectFactory);

            //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);
            }
        }
Beispiel #24
0
 internal VisualStudio_Project_Samples_GeneralPropertyPageAccessor(GeneralPropertyPage target)
     : base(target, m_privateType)
 {
 }
Beispiel #25
0
 internal VisualStudio_Project_Samples_GeneralPropertyPageAccessor(GeneralPropertyPage target)
     :
     base(target, m_privateType)
 {
 }
        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);
            }
        }
 private static void AssertOuputFile(GeneralPropertyPage page, string expectedAssemblyName, OutputType outputType)
 {
     FieldInfo outputTypeInfo = typeof(GeneralPropertyPage).GetField("outputType", BindingFlags.NonPublic | BindingFlags.Instance);
     outputTypeInfo.SetValue(page, outputType);
     Assert.AreEqual<string>(outputType.ToString(), outputTypeInfo.GetValue(page).ToString());
     string expectedOutputFile = expectedAssemblyName + PythonProjectNode.GetOuputExtension(outputType);
     Assert.AreEqual<string>(expectedOutputFile, page.OutputFile);
 }