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); } }
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); } }
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); } }