Skip to content

Commit 99fe70f

Browse files
committed
First version
1 parent 3d753f7 commit 99fe70f

28 files changed

+1276
-109
lines changed

Build/Build.cs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -154,15 +154,21 @@ class Build : NukeBuild
154154
.WhenNotNull(SemVer, (c, semVer) => c
155155
.AddPair("Packed version", semVer)));
156156

157+
Project[] projects = [
158+
Solution.GetProject("Pathy"),
159+
Solution.GetProject("Pathy.Globbing")
160+
];
161+
157162
DotNetPack(s => s
158-
.SetProject(Solution.GetProject("Pathy"))
159-
.SetOutputDirectory(ArtifactsDirectory)
160-
.SetConfiguration(Configuration == Configuration.Debug ? "Debug" : "Release")
161-
.EnableNoBuild()
162-
.EnableNoLogo()
163-
.EnableNoRestore()
164-
.EnableContinuousIntegrationBuild() // Necessary for deterministic builds
165-
.SetVersion(SemVer));
163+
.CombineWith(projects, (settings, project) => settings
164+
.SetProject(project)
165+
.SetOutputDirectory(ArtifactsDirectory)
166+
.SetConfiguration(Configuration == Configuration.Debug ? "Debug" : "Release")
167+
.EnableNoBuild()
168+
.EnableNoLogo()
169+
.EnableNoRestore()
170+
.EnableContinuousIntegrationBuild() // Necessary for deterministic builds
171+
.SetVersion(SemVer)));
166172
});
167173

168174
Target Push => _ => _

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<LangVersion>11.0</LangVersion>
44
<CheckEolTargetFramework>false</CheckEolTargetFramework>
5-
<WarningsNotAsErrors>$(WarningsNotAsErrors);NU1902;NU1903</WarningsNotAsErrors> <!-- disable EOL warnings -->
5+
<WarningsNotAsErrors>$(WarningsNotAsErrors);NU1900;NU1902;NU1903</WarningsNotAsErrors> <!-- disable EOL warnings -->
66
<NoWarn>1591;1573</NoWarn>
77
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
88
</PropertyGroup>
Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
using System.IO;
2-
using System.Linq;
3-
using System.Reflection;
1+
using System.Reflection;
42
using System.Runtime.CompilerServices;
53
using System.Threading.Tasks;
64
using System.Xml.Linq;
@@ -18,36 +16,45 @@ public class ApiApproval
1816
static ApiApproval() => VerifyDiffPlex.Initialize(OutputType.Minimal);
1917

2018
[Theory]
21-
[ClassData(typeof(TargetFrameworksTheoryData))]
22-
public Task ApproveApi(string framework)
19+
[InlineData("netstandard2.0")]
20+
[InlineData("netstandard2.1")]
21+
[InlineData("net47")]
22+
[InlineData("net8.0")]
23+
public async Task ApprovePathyApi(string targetFramework)
2324
{
2425
var configuration = typeof(ApiApproval).Assembly.GetCustomAttribute<AssemblyConfigurationAttribute>()!.Configuration;
25-
var assemblyFile = CombinedPaths("Pathy", "bin", configuration, framework, "Pathy.dll");
26+
var assemblyFile = GetSolutionDirectory() / "Pathy" / "bin" / configuration / targetFramework / "Pathy.dll";
2627
var assembly = Assembly.LoadFile(assemblyFile);
2728
var publicApi = assembly.GeneratePublicApi(options: null);
2829

29-
return Verifier
30+
await Verifier
3031
.Verify(publicApi)
3132
.ScrubLinesContaining("FrameworkDisplayName")
3233
.UseDirectory("ApprovedApi")
33-
.UseFileName(framework)
34+
.UseFileName("pathy." + targetFramework)
3435
.DisableDiff();
3536
}
3637

37-
private class TargetFrameworksTheoryData : TheoryData<string>
38+
[Theory]
39+
[InlineData("netstandard2.0")]
40+
[InlineData("netstandard2.1")]
41+
[InlineData("net47")]
42+
[InlineData("net8.0")]
43+
public async Task ApprovePathyGlobbingApi(string targetFramework)
3844
{
39-
public TargetFrameworksTheoryData()
40-
{
41-
var csproj = CombinedPaths("Pathy", "Pathy.csproj");
42-
var project = XDocument.Load(csproj);
43-
var targetFrameworks = project.XPathSelectElement("/Project/PropertyGroup/TargetFrameworks");
44-
AddRange(targetFrameworks!.Value.Split(';'));
45-
}
46-
}
45+
var configuration = typeof(ApiApproval).Assembly.GetCustomAttribute<AssemblyConfigurationAttribute>()!.Configuration;
46+
var assemblyFile = GetSolutionDirectory() / "Pathy.Globbing" / "bin" / configuration / targetFramework / "Pathy.Globbing.dll";
47+
var assembly = Assembly.LoadFile(assemblyFile);
48+
var publicApi = assembly.GeneratePublicApi(options: null);
4749

48-
private static string CombinedPaths(params string[] paths) =>
49-
Path.GetFullPath(Path.Combine(paths.Prepend(GetSolutionDirectory()).ToArray()));
50+
await Verifier
51+
.Verify(publicApi)
52+
.ScrubLinesContaining("FrameworkDisplayName")
53+
.UseDirectory("ApprovedApi")
54+
.UseFileName("pathy.globbing." + targetFramework)
55+
.DisableDiff();
56+
}
5057

51-
private static string GetSolutionDirectory([CallerFilePath] string path = "") =>
52-
Path.Combine(Path.GetDirectoryName(path)!, "..");
58+
private static ChainablePath GetSolutionDirectory([CallerFilePath] string path = "") =>
59+
ChainablePath.From(path).Directory / "..";
5360
}

Pathy.ApiVerificationTests/ApprovedApi/net47.verified.txt

Lines changed: 0 additions & 10 deletions
This file was deleted.

Pathy.ApiVerificationTests/ApprovedApi/net8.0.verified.txt

Lines changed: 0 additions & 10 deletions
This file was deleted.

Pathy.ApiVerificationTests/ApprovedApi/netstandard2.0.verified.txt

Lines changed: 0 additions & 10 deletions
This file was deleted.

Pathy.ApiVerificationTests/ApprovedApi/netstandard2.1.verified.txt

Lines changed: 0 additions & 10 deletions
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("Pathy.Specs")]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("Pathy.Specs")]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("Pathy.Specs")]

0 commit comments

Comments
 (0)