Inheritance: MonoDevelop.Projects.Extensions.ProjectTypeNode
        public async Task FlavorLoadSaveExtendedPropertiesWithUnknownProperty()
        {
            // Unknown data should be kept in the file

            string projFile    = Util.GetSampleProject("extended-project-properties", "test-unknown-data.myproj");
            string projectXml1 = File.ReadAllText(projFile);

            var tn = new MyEmptyProjectTypeNode();
            var fn = new CustomItemNode <FlavorWithData> ();

            MSBuildProjectService.RegisterCustomItemType(tn);
            WorkspaceObject.RegisterCustomExtension(fn);
            try {
                var p = await Services.ProjectService.ReadSolutionItem(Util.GetMonitor(), projFile);

                Assert.IsInstanceOf <MyEmptyProject> (p);
                var mp = (MyEmptyProject)p;

                var f = mp.GetFlavor <FlavorWithData> ();
                Assert.NotNull(f.Data);
                Assert.AreEqual(f.Data.Foo, "bar");
                Assert.AreEqual(f.SimpleData, "Test");

                await mp.SaveAsync(Util.GetMonitor());

                string projectXml2 = File.ReadAllText(projFile);
                Assert.AreEqual(projectXml1, projectXml2);

                p.Dispose();
            } finally {
                MSBuildProjectService.UnregisterCustomItemType(tn);
                WorkspaceObject.UnregisterCustomExtension(fn);
            }
        }
        public async Task FlavorLoadExtendedProperties_InitialEmptyGroup()
        {
            // Check that data load works when it is not defined in the main group
            // Test for BXC 41774.
            string projFile = Util.GetSampleProject("extended-project-properties", "test-data-empty-group.myproj");

            var tn = new MyEmptyProjectTypeNode();
            var fn = new CustomItemNode <FlavorWithData> ();

            MSBuildProjectService.RegisterCustomItemType(tn);
            WorkspaceObject.RegisterCustomExtension(fn);
            try {
                var p = await Services.ProjectService.ReadSolutionItem(Util.GetMonitor(), projFile);

                Assert.IsInstanceOf <MyEmptyProject> (p);
                var mp = (MyEmptyProject)p;

                var f = mp.GetFlavor <FlavorWithData> ();
                Assert.NotNull(f.Data);
                Assert.AreEqual(f.Data.Foo, "bar");
                Assert.AreEqual(f.SimpleData, "Test");
                p.Dispose();
            } finally {
                MSBuildProjectService.UnregisterCustomItemType(tn);
                WorkspaceObject.UnregisterCustomExtension(fn);
            }
        }
Beispiel #3
0
		public async Task FlavorRemoveExtendedPropertiesWithUnknownProperty ()
		{
			// Unknown data should be kept in the file

			string projFile = Util.GetSampleProject ("extended-project-properties", "test-unknown-data.myproj");

			var tn = new MyEmptyProjectTypeNode ();
			var fn = new CustomItemNode<FlavorWithData> ();
			MSBuildProjectService.RegisterCustomItemType (tn);
			WorkspaceObject.RegisterCustomExtension (fn);
			try {
				var p = await Services.ProjectService.ReadSolutionItem (Util.GetMonitor (), projFile);
				Assert.IsInstanceOf<MyEmptyProject> (p);
				var mp = (MyEmptyProject)p;

				var f = mp.GetFlavor<FlavorWithData> ();
				Assert.NotNull (f.Data);
				Assert.AreEqual (f.Data.Foo, "bar");
				Assert.AreEqual (f.SimpleData, "Test");

				f.Data = null;

				await mp.SaveAsync (Util.GetMonitor ());

				string projectXml1 = File.ReadAllText (Util.GetSampleProject ("extended-project-properties", "test-extra-data.myproj"));

				string projectXml2 = File.ReadAllText (projFile);
				Assert.AreEqual (projectXml1, projectXml2);

			} finally {
				MSBuildProjectService.UnregisterCustomItemType (tn);
				WorkspaceObject.UnregisterCustomExtension (fn);
			}
		}
Beispiel #4
0
		public async Task FlavorLoadExtendedProperties_InitialEmptyGroup ()
		{
			// Check that data load works when it is not defined in the main group
			// Test for BXC 41774.
			string projFile = Util.GetSampleProject ("extended-project-properties", "test-data-empty-group.myproj");

			var tn = new MyEmptyProjectTypeNode ();
			var fn = new CustomItemNode<FlavorWithData> ();
			MSBuildProjectService.RegisterCustomItemType (tn);
			WorkspaceObject.RegisterCustomExtension (fn);
			try {
				var p = await Services.ProjectService.ReadSolutionItem (Util.GetMonitor (), projFile);
				Assert.IsInstanceOf<MyEmptyProject> (p);
				var mp = (MyEmptyProject)p;

				var f = mp.GetFlavor<FlavorWithData> ();
				Assert.NotNull (f.Data);
				Assert.AreEqual (f.Data.Foo, "bar");
				Assert.AreEqual (f.SimpleData, "Test");
			} finally {
				MSBuildProjectService.UnregisterCustomItemType (tn);
				WorkspaceObject.UnregisterCustomExtension (fn);
			}
		}