コード例 #1
0
        public void SerializeToXmlElement_Escaped()
        {
            // Special characters should be escaped
            XmlNode node = TestClientSettingsView.TestSerializeToXmlElement("<Foo>");

            node.Should().NotBeNull();
            node.InnerXml.Should().Be("&lt;Foo&gt;");
        }
コード例 #2
0
        public void SerializeToXmlElement_Null()
        {
            // Null should be treated as empty string
            XmlNode node = TestClientSettingsView.TestSerializeToXmlElement(null);

            node.Should().NotBeNull();
            node.InnerXml.Should().Be(String.Empty);
        }
コード例 #3
0
        public void InitializeCreatesSectionGroupTest()
        {
            IConfigurationManager configurationManager = Substitute.For <IConfigurationManager>();
            IConfiguration        configuration        = Substitute.For <IConfiguration>();

            configurationManager.OpenConfiguration(ConfigurationUserLevel.None).ReturnsForAnyArgs(configuration);
            configuration.GetSectionGroup("userSettings").Returns((IConfigurationSectionGroup) => null);

            var testView = TestClientSettingsView.Create("Foo", SettingsLocation.Executable, configurationManager, null);

            configuration.Received().AddSectionGroup("userSettings");
        }
コード例 #4
0
        public void GetConfigurationPathTest()
        {
            // Configuration path should return the given values in the configuration manager
            IConfigurationManager configurationManager = Substitute.For <IConfigurationManager>();
            IConfiguration        configuration        = Substitute.For <IConfiguration>();

            configuration.FilePath.Returns("TestFilePath");
            configurationManager.OpenConfiguration(ConfigurationUserLevel.None).ReturnsForAnyArgs(configuration);

            TestClientSettingsView view = new TestClientSettingsView(configurationManager, null);

            view.GetConfigurationPath(SettingsLocation.Executable).Should().Be("TestFilePath");
        }
コード例 #5
0
        public void RoundTripTest(string value)
        {
            // Ensure values round trip successfully
            IConfigurationSectionGroup sectionGroup  = Substitute.For <IConfigurationSectionGroup>();
            IConfiguration             configuration = Substitute.For <IConfiguration>();

            configuration.GetSectionGroup("userSettings").Returns(sectionGroup);
            IConfigurationManager configurationManager = Substitute.For <IConfigurationManager>();

            configurationManager.OpenConfiguration(ConfigurationUserLevel.None).ReturnsForAnyArgs(configuration);

            var testView = TestClientSettingsView.Create("Foo", SettingsLocation.Executable, configurationManager, null);

            testView.SaveSetting("foo", value).Should().BeTrue();
            testView.GetSetting("foo").Should().Be(value);
        }
コード例 #6
0
        public void InitializeCreatesClientSettingsSection()
        {
            // Ensure initialization creates a client settings section if it doesn't have one
            IConfigurationSectionGroup sectionGroup  = Substitute.For <IConfigurationSectionGroup>();
            IConfiguration             configuration = Substitute.For <IConfiguration>();

            configuration.GetSectionGroup("userSettings").Returns(sectionGroup);
            IConfigurationManager configurationManager = Substitute.For <IConfigurationManager>();

            configurationManager.OpenConfiguration(ConfigurationUserLevel.None).ReturnsForAnyArgs(configuration);

            var testView = TestClientSettingsView.Create("Foo", SettingsLocation.Executable, configurationManager, null);

            configuration.DidNotReceiveWithAnyArgs().AddSectionGroup("");
            sectionGroup.Received().Add("Foo", Arg.Any <ClientSettingsSection>());
        }
