Skip to content

Commit

Permalink
test: include frameworks of both sut and test in filename
Browse files Browse the repository at this point in the history
  • Loading branch information
skwasjer committed Oct 1, 2024
1 parent d6fe576 commit ea2dfb7
Show file tree
Hide file tree
Showing 7 changed files with 583 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/skwasjer/MockHttp")]
[assembly: System.Runtime.Versioning.TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName=".NET Standard 2.1")]
namespace MockHttp.Json
{
public interface IJsonAdapter
{
string Serialize(object? value);
}
public static class JsonRequestMatchingExtensions
{
public static MockHttp.RequestMatching JsonBody<T>(this MockHttp.RequestMatching builder, T content) { }
public static MockHttp.RequestMatching JsonBody<T>(this MockHttp.RequestMatching builder, T body, MockHttp.Json.IJsonAdapter? adapter) { }
}
public static class MockConfigurationExtensions
{
public static MockHttp.IMockConfiguration UseJsonAdapter(this MockHttp.IMockConfiguration mockConfig, MockHttp.Json.IJsonAdapter jsonAdapter) { }
}
public static class ResponseBuilderExtensions
{
public static MockHttp.Language.Flow.Response.IWithContentResult JsonBody<T>(this MockHttp.Language.Response.IWithContent builder, System.Func<T> jsonContentFactory, System.Text.Encoding? encoding = null, MockHttp.Json.IJsonAdapter? adapter = null) { }
public static MockHttp.Language.Flow.Response.IWithContentResult JsonBody<T>(this MockHttp.Language.Response.IWithContent builder, T jsonContent, System.Text.Encoding? encoding = null, MockHttp.Json.IJsonAdapter? adapter = null) { }
}
}
namespace MockHttp.Json.Newtonsoft
{
public static class MockConfigurationExtensions
{
public static MockHttp.IMockConfiguration UseNewtonsoftJson(this MockHttp.IMockConfiguration mockConfig, Newtonsoft.Json.JsonSerializerSettings? serializerSettings = null) { }
}
public class NewtonsoftAdapter : MockHttp.Json.IJsonAdapter
{
public NewtonsoftAdapter(Newtonsoft.Json.JsonSerializerSettings? settings = null) { }
public string Serialize(object? value) { }
}
public static class RequestMatchingExtensions
{
public static MockHttp.RequestMatching JsonBody<T>(this MockHttp.RequestMatching builder, T body, Newtonsoft.Json.JsonSerializerSettings? serializerSettings) { }
}
public static class ResponseBuilderExtensions
{
public static MockHttp.Language.Flow.Response.IWithContentResult JsonBody<T>(this MockHttp.Language.Response.IWithContent builder, System.Func<T> jsonContentFactory, System.Text.Encoding? encoding = null, Newtonsoft.Json.JsonSerializerSettings? serializerSettings = null) { }
public static MockHttp.Language.Flow.Response.IWithContentResult JsonBody<T>(this MockHttp.Language.Response.IWithContent builder, T jsonContent, System.Text.Encoding? encoding = null, Newtonsoft.Json.JsonSerializerSettings? serializerSettings = null) { }
}
}
namespace MockHttp.Json.SystemTextJson
{
public static class MockConfigurationExtensions
{
public static MockHttp.IMockConfiguration UseSystemTextJson(this MockHttp.IMockConfiguration mockConfig, System.Text.Json.JsonSerializerOptions? options = null) { }
}
public static class RequestMatchingExtensions
{
public static MockHttp.RequestMatching JsonBody<T>(this MockHttp.RequestMatching builder, T body, System.Text.Json.JsonSerializerOptions? serializerOptions) { }
}
public static class ResponseBuilderExtensions
{
public static MockHttp.Language.Flow.Response.IWithContentResult JsonBody<T>(this MockHttp.Language.Response.IWithContent builder, System.Func<T> jsonContentFactory, System.Text.Encoding? encoding = null, System.Text.Json.JsonSerializerOptions? serializerOptions = null) { }
public static MockHttp.Language.Flow.Response.IWithContentResult JsonBody<T>(this MockHttp.Language.Response.IWithContent builder, T jsonContent, System.Text.Encoding? encoding = null, System.Text.Json.JsonSerializerOptions? serializerOptions = null) { }
}
public sealed class SystemTextJsonAdapter : MockHttp.Json.IJsonAdapter
{
public SystemTextJsonAdapter(System.Text.Json.JsonSerializerOptions? options = null) { }
public string Serialize(object? value) { }
}
}
16 changes: 13 additions & 3 deletions test/MockHttp.Testing/Specs/PublicApiSpec.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,13 @@ public Task Api_has_not_changed()
Assembly sut = _assemblyMarkerType.Assembly;
var settings = new VerifySettings();

string targetFramework = sut.GetCustomAttribute<TargetFrameworkAttribute>()?.FrameworkDisplayName?.Replace(' ', '_')
?? throw new InvalidOperationException("Framework display name is required.");
settings.UseFileName(targetFramework);
string sutTargetFramework = GetTargetFramework(sut);
string testTargetFramework = GetTargetFramework(GetType().Assembly);
settings.UseFileName(
sutTargetFramework == testTargetFramework
? sutTargetFramework
: $"{sutTargetFramework}_via_{testTargetFramework}"
);
settings.UseDirectory("PublicApi");

// Act
Expand All @@ -56,6 +60,12 @@ public Task Api_has_not_changed()
return Verify(publicApi, settings, _sourceFile!);
#pragma warning restore S3236
}

private static string GetTargetFramework(Assembly asm)
{
return asm.GetCustomAttribute<TargetFrameworkAttribute>()?.FrameworkDisplayName?.Replace(' ', '_')
?? throw new InvalidOperationException("Framework display name is required.");
}
}
#else
namespace MockHttp.Specs;
Expand Down
Loading

0 comments on commit ea2dfb7

Please sign in to comment.