public void Convert_ExampleA_Default() { // act var resultHtml = SemanticReleaseNotesConverter.Convert(ExampleA); // assert Assert.Equal(ExampleAHtml, resultHtml.Trim()); }
public void Format_ExampleA_Default() { // act var resultHtml = SemanticReleaseNotesConverter.Format(GetExempleAReleaseNotes()); // assert Assert.Equal(ExampleAHtml, resultHtml.Trim()); }
public void Parse_TextReader_Syntax_Summaries() { // act var releaseNote = SemanticReleaseNotesConverter.Parse(GetTextReader(Syntax_Summaries)); // assert Assert.Equal(string.Format("This is a _project_ summary with two paragraphs.Lorem ipsum dolor sit amet consectetuer **adipiscing** elit.Aliquam hendreritmi posuere lectus.{0}{0}Vestibulum `enim wisi` viverra nec fringilla in laoreetvitae risus. Donec sit amet nisl. Aliquam [semper](?) ipsumsit amet velit.", Environment.NewLine), releaseNote.Summary); }
public void Convert_TextWriter_ExampleA_Default() { // arrange var resultHtml = new StringBuilder(); // act SemanticReleaseNotesConverter.Convert(GetTextReader(ExampleA), new StringWriter(resultHtml)); // assert Assert.Equal(ExampleAHtml, resultHtml.ToString().Trim()); }
public void Format_TextWriter_ExampleA_Default() { // arrange var resultHtml = new StringBuilder(); // act SemanticReleaseNotesConverter.Format(new StringWriter(resultHtml), GetExempleAReleaseNotes()); // assert Assert.Equal(ExampleAHtml, resultHtml.ToString().Trim()); }
private static int Run(string[] args) { try { SetDefaults(); var output = Console.Out; Logger.SetLogAction(ConsoleLogAction.Write); Logger.SetMinimalLevel(LogLevel.Info); Logger.Info("SemanticReleaseNotesParser V{0}", Assembly.GetExecutingAssembly().GetName().Version); // Arguments parsing var arguments = Arguments.ParseArguments(args); if (arguments.Help) { arguments.WriteOptionDescriptions(output); return(1); } // Handle debug if (arguments.Debug) { Logger.SetMinimalLevel(LogLevel.Debug); } if (!FileSystem.File.Exists(arguments.ReleaseNotesPath)) { Logger.Error("Release notes file '{0}' does not exists", arguments.ReleaseNotesPath); return(1); } // Settings string template = null; if (!string.IsNullOrEmpty(arguments.TemplatePath)) { if (!FileSystem.File.Exists(arguments.TemplatePath)) { Logger.Error("Template file '{0}' does not exists", arguments.TemplatePath); return(1); } Logger.Debug("Custom template used: '{0}'", arguments.TemplatePath); template = FileSystem.File.ReadAllText(arguments.TemplatePath); } var settings = new SemanticReleaseNotesConverterSettings { OutputFormat = arguments.OutputFormat, LiquidTemplate = template, GroupBy = arguments.GroupBy, PluralizeCategoriesTitle = arguments.PluralizeCategoriesTitle, IncludeStyle = arguments.IncludeStyle != null, CustomStyle = GetCustomStyle(arguments.IncludeStyle) }; // Parsing Logger.Debug("Parsing release notes '{0}'", arguments.ReleaseNotesPath); var releaseNotes = SemanticReleaseNotesConverter.Parse(FileSystem.File.OpenText(arguments.ReleaseNotesPath), settings); // Formatting string formattedReleaseNotes = SemanticReleaseNotesConverter.Format(releaseNotes, settings); Logger.Debug("Formatted release notes: {0}", formattedReleaseNotes); // Select output if (arguments.OutputType.HasFlag(OutputType.File)) { Logger.Debug("File output"); FileSystem.File.WriteAllText(arguments.ResultFilePath, formattedReleaseNotes); Logger.Info("File '{0}' generated", arguments.ResultFilePath); } if (arguments.OutputType.HasFlag(OutputType.Environment)) { Logger.Debug("Environment output"); var buildServer = GetApplicableBuildServer(); Logger.Debug("Build server selected: {0}", buildServer.GetType().Name); buildServer.SetEnvironmentVariable("SemanticReleaseNotes", formattedReleaseNotes); } return(0); } catch (Exception exception) { var error = string.Format("An unexpected error occurred:\r\n{0}", exception); Logger.Error(error); return(1); } }