示例#1
0
        bool CheckTestsPass(string str)
        {
            string funcName = $"<{nameof(CheckTestsPass)}>";

            if (PublicData.IDDataTV == null)
            {
                return(FailCmd("Нет записанных данных в память программы"));
            }
            if (!Directory.Exists(PublicData.LogsCheckPassPath))
            {
                return(FailCmd("Не доступна папка логов тестов."));
            }
            //PublicData.IDDataTV = "13test";
            string file = "ps" + PublicData.IDDataTV + ".txt";
            string path = Path.Combine(PublicData.LogsCheckPassPath, file);

            try
            {
                string name           = funcReadBetween(str, "[", "]");
                var    keysWhatToFind = section.IniFile.GetSection(name).Keys;

                if (!File.Exists(path))
                {
                    string msg = $"Файл не найден \"{path}\"";
                    CheckTestsPass_CopyWithError(file, path, msg);
                    return(FailCmd(funcName + msg));
                }
                var iniWhereToFind = new IniFile(path);
                foreach (IniFileList.IniSectionList.IniKey keyToFind in keysWhatToFind)
                {
                    string pass = iniWhereToFind.GetKeyValue(PublicData.IDDataTV.Txt, keyToFind.Name); //.Trim().ToLower();
                    pass = pass?.ToLower();                                                            //.Trim();
                    if (pass != "ok")
                    {
                        Ex.Try((Action)(() =>
                        {
                            logger.Trace($"1) pass != 'ok' = {pass?.ToString() ?? "null"}");
                            logger.Trace($"start search at inBuiltTests");
                            var funcToFind = Form1.InBuiltTests[keyToFind.Name];
                            var keysWhereToFind = iniWhereToFind.GetSection(PublicData.IDDataTV.Txt).Keys;

                            foreach (IniFile.IniSection.IniKey logkey in keysWhereToFind)
                            {
                                bool found = false;
                                Ex.Try(() =>
                                {
                                    if (funcToFind == Form1.InBuiltTests[logkey.Name])
                                    {
                                        pass = logkey.Value.ToLower();
                                        found = true;
                                    }
                                });
                                if (found)
                                {
                                    break;
                                }
                            }
                        }));
                        if (pass != "ok")
                        {
                            logger.Trace($"2) pass != 'ok' = {pass?.ToString() ?? "null"}");
                            logger.Trace($"after inBuiltTests search");
                            string msg1    = "";
                            string display = "";
                            if (Form1.InBuiltTests.ContainsKey(keyToFind.Name))
                            {
                                display = Form1.InBuiltTests[keyToFind.Name].DisplayName;
                            }
                            if (Form1.CreatedDisplays.ContainsKey(keyToFind.Name))
                            {
                                display = Form1.CreatedDisplays[keyToFind.Name];
                            }
                            msg1 = (pass == null)
                                ? $"\"{display}\" not found!{Environment.NewLine}<{keyToFind.Name}>"
                                : $"\"{display}\" = Fail.{Environment.NewLine}<{keyToFind.Name}>";
                            logger.Trace(msg1);
                            CheckTestsPass_CopyWithError(file, path, msg1);
                            return(FailCmd(funcName + msg1));
                        }
                    }
                }
                return(OkCmd(funcName));
            }
            catch (Exception ex)
            {
                return(FailCmd(ex, funcName));
            }
            finally
            {
                Ex.Try(() => File.Delete(path));
                PublicData.IDDataTV = null;
            }
        }