public void ReadRegistry_IgnoreSubKeysExceptTopMostSubKeys() { RegistryKey key1 = toolsVersionsRegistryKey.CreateSubKey("tv1"); key1.SetValue("msbuildtoolspath", "c:\\xxx"); key1.SetValue("name1", "value1"); RegistryKey subKey1 = key1.CreateSubKey("SubKey1"); subKey1.SetValue("name1a", "value1a"); subKey1.SetValue("name2a", "value2a"); RegistryKey key2 = toolsVersionsRegistryKey.CreateSubKey("tv2"); key2.SetValue("msbuildtoolspath", "c:\\yyy"); key2.SetValue("name2", "value2"); RegistryKey subKey2 = key2.CreateSubKey("SubKey2"); subKey2.SetValue("name3a", "value3a"); subKey2.SetValue("name2a", "value2a"); ToolsetReader reader = new ToolsetRegistryReader(new MockRegistryKey(testRegistryPath)); ToolsetCollection values = new ToolsetCollection(new Engine(ToolsetDefinitionLocations.None)); string defaultToolsVersion = reader.ReadToolsets(values, new BuildPropertyGroup(), new BuildPropertyGroup(), false); Assertion.AssertEquals(2, values.Count); Assertion.AssertEquals(1, values["tv1"].BuildProperties.Count); Assertion.Assert(0 == String.Compare("c:\\xxx", values["tv1"].ToolsPath, StringComparison.OrdinalIgnoreCase)); Assertion.Assert(0 == String.Compare("value1", values["tv1"].BuildProperties["name1"].Value, StringComparison.OrdinalIgnoreCase)); Assertion.AssertEquals(1, values["tv2"].BuildProperties.Count); Assertion.Assert(0 == String.Compare("c:\\yyy", values["tv2"].ToolsPath, StringComparison.OrdinalIgnoreCase)); Assertion.Assert(0 == String.Compare("value2", values["tv2"].BuildProperties["name2"].Value, StringComparison.OrdinalIgnoreCase)); }
public void GetDefaultToolsVersionFromRegistry_NonStringData() { currentVersionRegistryKey.SetValue("DefaultToolsVersion", new String[] { "2.0.xxxx.a", "2.0.xxxx.b" }, RegistryValueKind.MultiString); ToolsetReader reader = new ToolsetRegistryReader(new MockRegistryKey(testRegistryPath)); ToolsetCollection values = new ToolsetCollection(new Engine(ToolsetDefinitionLocations.None)); string defaultToolsVersion = reader.ReadToolsets(values, new BuildPropertyGroup(), new BuildPropertyGroup(), false); }
public void GetDefaultToolsVersionFromRegistry_DefaultValueNotSet() { ToolsetReader reader = new ToolsetRegistryReader(new MockRegistryKey(testRegistryPath)); ToolsetCollection values = new ToolsetCollection(new Engine(ToolsetDefinitionLocations.None)); string defaultToolsVersion = reader.ReadToolsets(values, new BuildPropertyGroup(), new BuildPropertyGroup(), false); Assertion.AssertEquals(null, defaultToolsVersion); }
public void ReadRegistry_DeletedKey() { DeleteTestRegistryKey(); ToolsetReader reader = new ToolsetRegistryReader(new MockRegistryKey(testRegistryPath)); ToolsetCollection values = new ToolsetCollection(new Engine(ToolsetDefinitionLocations.None)); string defaultToolsVersion = reader.ReadToolsets(values, new BuildPropertyGroup(), new BuildPropertyGroup(), false); Assertion.AssertEquals(0, values.Count); }
public void DefaultValueInRegistryDoesNotExist() { ToolsetReader reader = new ToolsetRegistryReader(new MockRegistryKey(testRegistryPath, "3.5" /* fail to find subkey 3.5 */)); ToolsetCollection values = new ToolsetCollection(new Engine(ToolsetDefinitionLocations.None)); // Should not throw string defaultToolsVersion = reader.ReadToolsets(values, new BuildPropertyGroup(), new BuildPropertyGroup(), false); Assertion.AssertEquals(null, defaultToolsVersion); }
public void ReadRegistry_NoSubkeysOnlyValues() { toolsVersionsRegistryKey.SetValue("Name1", "Value1"); toolsVersionsRegistryKey.SetValue("Name2", "Value2"); ToolsetReader reader = new ToolsetRegistryReader(new MockRegistryKey(testRegistryPath)); ToolsetCollection values = new ToolsetCollection(new Engine(ToolsetDefinitionLocations.None)); string defaultToolsVersion = reader.ReadToolsets(values, new BuildPropertyGroup(), new BuildPropertyGroup(), false); Assertion.AssertEquals(0, values.Count); Assertion.AssertEquals(null, defaultToolsVersion); }
public void DefaultValueInRegistryDoesNotExist() { ToolsetReader reader = new ToolsetRegistryReader(new ProjectCollection().EnvironmentProperties, new PropertyDictionary <ProjectPropertyInstance>(), new MockRegistryKey(testRegistryPath, "3.5" /* fail to find subkey 3.5 */)); Dictionary <string, Toolset> values = new Dictionary <string, Toolset>(StringComparer.OrdinalIgnoreCase); // Should not throw string msbuildOverrideTasksPath = null; string defaultOverrideToolsVersion = null; string defaultToolsVersion = reader.ReadToolsets(values, new PropertyDictionary <ProjectPropertyInstance>(), new PropertyDictionary <ProjectPropertyInstance>(), false, out msbuildOverrideTasksPath, out defaultOverrideToolsVersion); Assert.Equal(null, defaultToolsVersion); }
public void GetDefaultToolsVersionFromRegistry_Basic() { currentVersionRegistryKey.SetValue("DefaultToolsVersion", "tv1"); RegistryKey key1 = toolsVersionsRegistryKey.CreateSubKey("tv1"); // Need matching tools version key1.SetValue("msbuildtoolspath", "c:\\xxx"); ToolsetReader reader = new ToolsetRegistryReader(new MockRegistryKey(testRegistryPath)); ToolsetCollection values = new ToolsetCollection(new Engine(ToolsetDefinitionLocations.None)); string defaultToolsVersion = reader.ReadToolsets(values, new BuildPropertyGroup(), new BuildPropertyGroup(), false); Assertion.AssertEquals("tv1", defaultToolsVersion); }
// Ignore: Test requires installed toolset. public void DefaultValuesInRegistryCreatedBySetup() { ToolsetReader reader = new ToolsetRegistryReader(new ProjectCollection().EnvironmentProperties, new PropertyDictionary <ProjectPropertyInstance>()); //we don't use the test registry key because we want to verify the install Dictionary <string, Toolset> values = new Dictionary <string, Toolset>(StringComparer.OrdinalIgnoreCase); string msbuildOverrideTasksPath = null; string defaultOverrideToolsVersion = null; string defaultToolsVersion = reader.ReadToolsets(values, new PropertyDictionary <ProjectPropertyInstance>(), new PropertyDictionary <ProjectPropertyInstance>(), false, out msbuildOverrideTasksPath, out defaultOverrideToolsVersion); // Check the values in the data Assert.True(values.ContainsKey("4.0")); // "Tools version 4.0 should be defined by default" Assert.True(values.ContainsKey(ObjectModelHelpers.MSBuildDefaultToolsVersion), String.Format("Tools version {0} should be defined by default", ObjectModelHelpers.MSBuildDefaultToolsVersion)); Assert.Equal("2.0", defaultToolsVersion); // "Default tools version should be 2.0" }
public void ReadRegistry_NonStringData() { RegistryKey key1 = toolsVersionsRegistryKey.CreateSubKey("tv1"); key1.SetValue("msbuildtoolspath", "c:\\xxx"); key1.SetValue("name1", "value1"); RegistryKey key2 = toolsVersionsRegistryKey.CreateSubKey("tv2"); key2.SetValue("msbuildtoolspath", "c:\\xxx"); key2.SetValue("name2", new String[] { "value2a", "value2b" }, RegistryValueKind.MultiString); ToolsetReader reader = new ToolsetRegistryReader(new MockRegistryKey(testRegistryPath)); ToolsetCollection values = new ToolsetCollection(new Engine(ToolsetDefinitionLocations.None)); string defaultToolsVersion = reader.ReadToolsets(values, new BuildPropertyGroup(), new BuildPropertyGroup(), false); }
public void ReadRegistry_OnlyOneSubkey() { RegistryKey key1 = toolsVersionsRegistryKey.CreateSubKey("tv1"); key1.SetValue("msbuildtoolspath", "c:\\xxx"); ToolsetReader reader = new ToolsetRegistryReader(new MockRegistryKey(testRegistryPath)); ToolsetCollection values = new ToolsetCollection(new Engine(ToolsetDefinitionLocations.None)); string defaultToolsVersion = reader.ReadToolsets(values, new BuildPropertyGroup(), new BuildPropertyGroup(), false); Assertion.AssertEquals(null, defaultToolsVersion); Assertion.AssertEquals(1, values.Count); Assertion.AssertEquals(0, values["tv1"].BuildProperties.Count); Assertion.Assert(0 == String.Compare("c:\\xxx", values["tv1"].ToolsPath, StringComparison.OrdinalIgnoreCase)); }
public void DefaultValuesInRegistryCreatedBySetup() { ToolsetReader reader = new ToolsetRegistryReader(); //we don't use the test registry key because we want to verify the install ToolsetCollection values = new ToolsetCollection(new Engine(ToolsetDefinitionLocations.None)); string defaultToolsVersion = reader.ReadToolsets(values, new BuildPropertyGroup(), new BuildPropertyGroup(), false); // Check the values in the data Assertion.Assert("Tools version 4.0 should be defined by default", values.Contains("4.0")); Assertion.AssertEquals("Default tools version should be 2.0", "2.0", defaultToolsVersion); if (FrameworkLocationHelper.PathToDotNetFrameworkV35 != null) { Assertion.Assert("Tools version 2.0 should be defined by default if .NET FX 3.5 exists on the machine.", values.Contains("2.0")); Assertion.Assert("Tools version 3.5 should be defined by default if .NET FX 3.5 exists on the machine.", values.Contains("3.5")); } }