Beispiel #1
0
        private static IList<YamlDefinition> GetFolderFiles(string folder, bool useCache = false)
        {
            var url = useCache ? LocalUri(folder + ".html") : _listingUrl + "/" + folder;
            var folderHtml = new WebClient().DownloadString(url);
            if (!useCache)
                File.WriteAllText(_cacheFolder + folder + ".html", folderHtml);
            var files = (from a in CQ.Create(folderHtml)[".js-directory-link"]
                let fileName = a.InnerText
                where fileName.EndsWith(".yaml")
                select fileName).ToList();

            var definitions = new ConcurrentBag<YamlDefinition>();
            var i = 0;
            foreach (var file in files)
            {
                ++i;
                var yaml = GetYamlFile(folder, useCache, file);
                var parsed = ParseYaml(yaml).ToList();
                var prefix = Regex.Replace(file, @"^(\d+).*$", "$1");
                var yamlDefinition = new YamlDefinition
                {
                    Folder = folder + i,
                    FileName = file,
                    Contents = yaml,
                    Suites = parsed,
                    Suffix = prefix
                };
                PatchDefinition(yamlDefinition, folder, file);
                definitions.Add(yamlDefinition);
            }
            return definitions.ToList();
        }
Beispiel #2
0
        /// <summary>
        /// Path definition to catch known name clashes for instance
        /// </summary>
        private static void PatchDefinition(YamlDefinition yamlDefinition, string folder, string file)
        {
            if (file == "10_ping.yaml")
                yamlDefinition.Suites.First().Description = "Ping returns true";
            if (file == "55_parent_with_routing.yaml")
                yamlDefinition.Suites.First().Description = "Parent with routing";
            if (file == "10_info.yaml")
                yamlDefinition.Suites.First().Description = "Info returns body";
            if (file == "20_fields_pre_0.90.3.yaml")
                yamlDefinition.Suites.First().Description = "Fields Pre 0.90.3";

            var setupRoutine = yamlDefinition.Suites
                .FirstOrDefault(s => s.Description.Contains("setup"));
            if (setupRoutine != null)
            {
                yamlDefinition.SetupSuite = setupRoutine;
                foreach (var suite in yamlDefinition.Suites)
                    suite.HasSetup = true;
                yamlDefinition.Suites = yamlDefinition.Suites.Where(s => !s.Description.Contains("setup"));
            }
        }
Beispiel #3
0
 public static void GenerateTestFileFromView(string targetFile, YamlDefinition model)
 {
     var source = _razorMachine.Execute(File.ReadAllText(_viewFolder + @"TestSuite.cshtml"), model).ToString();
     File.WriteAllText(targetFile, source);
 }