Skip to content

Instantly share code, notes, and snippets.

@benfoster
Last active December 10, 2015 18:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save benfoster/4474833 to your computer and use it in GitHub Desktop.
Save benfoster/4474833 to your computer and use it in GitHub Desktop.
Inbound Route Tests using ASP.NET Web API
[TestFixture]
public class InboundRouteTests
{
private Uri baseUri;
private HttpConfiguration config;
[TestFixtureSetUp]
public void FixtureSetUp()
{
baseUri = new Uri("https://tests.local");
config = new HttpConfiguration();
CMSApiConfig.Initialize(config);
}
[Test]
public void GetSites()
{
Request("sites")
.ShouldMapTo<SitesController>()
.WithAction(c => c.Get());
}
[Test]
public void GetSite()
{
Request("sites/10")
.ShouldMapTo<SitesController>()
.WithAction(c => c.Get(10));
}
// Portfolio
[Test]
public void PutPortfolio()
{
Request("sites/10/portfolio", HttpMethod.Put)
.ShouldMapTo<PortfolioController>()
.WithAction(c => c.Put(10, null));
}
[Test]
public void GetPortfolioProjects()
{
Request("sites/10/portfolio/projects")
.ShouldMapTo<PortfolioProjectsController>()
.WithAction(c => c.Get(10, null));
}
[Test]
public void GetPortfolioProject()
{
Request("sites/10/portfolio/projects/5")
.ShouldMapTo<PortfolioProjectsController>()
.WithAction(c => c.Get(10, 5));
}
[Test]
public void PostPortfolioProjectMedia()
{
Request("sites/10/portfolio/projects/5/media", HttpMethod.Post)
.ShouldMapTo<PortfolioProjectMediaController>()
.WithAction(c => c.Post(10, 5, null));
}
[Test]
public void GetPortfolioTags()
{
Request("sites/10/portfolio/tags")
.ShouldMapTo<PortfolioTagsController>()
.WithAction(c => c.Get(10, null));
}
[Test]
public void GetPortfolioTaggedProjects()
{
Request("sites/10/portfolio/tags/asp-net")
.ShouldMapTo<PortfolioTagsController>()
.WithAction(c => c.Get(10, "asp-net", null));
}
[Test]
public void GetPortfolioCategories()
{
Request("sites/10/portfolio/categories")
.ShouldMapTo<PortfolioCategoriesController>()
.WithAction(c => c.Get(10, null));
}
[Test]
public void GetPortfolioCategory()
{
Request("sites/10/portfolio/categories/5")
.ShouldMapTo<PortfolioCategoriesController>()
.WithAction(c => c.Get(10, 5));
}
// Blog
[Test]
public void GetBlogPosts()
{
Request("sites/10/blog/posts")
.ShouldMapTo<BlogPostsController>()
.WithAction(c => c.Get(10, null));
}
[Test]
public void GetBlogPost()
{
Request("sites/10/blog/posts/5")
.ShouldMapTo<BlogPostsController>()
.WithAction(c => c.Get(10, 5));
}
[Test]
public void PostBlogPostMedia()
{
Request("sites/10/blog/posts/5/media", HttpMethod.Post)
.ShouldMapTo<BlogPostMediaController>()
.WithAction(c => c.Post(10, 5, null));
}
[Test]
public void GetBlogTags()
{
Request("sites/10/blog/tags")
.ShouldMapTo<BlogTagsController>()
.WithAction(c => c.Get(10, null));
}
[Test]
public void GetBlogTaggedPosts()
{
Request("sites/10/blog/tags/asp-net")
.ShouldMapTo<BlogTagsController>()
.WithAction(c => c.Get(10, "asp-net", null));
}
[Test]
public void GetBlogPostArchives()
{
Request("sites/10/blog/posts/archives")
.ShouldMapTo<BlogPostArchivesController>()
.WithAction(c => c.Get(10, null));
}
[Test]
public void GetBlogPostArchive()
{
Request("sites/10/blog/posts/archives/2012/09")
.ShouldMapTo<BlogPostArchivesController>()
.WithAction(c => c.Get(10, 2012, 9, null));
}
// Pages
[Test]
public void GetPages()
{
Request("sites/10/pages")
.ShouldMapTo<PagesController>()
.WithAction(c => c.Get(10, null));
}
[Test]
public void GetPage()
{
Request("sites/10/pages/5")
.ShouldMapTo<PagesController>()
.WithAction(c => c.Get(10, 5));
}
// Media
[Test]
public void GetMedia()
{
Request("sites/10/media")
.ShouldMapTo<MediaController>()
.WithAction(c => c.Get(10, null));
}
[Test]
public void GetMediaPath()
{
Request("sites/10/media/posts/images/archive")
.ShouldMapTo<MediaController>()
.WithAction(c => c.Get(10, "posts/images/archive"));
}
// Themes
[Test]
public void GetThemes()
{
Request("sites/10/themes")
.ShouldMapTo<ThemesController>()
.WithAction(c => c.Get(10));
}
[Test]
public void GetTheme()
{
Request("sites/10/themes/5")
.ShouldMapTo<ThemesController>()
.WithAction(c => c.Get(10, 5));
}
[Test]
public void GetThemeConfiguration()
{
Request("sites/10/themes/5/configuration")
.ShouldMapTo<ThemeConfigurationsController>()
.WithAction(c => c.Get(10, 5));
}
// Site Settings
[Test]
public void GetSiteSettings()
{
Request("sites/10/settings")
.ShouldMapTo<SiteSettingsController>()
.WithAction(c => c.Get(10));
}
private RouteTester Request(string relativePath)
{
return Request(relativePath, HttpMethod.Get);
}
private RouteTester Request(string relativePath, HttpMethod httpMethod)
{
var request = new HttpRequestMessage(httpMethod, new Uri(baseUri, relativePath));
return new RouteTester(config, request);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment