diff --git a/Medications.slnx b/Medications.slnx
index ba4ce66..604e424 100644
--- a/Medications.slnx
+++ b/Medications.slnx
@@ -4,7 +4,7 @@
-
+
diff --git a/README.md b/README.md
index b23e8eb..ee2e05b 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
[](https://github.com/fernandotonacoder/medications-rest-api/actions/workflows/ci.yml)
[](https://dotnet.microsoft.com/)
[](https://learn.microsoft.com/en-us/dotnet/aspire/)
-[](https://www.microsoft.com/sql-server)
+[](https://www.microsoft.com/sql-server)
[](https://scalar.com/)
[](https://sonarcloud.io/summary/overall?id=fernandotonacoder_medications-rest-api)
diff --git a/tests/Medications.Unit.Tests/MedicationEndpointsRegistrationUnitTests.cs b/tests/Medications.Unit.Tests/MedicationEndpointsRegistrationUnitTests.cs
new file mode 100644
index 0000000..fb9aeaa
--- /dev/null
+++ b/tests/Medications.Unit.Tests/MedicationEndpointsRegistrationUnitTests.cs
@@ -0,0 +1,59 @@
+using Medications.Api.Data;
+using Medications.Api.Endpoints;
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Routing;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.DependencyInjection;
+
+namespace Medications.Unit.Tests
+{
+ public class MedicationEndpointsRegistrationUnitTests
+ {
+ [Theory]
+ [InlineData("GET", "/api/medications/")]
+ [InlineData("GET", "/api/medications/{id}")]
+ [InlineData("POST", "/api/medications/")]
+ [InlineData("DELETE", "/api/medications/{id}")]
+ public void MapMedicationEndpoints_RegistersRoute(string httpMethod, string pattern)
+ {
+ var endpoints = MapEndpoints();
+
+ Assert.Contains(endpoints, endpoint =>
+ endpoint.RoutePattern.RawText == pattern
+ && endpoint.Metadata.GetMetadata()!.HttpMethods.Contains(httpMethod));
+ }
+
+ [Fact]
+ public void MapMedicationEndpoints_RegistersOnlyTheFourEndpoints()
+ {
+ Assert.Equal(4, MapEndpoints().Count);
+ }
+
+ [Fact]
+ public void GetMedicationById_IsNamed_SoCreatedAtRouteResolvesTheLocationHeader()
+ {
+ var endpoints = MapEndpoints();
+
+ var named = Assert.Single(endpoints, endpoint =>
+ endpoint.Metadata.GetMetadata()?.EndpointName == "GetMedication");
+ Assert.Equal("/api/medications/{id}", named.RoutePattern.RawText);
+ }
+
+ private static List MapEndpoints()
+ {
+ var builder = WebApplication.CreateSlimBuilder();
+ builder.Services.AddDbContext(
+ options => options.UseInMemoryDatabase(nameof(MedicationEndpointsRegistrationUnitTests)));
+ builder.Services.AddSingleton(TimeProvider.System);
+
+ var app = builder.Build();
+
+ app.MapMedicationEndpoints();
+
+ return ((IEndpointRouteBuilder)app).DataSources
+ .SelectMany(dataSource => dataSource.Endpoints)
+ .OfType()
+ .ToList();
+ }
+ }
+}
diff --git a/tests/Medications.Unit.Tests/Medications.Unit.Tests.csproj b/tests/Medications.Unit.Tests/Medications.Unit.Tests.csproj
index 1234f5e..955983c 100644
--- a/tests/Medications.Unit.Tests/Medications.Unit.Tests.csproj
+++ b/tests/Medications.Unit.Tests/Medications.Unit.Tests.csproj
@@ -2,8 +2,6 @@
false
-
$(MSBuildThisFileDirectory)..\test.runsettings