public void NewTemporaryRegistryValueTest_RegistryKey_Success() { var testSubKeyPath = "FiveChecks.Tests"; Registry.CurrentUser.DeleteSubKey(testSubKeyPath, false); using (Registry.CurrentUser.CreateSubKey(testSubKeyPath)){} Some <string> valueName = "SomeValueName"; var actual = TemporaryRegistryValue.NewTemporaryRegistryValue(Registry.CurrentUser, testSubKeyPath, valueName, RegistryValueKind.DWord, 0); var val = actual.Match( value => { Assert.IsTrue(actual.IsSuccess, "Expected success"); Assert.IsTrue(RegistryOperations.RegistryValueExists(Registry.CurrentUser, testSubKeyPath, valueName), "Temporary value does not exist."); value.Dispose(); Assert.IsFalse(RegistryOperations.RegistryValueExists(Registry.CurrentUser, testSubKeyPath, valueName.Value), "Temporary value was not deleted."); return(Option <object> .None); }, exception => { Assert.IsFalse(true, exception.Message); return(Option <object> .None); }); //Cleanup Registry.CurrentUser.DeleteSubKey(testSubKeyPath, false); }