Skip to content
This repository was archived by the owner on Sep 20, 2022. It is now read-only.

Commit 4bfa6ee

Browse files
authored
Merge pull request #99 from asbjornu/feature/no-arguments-should-display-help
No arguments should output help
2 parents 294a31d + 3f97485 commit 4bfa6ee

4 files changed

Lines changed: 64 additions & 3 deletions

File tree

src/GitReleaseNotes.Tests/GitReleaseNotes.Tests.csproj

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@
3535
<WarningLevel>4</WarningLevel>
3636
</PropertyGroup>
3737
<ItemGroup>
38+
<Reference Include="Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f, processorArchitecture=MSIL">
39+
<HintPath>..\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll</HintPath>
40+
<Private>True</Private>
41+
</Reference>
3842
<Reference Include="ApprovalTests">
3943
<HintPath>..\packages\ApprovalTests.3.0.8\lib\net40\ApprovalTests.dll</HintPath>
4044
</Reference>
@@ -44,6 +48,10 @@
4448
<Reference Include="ApprovalUtilities.Net45">
4549
<HintPath>..\packages\ApprovalUtilities.3.0.8\lib\net45\ApprovalUtilities.Net45.dll</HintPath>
4650
</Reference>
51+
<Reference Include="Args, Version=1.1.0.37402, Culture=neutral, processorArchitecture=MSIL">
52+
<HintPath>..\packages\Args.1.1.2\lib\Net40\Args.dll</HintPath>
53+
<Private>True</Private>
54+
</Reference>
4755
<Reference Include="Atlassian.Jira, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
4856
<HintPath>..\packages\Atlassian.SDK.2.5.0\lib\Atlassian.Jira.dll</HintPath>
4957
<Private>True</Private>
@@ -94,6 +102,7 @@
94102
<Compile Include="GitRemoteRepositoryTests.cs" />
95103
<Compile Include="IssueTrackers\IssueNumberExtractor.cs" />
96104
<Compile Include="IssueTrackers\Jira\JiraIssueTrackerTests.cs" />
105+
<Compile Include="ProgramTests.cs" />
97106
<Compile Include="Properties\AssemblyInfo.cs" />
98107
<Compile Include="ReleaseFileWriterTests.cs" />
99108
<Compile Include="ReleaseNotesGeneratorTests.cs" />
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#region License
2+
3+
// --------------------------------------------------
4+
// Copyright © OKB. All Rights Reserved.
5+
//
6+
// This software is proprietary information of OKB.
7+
// USE IS SUBJECT TO LICENSE TERMS.
8+
// --------------------------------------------------
9+
10+
#endregion
11+
12+
using System;
13+
using System.IO;
14+
15+
using Args;
16+
using Args.Help;
17+
using Args.Help.Formatters;
18+
19+
using Shouldly;
20+
21+
using Xunit;
22+
23+
namespace GitReleaseNotes.Tests
24+
{
25+
public class ProgramTests
26+
{
27+
[Fact]
28+
public void NoArgumentsShouldOutputHelp()
29+
{
30+
using (var programWriter = new StringWriter())
31+
{
32+
Console.SetOut(programWriter);
33+
Program.Main(new string[0]);
34+
35+
var modelBindingDefinition = Configuration.Configure<GitReleaseNotesArguments>();
36+
var help = new HelpProvider().GenerateModelHelp(modelBindingDefinition);
37+
var f = new ConsoleHelpFormatter(80, 1, 5);
38+
39+
using (var helpWriter = new StringWriter())
40+
{
41+
f.WriteHelp(help, helpWriter);
42+
43+
programWriter.ToString().ShouldContain(helpWriter.ToString());
44+
}
45+
}
46+
}
47+
}
48+
}

src/GitReleaseNotes.Tests/packages.config

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3+
<package id="Antlr" version="3.5.0.2" targetFramework="net45" />
34
<package id="ApprovalTests" version="3.0.8" targetFramework="net45" />
45
<package id="ApprovalUtilities" version="3.0.8" targetFramework="net45" />
6+
<package id="Args" version="1.1.2" targetFramework="net45" />
57
<package id="Atlassian.SDK" version="2.5.0" targetFramework="net45" />
68
<package id="GitTools.Core" version="1.0.0-unstable0043" targetFramework="net45" />
79
<package id="GitTools.IssueTrackers" version="0.1.0-beta0002" targetFramework="net45" />

src/GitReleaseNotes/Program.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ public static class Program
1414
// TODO Fix logging.. Just choose serilog or something which liblog picks up
1515
private static readonly ILog Log = GitReleaseNotesEnvironment.Log;
1616

17-
static int Main(string[] args)
17+
public static int Main(string[] args)
1818
{
1919
GitReleaseNotesEnvironment.Log = new ConsoleLog();
2020

2121
var modelBindingDefinition = Configuration.Configure<GitReleaseNotesArguments>();
2222

23-
if (args.Any(a => a == "/?" || a == "?" || a.Equals("/help", StringComparison.InvariantCultureIgnoreCase)))
23+
if (!args.Any() ||args.Any(a => a == "/?" || a == "?" || a.Equals("/help", StringComparison.InvariantCultureIgnoreCase)))
2424
{
2525
ShowHelp(modelBindingDefinition);
2626

@@ -94,7 +94,9 @@ static int Main(string[] args)
9494
private static void ShowHelp(IModelBindingDefinition<GitReleaseNotesArguments> modelBindingDefinition, string reason = null)
9595
{
9696
var help = new HelpProvider().GenerateModelHelp(modelBindingDefinition);
97-
var f = new ConsoleHelpFormatter();
97+
98+
var bufferWidth = Console.IsOutputRedirected ? 80 : Console.BufferWidth;
99+
var f = new ConsoleHelpFormatter(bufferWidth, 1, 5);
98100
f.WriteHelp(help, Console.Out);
99101

100102
if (reason != null)

0 commit comments

Comments
 (0)