Index: DamClients/DamUI/trunk/src/Dam/Application/Program.cs =================================================================== diff -u -r6903 -r6921 --- DamClients/DamUI/trunk/src/Dam/Application/Program.cs (.../Program.cs) (revision 6903) +++ DamClients/DamUI/trunk/src/Dam/Application/Program.cs (.../Program.cs) (revision 6921) @@ -54,7 +54,7 @@ /// The main entry point for the application. /// [STAThread] - static void Main() + private static void Main() { #if DEBUG RunInDebugMode(); @@ -103,28 +103,30 @@ const string requiredVersionDsFlex = "7.9"; const string registryPathDsFlex = "SOFTWARE\\WOW6432Node\\WL | Delft Hydraulics\\DS_Flex\\"; const string registryKeyDsFlex = "InstallerVersion"; - + var errorMessages = new List(); // Check version of Common Files string versionCommonFiles = RegistryReader.GetRegistryValueFromLocalMachine(registryPathCommonFiles, registryKeyCommonFiles); if (string.IsNullOrEmpty(versionCommonFiles)) { errorMessages.Add("Common Files not found."); - } else if (!VersionComparer.IsVersionGreaterOrEqual(versionCommonFiles, requiredVersionCommonFiles)) + } + else if (!VersionComparer.IsVersionGreaterOrEqual(versionCommonFiles, requiredVersionCommonFiles)) { - errorMessages.Add("Common files version is outdated: " + versionCommonFiles + - ". Required version is " + requiredVersionCommonFiles + " or higher."); + errorMessages.Add($"Common files version is outdated: {versionCommonFiles}. Required version is {requiredVersionCommonFiles} or higher."); } + // Check version of DS_Flex string versionDsFlex = RegistryReader.GetRegistryValueFromLocalMachine(registryPathDsFlex, registryKeyDsFlex); if (string.IsNullOrEmpty(versionCommonFiles)) { errorMessages.Add("DS_Flex not found."); - } else if (!VersionComparer.IsVersionGreaterOrEqual(versionDsFlex, requiredVersionDsFlex)) + } + else if (!VersionComparer.IsVersionGreaterOrEqual(versionDsFlex, requiredVersionDsFlex)) { - errorMessages.Add("DS_Flex version is outdated: " + versionDsFlex + - ". Required version is " + requiredVersionDsFlex + " or higher."); + errorMessages.Add($"DS_Flex version is outdated: {versionDsFlex}. Required version is {requiredVersionDsFlex} or higher."); } + if (errorMessages.Count > 0) { var errorMessage = new StringBuilder(); @@ -207,7 +209,7 @@ #region IProgramInfo - readonly static AssemblyInfoHelper info = new AssemblyInfoHelper(typeof(Program)); + private static readonly AssemblyInfoHelper info = new AssemblyInfoHelper(typeof(Program)); public string LicenseType { Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data.Tests/Registry/RegistryReaderTests.cs =================================================================== diff -u -r6903 -r6921 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data.Tests/Registry/RegistryReaderTests.cs (.../RegistryReaderTests.cs) (revision 6903) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data.Tests/Registry/RegistryReaderTests.cs (.../RegistryReaderTests.cs) (revision 6921) @@ -25,57 +25,62 @@ namespace Deltares.Dam.Data.Tests.Registry { + /// + /// Test for reading values from the Windows registry + /// Note: These tests actually write to the registry under HKEY_CURRENT_USER. + /// Testing KEY_LOCAL_MACHINE would require elevated permissions and is therefore not included. + /// [TestFixture] public class RegistryReaderTests { - private const string testKeyPath = @"SOFTWARE\\DeltaresDamTest"; - private const string testValueName = "TestValue"; - private const string testValueContent = "TestContent"; + private const string keyPath = @"SOFTWARE\\DeltaresDamTest"; + private const string keyName = "TestValue"; + private const string expectedValue = "TestContent"; [SetUp] public void SetUp() { - using RegistryKey key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(testKeyPath); - key!.SetValue(testValueName, testValueContent); + using RegistryKey key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(keyPath); + key!.SetValue(keyName, expectedValue); } [TearDown] public void TearDown() { - Microsoft.Win32.Registry.CurrentUser.DeleteSubKey(testKeyPath, false); + Microsoft.Win32.Registry.CurrentUser.DeleteSubKey(keyPath, false); } [Test] public void GetRegistryValue_ReturnsValue_WhenKeyAndValueExist() { - string result = RegistryReader.GetRegistryValueFromCurrentUser(testKeyPath, testValueName); - Assert.That(result, Is.EqualTo(testValueContent)); + string actualValue = RegistryReader.GetRegistryValueFromCurrentUser(keyPath, keyName); + Assert.That(actualValue, Is.EqualTo(expectedValue)); } [Test] public void GetRegistryValue_ReturnsEmpty_WhenKeyDoesNotExist() { - string result = RegistryReader.GetRegistryValueFromCurrentUser("SOFTWARE\\NonExistentKey", testValueName); - Assert.That(result, Is.EqualTo(string.Empty)); + string actualValue = RegistryReader.GetRegistryValueFromCurrentUser("SOFTWARE\\NonExistentKey", keyName); + Assert.That(actualValue, Is.EqualTo(string.Empty)); } [Test] public void GetRegistryValue_ReturnsEmpty_WhenValueDoesNotExist() { - string result = RegistryReader.GetRegistryValueFromCurrentUser(testKeyPath, "NonExistentValue"); - Assert.That(result, Is.EqualTo(string.Empty)); + string actualValue = RegistryReader.GetRegistryValueFromCurrentUser(keyPath, "NonExistentValue"); + Assert.That(actualValue, Is.EqualTo(string.Empty)); } [Test] public void GetRegistryValue_ReturnsStringRepresentation_WhenValueIsNotString() { - using (RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(testKeyPath, true)) + using (RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(keyPath, true)) { key!.SetValue("VersionValue", "7.8.0.0", RegistryValueKind.String); } - string result = RegistryReader.GetRegistryValueFromCurrentUser(testKeyPath, "VersionValue"); - Assert.That(result, Is.EqualTo("7.8.0.0")); + string actualValue = RegistryReader.GetRegistryValueFromCurrentUser(keyPath, "VersionValue"); + Assert.That(actualValue, Is.EqualTo("7.8.0.0")); } } } \ No newline at end of file