PageRenderTime 45ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/src/FluentAssertions.Mvc3/RedirectToRouteAssertions.cs

http://fluentassertionsmvc.codeplex.com
C# | 97 lines | 83 code | 14 blank | 0 comment | 1 complexity | 34557a9304a461c2ffb5aebab0f8ad55 MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using FluentAssertions.Assertions;
  6. using System.Web.Mvc;
  7. using FluentAssertions;
  8. namespace FluentAssertions.Mvc3
  9. {
  10. public class RedirectToRouteAssertions : ReferenceTypeAssertions<RedirectToRouteResult, RedirectToRouteAssertions>
  11. {
  12. public RedirectToRouteAssertions(RedirectToRouteResult subject)
  13. {
  14. Subject = subject;
  15. }
  16. public RedirectToRouteAssertions WithPermanent(bool expectedPermanent)
  17. {
  18. WithPermanent(expectedPermanent, string.Empty, null);
  19. return this;
  20. }
  21. public RedirectToRouteAssertions WithPermanent(bool expectedPermanent, string reason, params object[] reasonArgs)
  22. {
  23. Execute.Verification
  24. .BecauseOf(reason, reasonArgs)
  25. .ForCondition(expectedPermanent == Subject.Permanent)
  26. .FailWith("Expected RedirectToRoute.Permanent to be {0}{reason}, but found {1}", expectedPermanent, Subject.Permanent);
  27. return this;
  28. }
  29. public RedirectToRouteAssertions WithRouteName(string expectedRouteName)
  30. {
  31. WithRouteName(expectedRouteName, string.Empty, null);
  32. return this;
  33. }
  34. public RedirectToRouteAssertions WithRouteName(string expectedRouteName, string reason, params object[] reasonArgs)
  35. {
  36. Execute.Verification
  37. .BecauseOf(reason, reasonArgs)
  38. .ForCondition(string.Equals(expectedRouteName, Subject.RouteName, StringComparison.InvariantCultureIgnoreCase))
  39. .FailWith("Expected RedirectToRoute.RouteName to be {0}{reason}, but found {1}", expectedRouteName, Subject.RouteName);
  40. return this;
  41. }
  42. public RedirectToRouteAssertions WithRouteValue(string key, object expectedValue)
  43. {
  44. WithRouteValue(key, expectedValue, string.Empty, null);
  45. return this;
  46. }
  47. public RedirectToRouteAssertions WithRouteValue(string key, object expectedValue, string reason, params object[] reasonArgs)
  48. {
  49. Subject.RouteValues.Should().Contain(new KeyValuePair<string, object>(key, expectedValue), reason, reasonArgs);
  50. return this;
  51. }
  52. public RedirectToRouteAssertions WithController(string expectedControllerName)
  53. {
  54. WithController(expectedControllerName, string.Empty, null);
  55. return this;
  56. }
  57. public RedirectToRouteAssertions WithController(string expectedControllerName, string reason, params object[] reasonArgs)
  58. {
  59. WithRouteValue("Controller", expectedControllerName, reason, reasonArgs);
  60. return this;
  61. }
  62. public RedirectToRouteAssertions WithAction(string expectedAction)
  63. {
  64. WithAction(expectedAction, string.Empty, null);
  65. return this;
  66. }
  67. public RedirectToRouteAssertions WithAction(string expectedArea, string reason, params object[] reasonArgs)
  68. {
  69. WithRouteValue("Action", expectedArea, reason, reasonArgs);
  70. return this;
  71. }
  72. public RedirectToRouteAssertions WithArea(string expectedAction)
  73. {
  74. WithArea(expectedAction, string.Empty, null);
  75. return this;
  76. }
  77. public RedirectToRouteAssertions WithArea(string expectedArea, string reason, params object[] reasonArgs)
  78. {
  79. WithRouteValue("Area", expectedArea, reason, reasonArgs);
  80. return this;
  81. }
  82. }
  83. }