public void ToolsVersionFallbackIfCurrentToolsVersionDoesNotExist_ProjectInstance() { ProjectCollection p = new ProjectCollection(); p.RemoveToolset(ObjectModelHelpers.MSBuildDefaultToolsVersion); MockLogger mockLogger = new MockLogger(); LoggingService service = (LoggingService)LoggingService.CreateLoggingService(LoggerMode.Synchronous, 1); service.RegisterLogger(mockLogger); bool success = false; Project project = new Project(XmlReader.Create(new StringReader(@"<Project ToolsVersion='4.0' xmlns='http://schemas.microsoft.com/developer/msbuild/2003'> <Target Name='Foo'> </Target> </Project>")), null /* no global properties */, null /* don't explicitly set the toolsversion */, p); ProjectInstance pi = new ProjectInstance(project.Xml, null /* no global properties */, null /* don't explicitly set the toolsversion */, p); Assert.AreEqual("4.0", pi.ToolsVersion); success = pi.Build(new ILogger[] { mockLogger }); Assert.IsTrue(success); mockLogger.AssertLogContains("\"4.0\""); mockLogger.AssertLogDoesntContain(ObjectModelHelpers.CleanupFileContents("\"msbuilddefaulttoolsversion\"")); }
public void ProjectCollectionChangedEvent() { ProjectCollection collection = new ProjectCollection(); bool dirtyRaised = false; ProjectCollectionChangedState expectedChange = ProjectCollectionChangedState.Loggers; collection.ProjectCollectionChanged += (sender, e) => { Assert.Same(collection, sender); Assert.Equal(expectedChange, e.Changed); dirtyRaised = true; }; Assert.False(dirtyRaised); expectedChange = ProjectCollectionChangedState.DisableMarkDirty; dirtyRaised = false; collection.DisableMarkDirty = true; // LEAVE THIS TRUE for rest of the test, to verify it doesn't suppress these events Assert.True(dirtyRaised); expectedChange = ProjectCollectionChangedState.IsBuildEnabled; dirtyRaised = false; collection.IsBuildEnabled = !collection.IsBuildEnabled; Assert.True(dirtyRaised); expectedChange = ProjectCollectionChangedState.OnlyLogCriticalEvents; dirtyRaised = false; collection.OnlyLogCriticalEvents = !collection.OnlyLogCriticalEvents; Assert.True(dirtyRaised); expectedChange = ProjectCollectionChangedState.SkipEvaluation; dirtyRaised = false; collection.SkipEvaluation = !collection.SkipEvaluation; Assert.True(dirtyRaised); expectedChange = ProjectCollectionChangedState.GlobalProperties; dirtyRaised = false; collection.SetGlobalProperty("a", "b"); Assert.True(dirtyRaised); expectedChange = ProjectCollectionChangedState.GlobalProperties; dirtyRaised = false; collection.RemoveGlobalProperty("a"); Assert.True(dirtyRaised); // Verify HostServices changes raise the event. expectedChange = ProjectCollectionChangedState.HostServices; dirtyRaised = false; collection.HostServices = new Execution.HostServices(); Assert.True(dirtyRaised); expectedChange = ProjectCollectionChangedState.Loggers; dirtyRaised = false; collection.RegisterLogger(new MockLogger()); Assert.True(dirtyRaised); expectedChange = ProjectCollectionChangedState.Loggers; dirtyRaised = false; collection.RegisterLoggers(new Microsoft.Build.Framework.ILogger[] { new MockLogger(), new MockLogger() }); Assert.True(dirtyRaised); expectedChange = ProjectCollectionChangedState.Loggers; dirtyRaised = false; collection.UnregisterAllLoggers(); Assert.True(dirtyRaised); expectedChange = ProjectCollectionChangedState.Toolsets; dirtyRaised = false; collection.AddToolset(new Toolset("testTools", Path.GetTempPath(), collection, Path.GetTempPath())); Assert.True(dirtyRaised); expectedChange = ProjectCollectionChangedState.DefaultToolsVersion; dirtyRaised = false; collection.DefaultToolsVersion = "testTools"; Assert.True(dirtyRaised); expectedChange = ProjectCollectionChangedState.Toolsets; dirtyRaised = false; collection.RemoveToolset("testTools"); Assert.True(dirtyRaised); expectedChange = ProjectCollectionChangedState.Toolsets; dirtyRaised = false; collection.RemoveAllToolsets(); Assert.True(dirtyRaised); }
public void RemoveToolset() { ProjectCollection collection = new ProjectCollection(); Toolset toolset1 = new Toolset("x", "c:\\y", collection, null); Toolset toolset2 = new Toolset("y", "c:\\z", collection, null); int initial = Helpers.MakeList<Toolset>(collection.Toolsets).Count; collection.AddToolset(toolset1); collection.AddToolset(toolset2); Assert.Equal(true, collection.RemoveToolset("x")); Assert.Equal(false, collection.ContainsToolset("x")); Assert.Equal(1, Helpers.MakeList<Toolset>(collection.Toolsets).Count - initial); }
public void RemoveNonexistentToolset() { ProjectCollection collection = new ProjectCollection(); Assert.Equal(false, collection.RemoveToolset("nonexistent")); }