Last active
December 10, 2015 18:29
-
-
Save benfoster/4474833 to your computer and use it in GitHub Desktop.
Inbound Route Tests using ASP.NET Web API
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[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