public void Can_compile_sass_file(string label, int expectedFiles, CompilerOptions options) { // Arrange var cwd = Path.Combine(AppContext.BaseDirectory, "generated", label); if (Directory.Exists(cwd)) { Directory.Delete(cwd, recursive: true); } Directory.CreateDirectory(cwd); options.OutputDirectory = cwd; // Act var result = SassCompiler.Compile(Sample.GetBasicSCSS().FullName, options); var totalFiles = Directory.GetFiles(cwd, "*").Length; var builder = new StringBuilder(); var separator = string.Concat(Enumerable.Repeat('=', 50)); foreach (var item in result.GeneratedFiles) { builder.AppendLine($"== {Path.GetFileName(item)} ({label})") .AppendLine(separator) .AppendLine(File.ReadAllText(item)) .AppendLine() .AppendLine(); } // Assert result.Success.ShouldBeTrue(); totalFiles.ShouldBe(expectedFiles); result.GeneratedFiles.Length.ShouldBe(expectedFiles); Diff.Approve(builder, ".txt", label); }
public void Can_handle_speacial_data_types() { // Arrange var schema = new Schema(); schema.AddRange(new IField[] { new AvatarField("avatar"), new TemplateField("tempate") { Value = "{avatar}" }, new DummyImageURLField("dummy image"), new DigitSequenceField("digit sequence") { Format = "###-@@@" }, new StateField("state"), new ParagraphsField("paragraph"), new NatoPhoneticField("nato"), new FormulaField("formula", "2+2") }); var sut = new MockarooClient(); // Act var data = sut.FetchDataAsync(schema, 1).Result; var results = JArray.Parse(Encoding.UTF8.GetString(data)).ToString(Formatting.Indented); // Assert results.ShouldNotBeNullOrEmpty(); Diff.Approve(schema, ".json"); //Diff.Approve(results, ".json", "result"); }
public void Can_emit_declaration_files(string[] sourceFiles, string label) { var config = new TypescriptGeneratorSettings(); string results = UTF8(DeclarationFileGenerator.Emit(config, sourceFiles)); Diff.Approve(results, ".ts", label); }
public void Can_emit_knockout_js_files(string[] sourceFiles, string label) { var config = new TypescriptGeneratorSettings("App", suffix: "Model", koJs: true, references: new string[] { "../../../../node_modules/@types/knockout/index.d.ts" }); var results = KnockoutJsGenerator.Emit(config, sourceFiles); Diff.Approve(UTF8(results), ".ts", label); }
private static void RunTypeToSchemaTest <T>(int depth = 1) { var schema = MockarooConvert.ToSchema <T>(depth); var json = JArray.Parse(schema.ToString()).ToString(Newtonsoft.Json.Formatting.Indented); Diff.Approve(json, ".json"); }
public void Can_create_various_date_ranges(string date) { // Arrange var anchor = DateTime.Parse(date); dynamic result = new System.Dynamic.ExpandoObject(); string format(DateField d) => $"{d.Min.ToString(FORMAT)} => {d.Max.ToString(FORMAT)}"; // Act result.Input = date; var today = DateField.ForToday("today", anchor); result.Today = format(today); var week = DateField.ForThisWeek("week", anchor); result.ThisWeek = format(week); var month = DateField.ForThisMonth("month", anchor); result.ThisMonth = format(month); var year = DateField.ForThisYear("year", anchor); result.ThisYear = format(year); var json = JsonConvert.SerializeObject(result, Formatting.Indented); // Assert Diff.Approve(json, ".json", date); }
public void Can_parse_source_files(string[] sourceFiles) { // Arrange var results = new StringBuilder(); var label = string.Join('_', sourceFiles.Select(x => Path.GetFileNameWithoutExtension(x))); // Act foreach (var type in Adapter.ParseFiles(sourceFiles)) { results.AppendLine(Serialize(type)); } // Assert results.ToString().ShouldNotBeNullOrEmpty(); Diff.Approve(results, ".txt", label); }
public void Can_update_project_file(string fileName) { // Arrange var projectFile = Sample.GetFile(fileName).FullName; var results = new StringBuilder(); results.AppendHeader("BEFORE"); results.AppendLine(File.ReadAllText(projectFile)).AppendLine(); // Act var contents = Editor.UpdateProjectFile(projectFile, GetManifest()); results.AppendHeader("AFTER"); results.AppendLine(contents); // Assert contents.ShouldNotContain("xxx"); Diff.Approve(results, Path.GetFileNameWithoutExtension(fileName)); }
public void Can_serialize_json_manifest() { // Arrange var manifestPath = Path.Combine(Path.GetTempPath(), $"{nameof(Ncrement)}_test_temp.json".ToLowerInvariant()); File.Copy(Sample.GetManifestJSON().FullName, manifestPath, overwrite: true); // Act var manifest = Manifest.LoadFrom(manifestPath); manifest.Save(manifestPath); var json = File.ReadAllText(manifestPath); // Assert manifest.ShouldNotBeNull(); manifest.BranchVersionMap.ShouldNotBeEmpty(); manifest.Version.ShouldBe(new SemanticVersion(0, 0, 3)); json.ShouldNotBeNullOrEmpty(); Diff.Approve(json, ".json"); }
public void Can_edit_manifest_file() { // Arrange var sourceFile = Sample.GetManifestJSON().FullName; var manifestPath = Path.Combine(Path.GetTempPath(), "manifest.tmp"); string folder = Path.GetDirectoryName(manifestPath); if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } File.Copy(sourceFile, manifestPath, overwrite: true); var manifest = Manifest.LoadFrom(manifestPath); // Act var result = Editor.UpdateManifestFile(sourceFile, manifest); // Assert Diff.Approve(result, ".json"); }
public void Can_compile_ts_files(string label, int expectedFiles, string configFile) { // Arrange var cwd = Path.Combine(AppContext.BaseDirectory, "generated", label); if (Directory.Exists(cwd)) { Directory.Delete(cwd, recursive: true); } Directory.CreateDirectory(cwd); Helper.CopyFolder(Sample.ProjectFolder, cwd); // Act var result = Compiler.Run(new CompilerOptions(Path.Combine(cwd, configFile))); var totalFiles = (from x in Directory.EnumerateFiles(cwd, "*.js*", SearchOption.AllDirectories) where Path.GetExtension(x) != ".json" select x).Count(); var builder = new StringBuilder(); var separator = string.Concat(Enumerable.Repeat('=', 50)); foreach (var item in result.GeneratedFiles.OrderBy(x => Path.GetFileName(x))) { builder.AppendLine($"== {label} ({Path.GetFileName(item)})") .AppendLine(separator) .AppendLine(File.ReadAllText(item)) .AppendLine() .AppendLine(); } // Assert result.Success.ShouldBeTrue(); result.SourceFiles.ShouldNotBeEmpty(); totalFiles.ShouldBe(expectedFiles); result.GeneratedFiles.Length.ShouldBe(expectedFiles); Diff.Approve(builder, ".txt", label); }
public static void RunIndirectTestA() { Diff.Approve($"{nameof(Diff)}.{nameof(Diff.Approve)} was not invoked directly from the test method."); }
public async Task Can_be_used_with_async_tests() { await Task.Run(() => { System.Diagnostics.Debug.WriteLine("do work!"); }); Diff.Approve("I can handle async methods.", default, ".txt", ApprovedResults);
public void Can_specify_the_extension_when_approving_text() { Diff.Approve("{ \"name\": \"John Doe\", \"age\": \"84\" }", "json"); }
public void Can_approve_an_object() { Diff.Approve(12345); }
public void Can_be_used_with_xunit() { Diff.Approve("This message confirms XUnit is supported."); }