예제 #1
0
        //RB: This function gets the sections name and ID for a specific suite
        public static Dictionary <string, string> GetSections(object project, Dictionary <string, string> dictNameSuite, string suiteName)
        {
            RArray = TestExporter.Get1("get_sections/" + AppSettings[project.ToString()] + "&suite_id=" + dictNameSuite[suiteName]);
            Dictionary <string, string> dictNameSections = new Dictionary <string, string>();

            foreach (var item in RArray.Children())
            {
                var obj = JObject.Parse(item.ToString());
                dictNameSections.Add((string)obj.SelectToken("name"), (string)obj.SelectToken("id"));
            }
            return(dictNameSections);
        }
예제 #2
0
 public static Encoding DetectInputCodepage(byte[] input)
 {
     try {
         Encoding[] encodings = DetectInputAllCodepages(input);
         if (encodings != null && encodings.Length > 0)
         {
             // Single
             if (encodings.Length == 1)
             {
                 return(encodings[0]);
             }
             // Shift-Jis
             foreach (Encoding encoding in encodings)
             {
                 if (String.Equals(encoding.WebName, "shift_jis", StringComparison.CurrentCultureIgnoreCase))
                 {
                     return(encoding);
                 }
             }
             // Unicode
             if (RArray <Encoding> .Contains(encodings, Encoding.Unicode))
             {
                 return(Encoding.Unicode);
             }
             // BigEndianUnicode
             if (RArray <Encoding> .Contains(encodings, Encoding.BigEndianUnicode))
             {
                 return(Encoding.BigEndianUnicode);
             }
             // UTF32
             if (RArray <Encoding> .Contains(encodings, Encoding.UTF32))
             {
                 return(Encoding.UTF32);
             }
             // UTF8
             if (RArray <Encoding> .Contains(encodings, Encoding.UTF8))
             {
                 return(Encoding.UTF8);
             }
             // UTF7
             if (RArray <Encoding> .Contains(encodings, Encoding.UTF7))
             {
                 return(Encoding.UTF7);
             }
             return(encodings[0]);
         }
         return(Encoding.Default);
     } catch (COMException) {
         return(Encoding.Default);
     }
 }
예제 #3
0
        //RB: This function allows to add cases for a dedicated project, suite, section
        public static void AddCases(Dictionary <string, Tuple <int, string> > dict, string path, string testType, object project, object suiteName, object sectionName, string sectionId)
        {
            var           dictNameSuite    = GetSuites(project);
            var           dictNameSections = GetSections(project, dictNameSuite, suiteName.ToString());
            List <string> TestRailLists    = new List <string>();

            RArray = TestExporter.Get1("get_cases/" +
                                       AppSettings[project.ToString()] + "&suite_id=" +
                                       dictNameSuite[suiteName.ToString()] + "&section_id=" +
                                       dictNameSections[sectionName.ToString()]);
            if (RArray.Count == 0)
            {
                foreach (string key in dict.Keys)
                {
                    JObject  r = TestExporter.CreateTestName("add_case/" + sectionId, key);
                    JToken   s = r.First;
                    string[] t = (s.ToString()).Split(':');
                }
            }
            else
            {
                if (RArray.Count() != dict.Count())
                {
                    //In this step, add any tests not present in TestRail in case of 429 exception, you can keep adding tests
                    foreach (var item in RArray.Children())
                    {
                        var obj   = JObject.Parse(item.ToString());
                        var title = (string)obj.SelectToken("title");
                        TestRailLists.Add(title.Trim());
                    }
                    foreach (var elem in dict.Keys.ToList())
                    {
                        if (!TestRailLists.Contains(elem.Trim()))
                        {
                            JObject r = TestExporter.CreateTestName("add_case/" + sectionId, elem);
                        }
                    }
                }
                else
                {
                    Console.WriteLine("Test Cases have been already added");
                }
            }
        }
예제 #4
0
        //RB: This function gets the suites name and ID for a specific project
        public static Dictionary <string, string> GetSuites(object project)
        {
            // Load  AppSettings from embedded resource (saves distributing the config)
            using (var stream = typeof(RunandResults).Assembly.GetManifestResourceStream("ResultsParser.appSettings.config"))
            {
                var doc = XDocument.Load(stream);
                foreach (var a in doc.Element("appSettings").Elements("add"))
                {
                    AppSettings[a.Attribute("key").Value] = a.Attribute("value").Value;
                }
            }
            RArray = TestExporter.Get1("get_suites/" + AppSettings[project.ToString()]);
            Dictionary <string, string> dictNameSuite = new Dictionary <string, string>();

            foreach (var item in RArray.Children())
            {
                var obj = JObject.Parse(item.ToString());
                dictNameSuite.Add((string)obj.SelectToken("name"), (string)obj.SelectToken("id"));
            }
            return(dictNameSuite);
        }
예제 #5
0
 //============================================================
 // <T>查找对象数组的位置。</T>
 // <P>如果不存在则返回-1。</P>
 //
 // @param items 对象数组
 // @return 所在位置
 //============================================================
 public int Find(FVector <T> items)
 {
     return(RArray <T> .Find(_items, 0, _count, items._items, 0, items._count));
 }
예제 #6
0
 //============================================================
 // <T>查找对象数组的位置。</T>
 // <P>如果不存在则返回-1。</P>
 //
 // @param items 对象数组
 // @return 所在位置
 //============================================================
 public int Find(T[] items)
 {
     return(RArray <T> .Find(_items, 0, _count, items, 0, items.Length));
 }
예제 #7
0
 //============================================================
 // <T>查找对象数组的位置。</T>
 // <P>如果不存在则返回-1。</P>
 //
 // @param items 对象数组
 // @param offset 开始位置
 // @param count 对象个数
 // @return 所在位置
 //============================================================
 public int Find(T[] items, int offset, int count)
 {
     return(RArray <T> .Find(_items, 0, _count, items, offset, count));
 }