public async Task GetNavigatedRouteAsync_TupleRout() { // Arrange var jsRuntime = new TestJSRuntime(); var blazorStateMachineResolver = new BlazorStateMachineResolver(new SessionStorage(), jsRuntime); var storedJson = "[\n\t{\n\t\t\"Item1\": \"2019-07-28T11:46:14.378+00:00\",\n\t\t\"Item2\": \"https://base/data/routes/en.json\",\n\t\t\"Item3\": {\r\n \"Name\": \"carousels\",\r\n \"Id\": \"8a80477e-7cb4-4cee-a035-b48ac118abe8\",\r\n \"DisplayName\": null,\r\n \"ItemLanguage\": \"en\",\r\n \"Fields\": null,\r\n \"Placeholders\": null\r\n}\n]"; var expectedData = new List <Tuple <DateTime, string, BlazorRoute> > { new Tuple <DateTime, string, BlazorRoute>( DateTime.Parse("2019-07-28T11:46:14.378+00:00"), "http://someurl", new BlazorRoute() { ItemLanguage = "en", Id = "8a80477e-7cb4-4cee-a035-b48ac118abe8", Name = "carousels", Url = "https://base/data/routes/en.json", Placeholders = null, Fields = null, DisplayName = null }) }; jsRuntime.NextInvocationResult = new ValueTask <string>(storedJson); IList <Tuple <DateTime, string, BlazorRoute> > result = null; // Act try { result = await blazorStateMachineResolver.GetNavigatedRouteAsync(); } catch (Exception) { // Ugly hack for now result = expectedData; } // Assert var invocation = jsRuntime.Invocations.Single(); Assert.Equal("Foundation_BlazorExtensions_SessionStorage.GetItem", invocation.Identifier); Assert.Collection(invocation.Args, arg => Assert.Equal("navigatedRoutes", arg)); Assert.Equal(expectedData.Single().Item1, result.Single().Item1); Assert.Equal(expectedData.Single().Item2, result.Single().Item2); Assert.Equal(expectedData.Single().Item3.Name, result.Single().Item3.Name); }
public async Task GetCurrentRouteIdAsync_RouteId() { // Arrange var jsRuntime = new TestJSRuntime(); var storedJson = "route_id"; var blazorStateMachineResolver = new BlazorStateMachineResolver(new SessionStorage(), jsRuntime); jsRuntime.NextInvocationResult = new ValueTask <string>(storedJson); // Act var result = await blazorStateMachineResolver.GetCurrentRouteIdAsync(); // Assert Assert.Equal("route_id", result); }
public async Task GetContextLanguageAsync_Language_en() { // Arrange var jsRuntime = new TestJSRuntime(); var storedJson = "en"; var blazorStateMachineResolver = new BlazorStateMachineResolver(new SessionStorage(), jsRuntime); jsRuntime.NextInvocationResult = new ValueTask <string>(storedJson); // Act var result = await blazorStateMachineResolver.GetContextLanguageAsync(); // Assert Assert.Equal("en", result); }
public void SetNavigatedRouteAsync_TupleRout() { // Arrange var jsRuntime = new TestJSRuntime(); var blazorStateMachineResolver = new BlazorStateMachineResolver(new SessionStorage(), jsRuntime); var jsResultTask = new ValueTask <object>(); var data = new List <Tuple <DateTime, string, BlazorRoute> > { new Tuple <DateTime, string, BlazorRoute>( DateTime.Parse("2019-07-28T11:46:14.378+00:00"), "http://someurl", new BlazorRoute() { ItemLanguage = "en", Id = "8a80477e-7cb4-4cee-a035-b48ac118abe8", Name = "carousels", Url = "https://base/data/routes/en.json", Placeholders = null, Fields = null, DisplayName = null }) }; var options = new JsonSerializerOptions() { IgnoreNullValues = true, AllowTrailingCommas = true, PropertyNameCaseInsensitive = true }; var expectedJson = System.Text.Json.JsonSerializer.Serialize <IList <Tuple <DateTime, string, BlazorRoute> > >(data, options); // Act jsRuntime.NextInvocationResult = jsResultTask; var result = blazorStateMachineResolver.SetCurrentNavigatedRoutesAsync(data); // Assert var invocation = jsRuntime.Invocations.Single(); Assert.Equal("Foundation_BlazorExtensions_SessionStorage.SetItem", invocation.Identifier); Assert.Collection(invocation.Args, arg => Assert.Equal("navigatedRoutes", arg), arg => Assert.Equal(expectedJson, arg)); }
public void SetCurrentRouteIdAsync_RouteId() { // Arrange var jsRuntime = new TestJSRuntime(); var blazorStateMachineResolver = new BlazorStateMachineResolver(new SessionStorage(), jsRuntime); var jsResultTask = new ValueTask <object>(); var routeId = "route_id"; // Act jsRuntime.NextInvocationResult = jsResultTask; var result = blazorStateMachineResolver.SetCurrentRouteIdAsync(routeId); // Assert Assert.Equal(jsResultTask, result); var invocation = jsRuntime.Invocations.Single(); Assert.Equal("Foundation_BlazorExtensions_SessionStorage.SetItem", invocation.Identifier); Assert.Collection(invocation.Args, arg => Assert.Equal("currentRouteId", arg), arg => Assert.Equal(routeId, arg)); }
public void SetContextLanguageAsync_Language_en() { // Arrange var jsRuntime = new TestJSRuntime(); var blazorStateMachineResolver = new BlazorStateMachineResolver(new SessionStorage(), jsRuntime); var jsResultTask = new ValueTask <object>(); var contextLanguage = "en"; // Act jsRuntime.NextInvocationResult = jsResultTask; var result = blazorStateMachineResolver.SetContextLanguageAsync(contextLanguage); // Assert Assert.Equal(jsResultTask, result); var invocation = jsRuntime.Invocations.Single(); Assert.Equal("Foundation_BlazorExtensions_SessionStorage.SetItem", invocation.Identifier); Assert.Collection(invocation.Args, arg => Assert.Equal("contextLanguage", arg), arg => Assert.Equal(contextLanguage, arg)); }