/MusicStore.UnitTest/ProductControllerTest.cs
C# | 56 lines | 52 code | 4 blank | 0 comment | 0 complexity | b2e628829f8d6a01d75f7c345e784c95 MD5 | raw file
- using MusicStore.Api.Models;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using FluentAssertions;
- using NUnit.Framework;
- using System.Web.Http;
- using System.Net.Http;
- using System.Web.Http.Routing;
- using System.Web.Http.Controllers;
- using System.Web.Http.Hosting;
- using MusicStore.Api;
- using System.Web.Http.SelfHost;
- namespace MusicStore.UnitTest
- {
- [TestFixture]
- public class ProductControllerTest
- {
- [TestFixtureSetUp]
- public void SetUp()
- {
- new MusicStoreBootStrap(new HttpSelfHostConfiguration("http://localhost:8008"))
- .ConfigureDatabaseForTest()
- .SeedDatabase();
- }
- [Test]
- public void Should_be_able_to_Add_the_Cart_Url_to_the_Link()
- {
- dynamic ProductController = ConfigureController(TestInstance.ProductsController);
- ListOfProducts products=ProductController.Get();
- products.Products.First().AddToCartUrl.Should().Be("http://localhost/api/Cart/1");
- }
- [Test]
- public void Should_be_able_to_add_Get_the_Product_By_Catgeory()
- {
- }
- public ApiController ConfigureController(ApiController controller)
- {
- var config = new HttpConfiguration();
- var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/products");
- var route = config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}");
- var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "products" } });
- controller.ControllerContext = new HttpControllerContext(config, routeData, request);
- controller.Request = request;
- controller.Request.Properties[HttpPropertyKeys.HttpRouteDataKey] = routeData;
- controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config;
- return controller;
- }
- }
- }