/
githubmirror
/
aspnetcore
Обзор
Документация
Войти
/
githubmirror
/
aspnetcore
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Http/Routing.Abstractions/test/RouteDataTest.cs
155 строк
5 KB
Shreyas Jejurkar
chore : Remove unwanted `using` statement (#39176)
02 янв 2022, 17:39
Не верифицирован
02 янв 2022, 17:39
c85baf8
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Moq; namespace Microsoft.AspNetCore.Routing; public class RouteDataTest { [Fact] public void RouteData_DefaultPropertyValues() { // Arrange & Act var routeData = new RouteData(); // Assert Assert.Empty(routeData.DataTokens); Assert.Empty(routeData.Routers); Assert.Empty(routeData.Values); } [Fact] public void RouteData_CopyConstructor() { // Arrange & Act var original = new RouteData(); original.DataTokens.Add("data", "token"); original.Routers.Add(Mock.Of<IRouter>()); original.Values.Add("route", "value"); var routeData = new RouteData(original); // Assert Assert.NotSame(routeData.DataTokens, original.DataTokens); Assert.Equal(routeData.DataTokens, original.DataTokens); Assert.NotSame(routeData.Routers, original.Routers); Assert.Equal(routeData.Routers, original.Routers); Assert.NotSame(routeData.Values, original.Values); Assert.Equal(routeData.Values, original.Values); } [Fact] public void RouteData_PushStateAndRestore_NullValues() { // Arrange var routeData = new RouteData(); // Act var snapshot = routeData.PushState(null, null, null); var copy = new RouteData(routeData); snapshot.Restore(); // Assert Assert.Equal(routeData.DataTokens, copy.DataTokens); Assert.Equal(routeData.Routers, copy.Routers); Assert.Equal(routeData.Values, copy.Values); } [Fact] public void RouteData_PushStateAndRestore_EmptyValues() { // Arrange var routeData = new RouteData(); // Act var snapshot = routeData.PushState(null, new RouteValueDictionary(), new RouteValueDictionary()); var copy = new RouteData(routeData); snapshot.Restore(); // Assert Assert.Equal(routeData.DataTokens, copy.DataTokens); Assert.Equal(routeData.Routers, copy.Routers); Assert.Equal(routeData.Values, copy.Values); } // This is an important semantic for catchall parameters. A null route value shouldn't be // merged. [Fact] public void RouteData_PushStateAndRestore_NullRouteValueNotSet() { // Arrange var original = new RouteData(); original.Values.Add("bleh", "16"); var routeData = new RouteData(original); // Act var snapshot = routeData.PushState( null, new RouteValueDictionary(new { bleh = (string)null }), new RouteValueDictionary()); snapshot.Restore(); // Assert Assert.Equal(routeData.Values, original.Values); } [Fact] public void RouteData_PushStateAndThenModify() { // Arrange var routeData = new RouteData(); // Act var snapshot = routeData.PushState(null, null, null); routeData.DataTokens.Add("data", "token"); routeData.Routers.Add(Mock.Of<IRouter>()); routeData.Values.Add("route", "value"); var copy = new RouteData(routeData); snapshot.Restore(); // Assert Assert.Empty(routeData.DataTokens); Assert.NotEqual(routeData.DataTokens, copy.DataTokens); Assert.Empty(routeData.Routers); Assert.NotEqual(routeData.Routers, copy.Routers); Assert.Empty(routeData.Values); Assert.NotEqual(routeData.Values, copy.Values); } [Fact] public void RouteData_PushStateAndThenModify_WithInitialData() { // Arrange var original = new RouteData(); original.DataTokens.Add("data", "token1"); original.Routers.Add(Mock.Of<IRouter>()); original.Values.Add("route", "value1"); var routeData = new RouteData(original); // Act var snapshot = routeData.PushState( Mock.Of<IRouter>(), new RouteValueDictionary(new { route = "value2" }), new RouteValueDictionary(new { data = "token2" })); routeData.DataTokens.Add("data2", "token"); routeData.Routers.Add(Mock.Of<IRouter>()); routeData.Values.Add("route2", "value"); var copy = new RouteData(routeData); snapshot.Restore(); // Assert Assert.Equal(original.DataTokens, routeData.DataTokens); Assert.NotEqual(routeData.DataTokens, copy.DataTokens); Assert.Equal(original.Routers, routeData.Routers); Assert.NotEqual(routeData.Routers, copy.Routers); Assert.Equal(original.Values, routeData.Values); Assert.NotEqual(routeData.Values, copy.Values); } }