public void ShouldPutOptionalRouteValuesAfterSameNamedOnes()
			{
				var valuesIn = new Dictionary<string, object>
					{
						 { "controller", "foo" },
						 { "action", "bar" },
						 { "a", RouteParameter.Optional }
					};

				var routeValues = new RouteValues(valuesIn);

				routeValues.Add(new RouteValue("a", "zzz", RouteValueOrigin.Params));

				routeValues.Sort();

				Assert.That(routeValues.Values[0].Name, Is.EqualTo("a"));
				Assert.That(routeValues.Values[1].Name, Is.EqualTo("a"));
				Assert.That(routeValues.Values[0].Value, Is.EqualTo("zzz"));
				Assert.That(routeValues.Values[1].Value, Is.EqualTo(RouteParameter.Optional));
			}
예제 #2
0
		private static RouteValues RouteValuesContainingId()
		{
			var values = new RouteValues();
			var idValue = new RouteValue("Id", 42, RouteValueOrigin.Unknown);
			values.Add(idValue);

			return values;
		}
			public void SameNamedValuesAreSortedByOrigin()
			{
				var routeValues = new RouteValues();

				routeValues.Add(new RouteValue("a", "ccc", RouteValueOrigin.Params));
				routeValues.Add(new RouteValue("a", "aaa", RouteValueOrigin.Body));
				routeValues.Add(new RouteValue("a", "bbb", RouteValueOrigin.Path));

				routeValues.Sort();

				Assert.That(routeValues.Values[0].Name, Is.EqualTo("a"));
				Assert.That(routeValues.Values[1].Name, Is.EqualTo("a"));
				Assert.That(routeValues.Values[2].Name, Is.EqualTo("a"));

				Assert.That(routeValues.Values[0].Origin, Is.EqualTo(RouteValueOrigin.Path));
				Assert.That(routeValues.Values[1].Origin, Is.EqualTo(RouteValueOrigin.Params));
				Assert.That(routeValues.Values[2].Origin, Is.EqualTo(RouteValueOrigin.Body));
			}