From 35683fb2b80feaac9822fffd4d1d12a6984f388f Mon Sep 17 00:00:00 2001 From: Pawel Kadluczka Date: Tue, 12 Sep 2017 09:42:40 -0700 Subject: [PATCH] Fixing a bug where adding protocol with build would have no effect --- .../HubConnectionBuilderExtensions.cs | 2 +- .../HubConnectionBuilderExtensionsTests.cs | 80 +++++++++++++++++++ 2 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 test/Microsoft.AspNetCore.SignalR.Client.Tests/HubConnectionBuilderExtensionsTests.cs diff --git a/src/Microsoft.AspNetCore.SignalR.Client.Core/HubConnectionBuilderExtensions.cs b/src/Microsoft.AspNetCore.SignalR.Client.Core/HubConnectionBuilderExtensions.cs index c65070a445..e24dccf369 100644 --- a/src/Microsoft.AspNetCore.SignalR.Client.Core/HubConnectionBuilderExtensions.cs +++ b/src/Microsoft.AspNetCore.SignalR.Client.Core/HubConnectionBuilderExtensions.cs @@ -39,7 +39,7 @@ namespace Microsoft.AspNetCore.SignalR.Client public static IHubProtocol GetHubProtocol(this IHubConnectionBuilder hubConnectionBuilder) { - hubConnectionBuilder.TryGetSetting(HubConnectionBuilderDefaults.LoggerFactoryKey, out var hubProtocol); + hubConnectionBuilder.TryGetSetting(HubConnectionBuilderDefaults.HubProtocolKey, out var hubProtocol); return hubProtocol; } } diff --git a/test/Microsoft.AspNetCore.SignalR.Client.Tests/HubConnectionBuilderExtensionsTests.cs b/test/Microsoft.AspNetCore.SignalR.Client.Tests/HubConnectionBuilderExtensionsTests.cs new file mode 100644 index 0000000000..a03b16bc8b --- /dev/null +++ b/test/Microsoft.AspNetCore.SignalR.Client.Tests/HubConnectionBuilderExtensionsTests.cs @@ -0,0 +1,80 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Net.Http; +using Microsoft.AspNetCore.SignalR.Internal.Protocol; +using Microsoft.AspNetCore.Sockets; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Console; +using Moq; +using Xunit; + +namespace Microsoft.AspNetCore.SignalR.Client.Tests +{ + public class HubConnectionBuilderExtensionsTests + { + [Fact] + public void WithHubProtocolRegistersGivenProtocol() + { + var connectionBuilder = new HubConnectionBuilder(); + var hubProtocol = Mock.Of(); + connectionBuilder.WithHubProtocol(hubProtocol); + Assert.Same(hubProtocol, connectionBuilder.GetHubProtocol()); + } + + [Fact] + public void WithJsonProtocolRegistersJsonProtocol() + { + var connectionBuilder = new HubConnectionBuilder(); + connectionBuilder.WithJsonProtocol(); + Assert.IsType(connectionBuilder.GetHubProtocol()); + } + + [Fact] + public void WithMessagePackProtocolRegistersMessagePackProtocol() + { + var connectionBuilder = new HubConnectionBuilder(); + connectionBuilder.WithMessagePackProtocol(); + Assert.IsType(connectionBuilder.GetHubProtocol()); + } + + [Fact] + public void WithLoggerRegistersGivenLogger() + { + var connectionBuilder = new HubConnectionBuilder(); + var loggerFactory = Mock.Of(); + connectionBuilder.WithLogger(loggerFactory); + Assert.Same(loggerFactory, connectionBuilder.GetLoggerFactory()); + } + + [Fact] + public void WithConsoleLoggerRegistersConsoleLogger() + { + var connectionBuilder = new HubConnectionBuilder(); + var mockLoggerFactory = new Mock(); + connectionBuilder.WithConsoleLogger(mockLoggerFactory.Object); + mockLoggerFactory.Verify(f => f.AddProvider(It.IsAny()), Times.Once); + } + + [Fact] + public void WithMsgHandlerRegistersGivenMessageHandler() + { + var connectionBuilder = new HubConnectionBuilder(); + var msgHandler = Mock.Of(); + connectionBuilder.WithMessageHandler(msgHandler); + Assert.Same(msgHandler, connectionBuilder.GetMessageHandler()); + } + + [Theory] + [InlineData(TransportType.All)] + [InlineData(TransportType.WebSockets)] + [InlineData(TransportType.ServerSentEvents)] + [InlineData(TransportType.LongPolling)] + public void WithTransportTypeRegistersGivenTransportType(TransportType transportType) + { + var connectionBuilder = new HubConnectionBuilder(); + connectionBuilder.WithTransportType(transportType); + Assert.Equal(transportType, connectionBuilder.GetTransportType()); + } + } +}