PageRenderTime 66ms CodeModel.GetById 24ms RepoModel.GetById 1ms app.codeStats 0ms

/MusicStore.UnitTest/InventoryControllerUnitTest.cs

https://github.com/satish860/MusicStoreAPI
C# | 43 lines | 41 code | 2 blank | 0 comment | 0 complexity | 0f971a780d92b804cac0bd888d3d4958 MD5 | raw file
  1. using FluentAssertions;
  2. using MusicStore.Api;
  3. using MusicStore.Api.Controllers;
  4. using NUnit.Framework;
  5. using System.Net;
  6. using System.Net.Http;
  7. using System.Web.Http;
  8. using System.Web.Http.Controllers;
  9. using System.Web.Http.Hosting;
  10. using System.Web.Http.Routing;
  11. namespace MusicStore.UnitTest
  12. {
  13. [TestFixture]
  14. public class InventoryControllerUnitTest
  15. {
  16. public ApiController ConfigureController(ApiController controller)
  17. {
  18. var config = new HttpConfiguration();
  19. var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/products");
  20. var route = config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}");
  21. var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "products" } });
  22. controller.ControllerContext = new HttpControllerContext(config, routeData, request);
  23. controller.Request = request;
  24. controller.Request.Properties[HttpPropertyKeys.HttpRouteDataKey] = routeData;
  25. controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config;
  26. return controller;
  27. }
  28. [Test]
  29. public void Should_be_able_Send_the_Command_to_the_Bus()
  30. {
  31. AddProductCommand command = new AddProductCommand { Name = "Reebok Shoe", Categories = "Shoes", Id = 1 };
  32. InMemoryCommandBus Bus = new InMemoryCommandBus();
  33. InventoryController controller = new InventoryController(Bus);
  34. ConfigureController(controller);
  35. HttpResponseMessage Message = controller.Post(command);
  36. Message.StatusCode.Should().Be(HttpStatusCode.Created);
  37. Message.Headers.Location.ToString().Should().Be("http://localhost/api/Product/1");
  38. Bus.Command.Should().Be(command);
  39. }
  40. }
  41. }