// 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 { /// /// 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 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(keyPath); key!.SetValue(keyName, expectedValue); } [TearDown] public void TearDown() { Microsoft.Win32.Registry.CurrentUser.DeleteSubKey(keyPath, false); } [Test] public void GetRegistryValue_ReturnsValue_WhenKeyAndValueExist() { string actualValue = RegistryReader.GetRegistryValueFromCurrentUser(keyPath, keyName); Assert.That(actualValue, Is.EqualTo(expectedValue)); } [Test] public void GetRegistryValue_ReturnsEmpty_WhenKeyDoesNotExist() { string actualValue = RegistryReader.GetRegistryValueFromCurrentUser("SOFTWARE\\NonExistentKey", keyName); Assert.That(actualValue, Is.EqualTo(string.Empty)); } [Test] public void GetRegistryValue_ReturnsEmpty_WhenValueDoesNotExist() { string actualValue = RegistryReader.GetRegistryValueFromCurrentUser(keyPath, "NonExistentValue"); Assert.That(actualValue, Is.EqualTo(string.Empty)); } } }