public void ShouldDelegateExtensionToSubBuilder()
		{
			// Setup
			DynamicMock decoratedBuilderMock = new DynamicMock(typeof(IUrlBuilder));
			decoratedBuilderMock.ExpectAndReturn("Extension", "foo");

			// Execute
			AbsolutePathUrlBuilderDecorator decorator = new AbsolutePathUrlBuilderDecorator((IUrlBuilder) decoratedBuilderMock.MockInstance, null);
			decorator.Extension = "foo";

			// Verify
			decoratedBuilderMock.Verify();
		}
		public void ShouldHandleBaseURLsWithTrailingSlashes()
		{
			/// Setup
			DynamicMock decoratedBuilderMock = new DynamicMock(typeof(IUrlBuilder));
			string baseUrl = "https://myserver:8080/myvdir/";

			AbsolutePathUrlBuilderDecorator decorator = new AbsolutePathUrlBuilderDecorator((IUrlBuilder) decoratedBuilderMock.MockInstance, baseUrl);
			string actionName = "myAction";
			decoratedBuilderMock.ExpectAndReturn("BuildUrl", "myRelativeUrl", actionName);

			/// Execute & Verify
			Assert.AreEqual(baseUrl + "myRelativeUrl", decorator.BuildUrl(actionName));

			decoratedBuilderMock.Verify();
		}
		public void ShouldDecorateUrlsToCreateAbsoluteURLs()
		{
			/// Setup
			DynamicMock decoratedBuilderMock = new DynamicMock(typeof(IUrlBuilder));
			string baseUrl = "https://myserver:8080/myvdir";

			AbsolutePathUrlBuilderDecorator decorator = new AbsolutePathUrlBuilderDecorator((IUrlBuilder) decoratedBuilderMock.MockInstance, baseUrl);
			string actionName = "myAction";
			decoratedBuilderMock.ExpectAndReturn("BuildUrl", "myRelativeUrl", actionName);
			decoratedBuilderMock.ExpectAndReturn("BuildUrl", "myRelativeUrl2", actionName, "query");
			decoratedBuilderMock.ExpectAndReturn("BuildUrl", "myPath/myRelativeUrl3", actionName, "query", "myPath/");

			/// Execute & Verify
			Assert.AreEqual(baseUrl + "/myRelativeUrl", decorator.BuildUrl(actionName));
			Assert.AreEqual(baseUrl + "/myRelativeUrl2", decorator.BuildUrl(actionName, "query"));
			Assert.AreEqual(baseUrl + "/myPath/myRelativeUrl3", decorator.BuildUrl(actionName, "query", "myPath/"));

			decoratedBuilderMock.Verify();
		}