Inheritance: UCosmic.Www.Mvc.Controllers.MvcRoute
            public void Inbound_WithPut_AndNumber0_MapsToNothing()
            {
                const int    number      = 0;
                var          routeUrl    = new UpdateEmailValueRouter.PutRoute().Url;
                const string numberParam = "number";
                var          urlFormat   = routeUrl.Replace(numberParam, "0");
                var          url         = string.Format(urlFormat, number).ToAppRelativeUrl();

                url.WithMethod(HttpVerbs.Put).ShouldMapToNothing();
            }
            public void Inbound_WithPost_AndPositiveNumber_MapsToPutAction()
            {
                const int number = 3;
                Expression <Func <UpdateEmailValueController, ActionResult> > action =
                    controller => controller.Put(null);
                var          routeUrl    = new UpdateEmailValueRouter.PutRoute().Url;
                const string numberParam = "number";
                var          urlFormat   = routeUrl.Replace(numberParam, "0");
                var          url         = string.Format(urlFormat, number).ToAppRelativeUrl();

                url.WithMethod(HttpVerbs.Post).ShouldMapTo(action);
            }
            public void Outbound_ForPutAction_AndPositiveNumber_MapsToUrl()
            {
                const int number = 6;
                Expression <Func <UpdateEmailValueController, ActionResult> > action =
                    controller => controller.Put(null);
                var          routeUrl    = new UpdateEmailValueRouter.PutRoute().Url;
                const string numberParam = "number";
                var          urlFormat   = routeUrl.Replace(numberParam, "0");
                var          url         = string.Format(urlFormat, number).ToAppRelativeUrl();

                OutBoundRoute.Of(action).InArea(AreaName).WithMethod(HttpVerbs.Post)
                .HavingViewModelProperty(numberParam, number).AppRelativeUrl().ShouldEqual(url);
            }
            public void Inbound_WithPut_AndNumber0_MapsToNothing()
            {
                const int number = 0;
                var routeUrl = new UpdateEmailValueRouter.PutRoute().Url;
                const string numberParam = "number";
                var urlFormat = routeUrl.Replace(numberParam, "0");
                var url = string.Format(urlFormat, number).ToAppRelativeUrl();

                url.WithMethod(HttpVerbs.Put).ShouldMapToNothing();
            }
            public void Outbound_ForPutAction_AndPositiveNumber_MapsToUrl()
            {
                const int number = 6;
                Expression<Func<UpdateEmailValueController, ActionResult>> action =
                    controller => controller.Put(null);
                var routeUrl = new UpdateEmailValueRouter.PutRoute().Url;
                const string numberParam = "number";
                var urlFormat = routeUrl.Replace(numberParam, "0");
                var url = string.Format(urlFormat, number).ToAppRelativeUrl();

                OutBoundRoute.Of(action).InArea(AreaName).WithMethod(HttpVerbs.Post)
                    .HavingViewModelProperty(numberParam, number).AppRelativeUrl().ShouldEqual(url);
            }
            public void Inbound_WithPost_AndPositiveNumber_MapsToPutAction()
            {
                const int number = 3;
                Expression<Func<UpdateEmailValueController, ActionResult>> action =
                    controller => controller.Put(null);
                var routeUrl = new UpdateEmailValueRouter.PutRoute().Url;
                const string numberParam = "number";
                var urlFormat = routeUrl.Replace(numberParam, "0");
                var url = string.Format(urlFormat, number).ToAppRelativeUrl();

                url.WithMethod(HttpVerbs.Post).ShouldMapTo(action);
            }