Skip to content

Commit 134572f

Browse files
committed
Added ConfigurationDocumentationIsUpToDate test
1 parent 8e65245 commit 134572f

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

src/GitVersionCore.Tests/DocumentationTests.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,44 @@
11
using System;
22
using System.IO;
33
using System.Linq;
4+
using System.Reflection;
45

56
using GitVersion;
67

78
using NUnit.Framework;
89

910
using Shouldly;
1011

12+
using YamlDotNet.Serialization;
13+
1114
[TestFixture]
1215
public class DocumentationTests
1316
{
17+
[Test]
18+
public void ConfigurationDocumentationIsUpToDate()
19+
{
20+
var configurationDocumentationFile = ReadDocumentationFile("configuration.md");
21+
22+
const BindingFlags bindingFlags = BindingFlags.Public | BindingFlags.DeclaredOnly | BindingFlags.Instance;
23+
var configProperties = typeof(Config)
24+
.GetProperties(bindingFlags)
25+
.Union(typeof(BranchConfig).GetProperties(bindingFlags))
26+
.Select(p => p.GetCustomAttribute<YamlMemberAttribute>())
27+
.Where(a => a != null)
28+
.Select(a => a.Alias)
29+
.ToList();
30+
31+
configProperties.ShouldNotBeEmpty();
32+
33+
foreach (var configProperty in configProperties)
34+
{
35+
var formattedConfigProperty = string.Format("**`{0}:`**", configProperty);
36+
configurationDocumentationFile.ShouldContain(formattedConfigProperty,
37+
Environment.NewLine + configurationDocumentationFile);
38+
}
39+
}
40+
41+
1442
[Test]
1543
public void VariableDocumentationIsUpToDate()
1644
{

0 commit comments

Comments
 (0)