Skip to content

Instantly share code, notes, and snippets.

@ptrkrlsrd
Created November 2, 2021 09:39
Show Gist options
  • Save ptrkrlsrd/e425e2aff89a015cc3a228d7e76118d1 to your computer and use it in GitHub Desktop.
Save ptrkrlsrd/e425e2aff89a015cc3a228d7e76118d1 to your computer and use it in GitHub Desktop.
Test your services controllers for verbs to avoid bad practice in naming API endoints
[Fact]
public void RouteShouldNotHaveVerbs()
{
var service = _server.Host.Services.GetService(typeof(IActionDescriptorCollectionProvider)) as IActionDescriptorCollectionProvider;
Assert.NotNull(service);
string[] verbs = { "create", "get", "post", "put", "delete", "fetch", "generate" };
Regex rx = new Regex($"({string.Join("|", verbs)})", RegexOptions.Compiled | RegexOptions.IgnoreCase);
foreach (var i in service.ActionDescriptors.Items)
{
var route = i.AttributeRouteInfo.Template;
Assert.NotNull(route);
MatchCollection matches = rx.Matches(route);
Assert.Empty(matches);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment