public void UnexistedConfigSettingsPathTest()
        {
            int reloaded = 0;
            var _        = new ReloadedConfigSettingsParser(Constants.UnexistedConfigSettingsPath, () => reloaded++, null, reloadedTime);

            reloaded.Should().Be(0);
        }
        public void ChangeSeveralTimesConfigFileTest()
        {
            int reloaded = 0;
            var fileName = this.GenerateConfigPath();

            WriteConfigFileContent1(fileName);

            var parser = new ReloadedConfigSettingsParser(fileName, () => reloaded++, null, reloadedTime);

            reloaded.Should().Be(0);
            parser.GetVariableValue("testVariableName").Should().Be("testVariableValue");

            WriteConfigFileContent2(fileName);
            System.Threading.Thread.Sleep(waitLessForReloadedTime);
            reloaded.Should().Be(0);
            parser.GetVariableValue("testVariableName").Should().Be("testVariableValue");

            WriteConfigFileContent3(fileName);
            System.Threading.Thread.Sleep(waitLessForReloadedTime);
            reloaded.Should().Be(0);
            parser.GetVariableValue("testVariableName").Should().Be("testVariableValue");

            Assert.That(() => reloaded, Is.EqualTo(1).After((int)waitForReloadedTime.TotalMilliseconds).PollEvery(10));
            parser.HasVariable("testVariableName").Should().Be(false);
            parser.HasVariable("testVariableName2").Should().Be(false);
            parser.GetVariableValue("testVariableName3").Should().Be("testVariableValue3");
        }
        public void DeleteConfigFileTest()
        {
            int reloaded = 0;
            var fileName = this.GenerateConfigPath();

            WriteConfigFileContent1(fileName);

            var parser = new ReloadedConfigSettingsParser(fileName, () => reloaded++, null, reloadedTime);

            reloaded.Should().Be(0);
            parser.GetVariableValue("testVariableName").Should().Be("testVariableValue");

            File.Delete(fileName);
            Assert.That(() => reloaded, Is.EqualTo(1).After((int)waitForReloadedTime.TotalMilliseconds).PollEvery(10));
            parser.HasVariable("testVariableName").Should().Be(false);
        }
        public void IncorrectConfigSettings()
        {
            int occuredError = 0;
            int reloaded     = 0;
            var fileName     = this.GenerateConfigPath();

            WriteCorrectConfigFileContent(fileName);
            var _ = new ReloadedConfigSettingsParser(fileName, () => reloaded++, (ex) => occuredError++, reloadedTime);

            occuredError.Should().Be(0);
            WriteBrokenConfigFileContent(fileName);
            Assert.That(() => occuredError, Is.EqualTo(1).After((int)waitForReloadedTime.TotalMilliseconds).PollEvery(10));
            WriteCorrectConfigFileContent(fileName);
            Assert.That(() => reloaded, Is.EqualTo(2).After((int)waitForReloadedTime.TotalMilliseconds).PollEvery(10));
            occuredError.Should().Be(1);
        }
        public void CreateFolderWithConfigFileTest()
        {
            int reloaded = 0;
            var fileName = this.GenerateConfigPath($"subfolder_{Guid.NewGuid()}");
            var parser   = new ReloadedConfigSettingsParser(fileName, () => reloaded++, null, reloadedTime);

            reloaded.Should().Be(0);
            parser.HasVariable("testVariableName").Should().Be(false);

            var directory = Path.GetDirectoryName(fileName);

            Directory.CreateDirectory(directory);
            WriteConfigFileContent1(fileName);

            Assert.That(() => reloaded, Is.EqualTo(1).After((int)waitForReloadedTime.TotalMilliseconds).PollEvery(10));
            parser.GetVariableValue("testVariableName").Should().Be("testVariableValue");
        }
 /// <summary>
 /// Конструктор.
 /// </summary>
 /// <param name="parser">Парсер настроек.</param>
 public ReloadedConfigSettingsGetter(ReloadedConfigSettingsParser parser)
     : base(parser)
 {
 }