コード例 #7
0
        public void GetConfigurationTest()
        {
            // We should get the expected configuration objects
            IConfigurationManager configurationManager   = Substitute.For <IConfigurationManager>();
            IConfiguration        noneConfiguration      = Substitute.For <IConfiguration>();
            IConfiguration        allOtherConfigurations = Substitute.For <IConfiguration>();

            allOtherConfigurations.FilePath.Returns("TestFilePath");
            configurationManager.OpenConfiguration("TestFilePath").Returns(allOtherConfigurations);

            configurationManager.OpenConfiguration(ConfigurationUserLevel.None).ReturnsForAnyArgs(
                x => (ConfigurationUserLevel)x[0] == ConfigurationUserLevel.None ? noneConfiguration : allOtherConfigurations);

            // Now we set the file system to return a path exists
            IFileService fileService = Substitute.For <IFileService>();

            fileService.GetAttributes("").ReturnsForAnyArgs(FileAttributes.Normal);
            configurationManager.OpenConfiguration("").ReturnsForAnyArgs(allOtherConfigurations);


            TestClientSettingsView view = new TestClientSettingsView(configurationManager, fileService);

            // None should return the none configuration, others should find the allOther via the TestFilePath lookup
            view.TestGetConfiguration(ConfigurationUserLevel.None).Should().Be(noneConfiguration);
            view.TestGetConfiguration(ConfigurationUserLevel.PerUserRoaming).Should().Be(allOtherConfigurations);
            view.TestGetConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).Should().Be(allOtherConfigurations);

            view.TestGetConfiguration(SettingsLocation.RunningExecutable).Should().Be(noneConfiguration);
            view.TestGetConfiguration(SettingsLocation.Executable).Should().Be(noneConfiguration);
            view.TestGetConfiguration(SettingsLocation.Local).Should().Be(allOtherConfigurations);
            view.TestGetConfiguration(SettingsLocation.Roaming).Should().Be(allOtherConfigurations);

            // This won't be true if running at the console
            // TestClientSettingsView.TestGetConfiguration(SettingsLocation.ContainingExecutable).Should().BeNull();

            // Validate our direct path access route works as expected
            view.TestGetConfiguration(SettingsLocation.ContainingExecutable).Should().Be(allOtherConfigurations);
        }
コード例 #8
0
        public void GetConfigurationTest()
        {
            // We should get the expected configuration objects
            IConfigurationManager configurationManager = Substitute.For<IConfigurationManager>();
            IConfiguration noneConfiguration = Substitute.For<IConfiguration>();
            IConfiguration allOtherConfigurations = Substitute.For<IConfiguration>();
            allOtherConfigurations.FilePath.Returns("TestFilePath");
            configurationManager.OpenConfiguration("TestFilePath").Returns(allOtherConfigurations);

            configurationManager.OpenConfiguration(ConfigurationUserLevel.None).ReturnsForAnyArgs(
                x => (ConfigurationUserLevel)x[0] == ConfigurationUserLevel.None ? noneConfiguration : allOtherConfigurations);

            // Now we set the file system to return a path exists
            IFileService fileService = Substitute.For<IFileService>();
            fileService.GetAttributes("").ReturnsForAnyArgs(FileAttributes.Normal);
            configurationManager.OpenConfiguration("").ReturnsForAnyArgs(allOtherConfigurations);


            TestClientSettingsView view = new TestClientSettingsView(configurationManager, fileService);

            // None should return the none configuration, others should find the allOther via the TestFilePath lookup
            view.TestGetConfiguration(ConfigurationUserLevel.None).Should().Be(noneConfiguration);
            view.TestGetConfiguration(ConfigurationUserLevel.PerUserRoaming).Should().Be(allOtherConfigurations);
            view.TestGetConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).Should().Be(allOtherConfigurations);

            view.TestGetConfiguration(SettingsLocation.RunningExecutable).Should().Be(noneConfiguration);
            view.TestGetConfiguration(SettingsLocation.Executable).Should().Be(noneConfiguration);
            view.TestGetConfiguration(SettingsLocation.Local).Should().Be(allOtherConfigurations);
            view.TestGetConfiguration(SettingsLocation.Roaming).Should().Be(allOtherConfigurations);

            // This won't be true if running at the console
            // TestClientSettingsView.TestGetConfiguration(SettingsLocation.ContainingExecutable).Should().BeNull();

            // Validate our direct path access route works as expected
            view.TestGetConfiguration(SettingsLocation.ContainingExecutable).Should().Be(allOtherConfigurations);
        }
コード例 #9
0
        public void GetConfigurationPathTest()
        {
            // Configuration path should return the given values in the configuration manager
            IConfigurationManager configurationManager = Substitute.For<IConfigurationManager>();
            IConfiguration configuration = Substitute.For<IConfiguration>();
            configuration.FilePath.Returns("TestFilePath");
            configurationManager.OpenConfiguration(ConfigurationUserLevel.None).ReturnsForAnyArgs(configuration);

            TestClientSettingsView view = new TestClientSettingsView(configurationManager, null);

            view.GetConfigurationPath(SettingsLocation.Executable).Should().Be("TestFilePath");
        }