private static NavigatorTestingDetails <TNavigator> GetNavigatorToTest <TNavigator>( UrlPathDetails initialUrl, Assert assert, Func <IDispatcher, TNavigator> navigatorGenerator) where TNavigator : Navigator { if (initialUrl == null) { throw new ArgumentNullException("initialUrl"); } if (assert == null) { throw new ArgumentNullException("assert"); } if (navigatorGenerator == null) { throw new ArgumentNullException("navigatorGenerator"); } var dispatcher = new AppDispatcher(); var historyHandler = new MockHistoryHandler(initialUrl: new UrlDetails(NonNullList <NonBlankTrimmedString> .Empty, Optional <QueryString> .Missing)); var navigator = navigatorGenerator(dispatcher); RouteCombiner.StartListening(historyHandler, navigator.Routes, dispatcher); var navigatorTestingDetails = new NavigatorTestingDetails <TNavigator>(navigator, historyHandler, dispatcher, assert); historyHandler.RaiseNavigateToForCurrentLocation(); return(navigatorTestingDetails); }
public void NavigateTo(UrlPathDetails url) { if (url == null) { throw new ArgumentNullException("url"); } _historyHandler.NavigateTo(url.ToUrlDetails(Optional <QueryString> .Missing)); }
public static void RouteMatched(this Assert assert, RouteBuilder routeInfo, UrlPathDetails url) { var routeMatched = false; var route = routeInfo.ToRoute(() => routeMatched = true); route.ExecuteCallbackIfUrlMatches(url); assert.Ok(routeMatched); }
public static void RouteNotMatched <TValues>( this Assert assert, RouteBuilder.IBuildRoutesWithVariablesToMatch <TValues> routeInfo, UrlPathDetails url) { var routeWasMatched = false; var route = routeInfo.ToRoute(extractedValue => routeWasMatched = true); route.ExecuteCallbackIfUrlMatches(url); assert.NotOk(routeWasMatched); }
public static void RouteMatched <TValues>( this Assert assert, RouteBuilder.IBuildRoutesWithVariablesToMatch <TValues> routeInfo, UrlPathDetails url, TValues expectedValue, ResultComparer <TValues> comparer) { var routeMatched = false; var route = routeInfo.ToRoute(extractedValue => routeMatched = comparer(extractedValue, expectedValue)); route.ExecuteCallbackIfUrlMatches(url); assert.Ok(routeMatched); }
private Link GetLink(string text, UrlPathDetails url, Optional <ClassName> className = new Optional <ClassName>()) { if (string.IsNullOrWhiteSpace(text)) { throw new ArgumentException("Null/blank text specified"); } if (url == null) { throw new ArgumentNullException("url"); } return(new Link( url: url.ToUrlDetails(Optional <QueryString> .Missing), text: new NonBlankTrimmedString(text), caseSensitiveUrlMatching: false, name: Optional <NonBlankTrimmedString> .Missing, target: Optional <NonBlankTrimmedString> .Missing, className: className, ancestorClassName: new ClassName("ancestor"), selectedClassName: new ClassName("selected") )); }
public InvalidRoute(UrlPathDetails url) { Url = Url; }