public void OneWorkerHost()
        {
            var workgroupYml = new ConfigFile(WorkgroupYmlLogFileInfo, _singleMachineWorkgroupYmlValues, LogType.WorkgroupYml);

            var extractor = new ProcessInfoExtractor(workgroupYml, null, null);
            var results   = extractor.GenerateProcessInfoRecords();

            results.Should().BeEquivalentTo(_expectedResultsForSingleMachine);
        }
        public void OneWorkerHost_ProcessesConfiguredForTwo()
        {
            var values = GetTwoMachinesWorkgroupYmlValues();

            values["worker.hosts"] = MachineOneName;
            var workgroupYml = new ConfigFile(WorkgroupYmlLogFileInfo, values, LogType.WorkgroupYml);

            var extractor = new ProcessInfoExtractor(workgroupYml, null, null);
            var results   = extractor.GenerateProcessInfoRecords();

            results.Should().BeEquivalentTo(_expectedResultsForSingleMachine);
        }
        public void TwoWorkerHosts_OnlyProcessesConfiguredForOne()
        {
            var values = _singleMachineWorkgroupYmlValues;

            values["worker.hosts"] = $"{MachineOneName}, SomeOtherMachine";
            values["pgsql0.host"]  = MachineOneName;
            var workgroupYml = new ConfigFile(WorkgroupYmlLogFileInfo, values, LogType.WorkgroupYml);

            var extractor = new ProcessInfoExtractor(workgroupYml, null, null);
            var results   = extractor.GenerateProcessInfoRecords();

            results.Should().BeEquivalentTo(_expectedResultsForSingleMachine);
        }
        public void TwoWorkersHosts_OnePostgres()
        {
            var workgroupYml = new ConfigFile(WorkgroupYmlLogFileInfo, GetTwoMachinesWorkgroupYmlValues(), LogType.WorkgroupYml);

            var extractor = new ProcessInfoExtractor(workgroupYml, null, null);
            var results   = extractor.GenerateProcessInfoRecords();

            var expectedResults = _expectedResultsForSingleMachine;

            expectedResults.UnionWith(_expectedResultsForSecondMachine);

            results.Should().BeEquivalentTo(expectedResults);
        }
        public void TwoWorkerHost_TryGetPostgresConfigFromTabsvc_TabsvcNotPresent()
        {
            var workgroupValues = GetTwoMachinesWorkgroupYmlValues_StripPostgresHosts();
            var workgroupYml    = new ConfigFile(WorkgroupYmlLogFileInfo, workgroupValues, LogType.WorkgroupYml);

            var extractor = new ProcessInfoExtractor(workgroupYml, null, null);
            var results   = extractor.GenerateProcessInfoRecords();

            var expectedResults = _expectedResultsForSingleMachine;

            expectedResults.UnionWith(_expectedResultsForSecondMachine);

            results.Should().BeEquivalentTo(expectedResults.Where(processInfo => processInfo.Process != "pgsql"));
        }
        public void TwoWorkerHosts_SecondSetOfProcessesConfiguredForTheWrongWorker()
        {
            var values = GetTwoMachinesWorkgroupYmlValues();

            values = values
                     .Select(pair => pair.Key.StartsWith("worker1")
                    ? new KeyValuePair <string, string>(pair.Key.Replace("worker1", "worker2"), pair.Value)
                    : pair)
                     .ToDictionary(pair => pair.Key, pair => pair.Value);
            var workgroupYml = new ConfigFile(WorkgroupYmlLogFileInfo, values, LogType.WorkgroupYml);

            var extractor = new ProcessInfoExtractor(workgroupYml, null, null);
            var results   = extractor.GenerateProcessInfoRecords();

            results.Should().BeEquivalentTo(_expectedResultsForSingleMachine);
        }
        public void TwoWorkerHost_TryGetPostgresConfigFromTabsvc_ConfigLineMissing()
        {
            var workgroupValues = GetTwoMachinesWorkgroupYmlValues_StripPostgresHosts();
            var workgroupYml    = new ConfigFile(WorkgroupYmlLogFileInfo, workgroupValues, LogType.WorkgroupYml);

            var tabsvcValues = new Dictionary <string, string>
            {
                { "someOtherKey", "someOtherValue" }
            };
            var tabsvcYml = new ConfigFile(TabsvcYmlLogFileInfo, tabsvcValues, LogType.TabsvcYml);

            var extractor = new ProcessInfoExtractor(workgroupYml, tabsvcYml, null);
            var results   = extractor.GenerateProcessInfoRecords();

            var expectedResults = _expectedResultsForSingleMachine;

            expectedResults.UnionWith(_expectedResultsForSecondMachine);

            results.Should().BeEquivalentTo(expectedResults.Where(processInfo => processInfo.Process != "pgsql"));
        }
        private void TwoWorkersHosts_VariousPostgresConfigurations(string portValue, string hostValue, bool expectObjectCreated)
        {
            var values = GetTwoMachinesWorkgroupYmlValues();

            values.Add("pgsql1.port", portValue);
            values.Add("pgsql1.host", hostValue);
            var workgroupYml = new ConfigFile(WorkgroupYmlLogFileInfo, values, LogType.WorkgroupYml);

            var extractor = new ProcessInfoExtractor(workgroupYml, null, null);
            var results   = extractor.GenerateProcessInfoRecords();

            var expectedResults = _expectedResultsForSingleMachine;

            expectedResults.UnionWith(_expectedResultsForSecondMachine);
            if (expectObjectCreated)
            {
                var port = int.Parse(portValue);
                expectedResults.Add(new ConfigProcessInfo(WorkgroupYmlLogFileInfo.LastModifiedUtc, hostValue, port, "pgsql", 1));
            }

            results.Should().BeEquivalentTo(expectedResults);
        }