43 lines
1.3 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|