Ejemplo n.º 1
0
        public void TestMockWindowsRegistry()
        {
            var          w     = new WindowsRegistry();
            IRegistryKey rCore = w.LocalMachine.OpenSubKey(@"SOFTWARE\R-core");

            string localMachineTestReg = @"
[HKEY_LOCAL_MACHINE\SOFTWARE\R-core]

[HKEY_LOCAL_MACHINE\SOFTWARE\R-core\R]
'InstallPath'='C:\Program Files\R\R-3.3.3'
'Current Version'='3.3.3'
";
            var    reg = new MockRegistry(localMachineTestReg);
            var    lm  = reg.LocalMachine;

            //var sk = lm.GetSubKeyNames();
            rCore = lm.OpenSubKey(@"SOFTWARE\R-core");
            var valNames = rCore.GetValueNames();

            Assert.AreEqual(valNames.Length, 0);

            Assert.AreEqual(rCore.GetSubKeyNames().Length, 1);
            Assert.AreEqual(rCore.GetSubKeyNames()[0], "R");
            var R = rCore.OpenSubKey(@"R");

            Assert.AreEqual(R.GetSubKeyNames().Length, 0);
            Assert.AreEqual(R.GetValueNames().Length, 2);
            Assert.AreEqual(R.GetValue("InstallPath"), "C:\\Program Files\\R\\R-3.3.3");
            Assert.AreEqual(R.GetValue("Current Version"), "3.3.3");

            localMachineTestReg = @"
[HKEY_LOCAL_MACHINE\SOFTWARE\R-core\R\R64]
'InstallPath'='C:\Program Files\Microsoft\R Client\R_SERVER\'
'Current Version'='3.2.2.803'

[HKEY_LOCAL_MACHINE\SOFTWARE\R-core\R\R64\3.2.2.803]
'InstallPath'='C:\Program Files\Microsoft\R Client\R_SERVER\'
";

            reg   = new MockRegistry(localMachineTestReg);
            lm    = reg.LocalMachine;
            rCore = lm.OpenSubKey(@"SOFTWARE\R-core");
            Assert.AreEqual(rCore.GetValueNames().Length, 0);

            Assert.AreEqual(rCore.GetSubKeyNames().Length, 1);
            Assert.AreEqual(rCore.GetSubKeyNames()[0], "R");
            R = rCore.OpenSubKey(@"R");
            Assert.AreEqual(R.GetSubKeyNames().Length, 1);

            var R64 = lm.OpenSubKey(@"SOFTWARE\R-core\R\R64");

            Assert.AreEqual(R64.GetSubKeyNames().Length, 1);
            Assert.AreEqual(R64.GetValueNames().Length, 2);

            Assert.AreEqual(R64.GetValue("InstallPath"), @"C:\Program Files\Microsoft\R Client\R_SERVER\");
            Assert.AreEqual(R64.GetValue("Current Version"), "3.2.2.803");
        }
Ejemplo n.º 2
0
        public void TestMockWindowsRegistry()
        {
            IRegistryKey rCore;

            // 2020-10 I lost sight of what this test was for. Causes issues on Linux, not sure why and too hard to debug against other priorities.
            if (NativeUtility.IsWin32NT)
            {
                var w = new WindowsRegistry();
                rCore = w.LocalMachine.OpenSubKey(@"SOFTWARE\R-core");


                string localMachineTestReg = @"
    [HKEY_LOCAL_MACHINE\SOFTWARE\R-core]

    [HKEY_LOCAL_MACHINE\SOFTWARE\R-core\R]
    'InstallPath'='C:\Program Files\R\R-3.3.3'
    'Current Version'='3.3.3'
    ";
                var    reg = new MockRegistry(localMachineTestReg);
                var    lm  = reg.LocalMachine;
                //var sk = lm.GetSubKeyNames();
                rCore = lm.OpenSubKey(@"SOFTWARE\R-core");
                var valNames = rCore.GetValueNames();
                Assert.Equal(valNames.Length, 0);

                Assert.Equal(rCore.GetSubKeyNames().Length, 1);
                Assert.Equal(rCore.GetSubKeyNames()[0], "R");
                var R = rCore.OpenSubKey(@"R");
                Assert.Equal(R.GetSubKeyNames().Length, 0);
                Assert.Equal(R.GetValueNames().Length, 2);
                Assert.Equal(R.GetValue("InstallPath"), "C:\\Program Files\\R\\R-3.3.3");
                Assert.Equal(R.GetValue("Current Version"), "3.3.3");

                localMachineTestReg = @"
    [HKEY_LOCAL_MACHINE\SOFTWARE\R-core\R\R64]
    'InstallPath'='C:\Program Files\Microsoft\R Client\R_SERVER\'
    'Current Version'='3.2.2.803'

    [HKEY_LOCAL_MACHINE\SOFTWARE\R-core\R\R64\3.2.2.803]
    'InstallPath'='C:\Program Files\Microsoft\R Client\R_SERVER\'
    ";

                reg   = new MockRegistry(localMachineTestReg);
                lm    = reg.LocalMachine;
                rCore = lm.OpenSubKey(@"SOFTWARE\R-core");
                Assert.Equal(rCore.GetValueNames().Length, 0);

                Assert.Equal(rCore.GetSubKeyNames().Length, 1);
                Assert.Equal(rCore.GetSubKeyNames()[0], "R");
                R = rCore.OpenSubKey(@"R");
                Assert.Equal(R.GetSubKeyNames().Length, 1);

                var R64 = lm.OpenSubKey(@"SOFTWARE\R-core\R\R64");

                Assert.Equal(R64.GetSubKeyNames().Length, 1);
                Assert.Equal(R64.GetValueNames().Length, 2);

                Assert.Equal(R64.GetValue("InstallPath"), @"C:\Program Files\Microsoft\R Client\R_SERVER\");
                Assert.Equal(R64.GetValue("Current Version"), "3.2.2.803");
            }
        }