// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. #if DNX451 using Microsoft.AspNet.Http; using Moq; using Xunit; namespace Microsoft.AspNet.Routing { public class VirtualPathDataTests { [Fact] public void Constructor_CreatesEmptyDataTokensIfNull() { // Arrange var router = new Mock().Object; var path = new PathString("/virtual path"); // Act var pathData = new VirtualPathData(router, path, null); // Assert Assert.Same(router, pathData.Router); Assert.Equal(path, pathData.VirtualPath); Assert.NotNull(pathData.DataTokens); Assert.Empty(pathData.DataTokens); } [Fact] public void Constructor_CopiesDataTokens() { // Arrange var router = new Mock().Object; var path = new PathString("/virtual path"); var dataTokens = new RouteValueDictionary(); dataTokens["TestKey"] = "TestValue"; // Act var pathData = new VirtualPathData(router, path, dataTokens); // Assert Assert.Same(router, pathData.Router); Assert.Equal(path, pathData.VirtualPath); Assert.NotNull(pathData.DataTokens); Assert.Equal("TestValue", pathData.DataTokens["TestKey"]); Assert.Equal(1, pathData.DataTokens.Count); Assert.NotSame(dataTokens, pathData.DataTokens); } [Fact] public void VirtualPath_ReturnsEmptyStringIfNull() { // Arrange var router = new Mock().Object; // Act var pathData = new VirtualPathData(router, virtualPath: null); // Assert Assert.Same(router, pathData.Router); Assert.Equal(new PathString(string.Empty), pathData.VirtualPath); Assert.NotNull(pathData.DataTokens); Assert.Empty(pathData.DataTokens); } } } #endif