Files
PSInfisicalAPI/src/PSInfisicalAPI.Tests/SourcePolicyTests.cs
T

43 lines
1.3 KiB
C#

using System.IO;
using System.Text.RegularExpressions;
using Xunit;
namespace PSInfisicalAPI.Tests
{
public class SourcePolicyTests
{
private static DirectoryInfo RepositoryRoot()
{
DirectoryInfo current = new DirectoryInfo(System.AppContext.BaseDirectory);
while (current != null)
{
if (File.Exists(Path.Combine(current.FullName, "PSInfisicalAPI.sln")))
{
return current;
}
current = current.Parent;
}
return null;
}
[Fact]
public void No_Async_Or_Await_Keywords_In_Production_Source()
{
DirectoryInfo root = RepositoryRoot();
Assert.NotNull(root);
DirectoryInfo src = new DirectoryInfo(Path.Combine(root.FullName, "src", "PSInfisicalAPI"));
Assert.True(src.Exists);
Regex asyncRegex = new Regex(@"\basync\b");
Regex awaitRegex = new Regex(@"\bawait\b");
foreach (FileInfo file in src.EnumerateFiles("*.cs", SearchOption.AllDirectories))
{
string content = File.ReadAllText(file.FullName);
Assert.DoesNotMatch(asyncRegex, content);
Assert.DoesNotMatch(awaitRegex, content);
}
}
}
}