// Copyright (C) Stichting Deltares 2025. All rights reserved. // // This file is part of the application DAM - UI. // // DAM - UI is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using Deltares.Dam.Data.Registry; using Microsoft.Win32; using NUnit.Framework; namespace Deltares.Dam.Data.Tests.Registry { [TestFixture] public class RegistryReaderTests { private const string testKeyPath = @"SOFTWARE\\DeltaresDamTest"; private const string testValueName = "TestValue"; private const string testValueContent = "TestContent"; [SetUp] public void SetUp() { using RegistryKey key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(testKeyPath); key!.SetValue(testValueName, testValueContent); } [TearDown] public void TearDown() { Microsoft.Win32.Registry.CurrentUser.DeleteSubKey(testKeyPath, false); } [Test] public void GetRegistryValue_ReturnsValue_WhenKeyAndValueExist() { string result = RegistryReader.GetRegistryValueFromCurrentUser(testKeyPath, testValueName); Assert.That(result, Is.EqualTo(testValueContent)); } [Test] public void GetRegistryValue_ReturnsEmpty_WhenKeyDoesNotExist() { string result = RegistryReader.GetRegistryValueFromCurrentUser("SOFTWARE\\NonExistentKey", testValueName); Assert.That(result, Is.EqualTo(string.Empty)); } [Test] public void GetRegistryValue_ReturnsEmpty_WhenValueDoesNotExist() { string result = RegistryReader.GetRegistryValueFromCurrentUser(testKeyPath, "NonExistentValue"); Assert.That(result, Is.EqualTo(string.Empty)); } [Test] public void GetRegistryValue_ReturnsStringRepresentation_WhenValueIsNotString() { using (RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(testKeyPath, 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")); } } }