ComponentEndpointRouteBuilderExtensionsTest.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. // Copyright (c) .NET Foundation. All rights reserved.
  2. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
  3. using System.Diagnostics;
  4. using System.Threading.Tasks;
  5. using Microsoft.AspNetCore.Builder;
  6. using Microsoft.Extensions.DependencyInjection;
  7. using Microsoft.Extensions.Hosting;
  8. using Moq;
  9. using Xunit;
  10. namespace Microsoft.AspNetCore.Components.Server.Tests
  11. {
  12. public class ComponentEndpointRouteBuilderExtensionsTest
  13. {
  14. [Fact]
  15. public void MapBlazorHub_WiresUp_UnderlyingHub()
  16. {
  17. // Arrange
  18. var applicationBuilder = CreateAppBuilder();
  19. var called = false;
  20. // Act
  21. var app = applicationBuilder
  22. .UseRouting()
  23. .UseEndpoints(endpoints =>
  24. {
  25. endpoints.MapBlazorHub<MyComponent>("app", dispatchOptions => called = true);
  26. }).Build();
  27. // Assert
  28. Assert.True(called);
  29. }
  30. [Fact]
  31. public void MapBlazorHub_MostGeneralOverload_MapsUnderlyingHub()
  32. {
  33. // Arrange
  34. var applicationBuilder = CreateAppBuilder();
  35. var called = false;
  36. // Act
  37. var app = applicationBuilder
  38. .UseRouting()
  39. .UseEndpoints(endpoints =>
  40. {
  41. endpoints.MapBlazorHub(Mock.Of<IComponent>().GetType(),"app", "_blazor", dispatchOptions => called = true);
  42. }).Build();
  43. // Assert
  44. Assert.True(called);
  45. }
  46. private IApplicationBuilder CreateAppBuilder()
  47. {
  48. var services = new ServiceCollection();
  49. services.AddSingleton(Mock.Of<IHostApplicationLifetime>());
  50. services.AddLogging();
  51. services.AddOptions();
  52. var listener = new DiagnosticListener("Microsoft.AspNetCore");
  53. services.AddSingleton(listener);
  54. services.AddSingleton<DiagnosticSource>(listener);
  55. services.AddRouting();
  56. services.AddSignalR();
  57. services.AddServerSideBlazor();
  58. var serviceProvder = services.BuildServiceProvider();
  59. return new ApplicationBuilder(serviceProvder);
  60. }
  61. private class MyComponent : IComponent
  62. {
  63. public void Attach(RenderHandle renderHandle)
  64. {
  65. throw new System.NotImplementedException();
  66. }
  67. public Task SetParametersAsync(ParameterView parameters)
  68. {
  69. throw new System.NotImplementedException();
  70. }
  71. }
  72. }
  73. }