< Summary

Information
Class: NostrSure.Infrastructure.Client.Implementation.WebSocketFactory
Assembly: NostrSure.Infrastructure
File(s): /home/runner/work/NostrSure/NostrSure/NostrSure.Infrastructure/Client/Implementation/WebSocketFactory.cs
Line coverage
100%
Covered lines: 23
Uncovered lines: 0
Coverable lines: 23
Total lines: 47
Line coverage: 100%
Branch coverage
50%
Covered branches: 7
Total branches: 14
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)50%22100%
Create()50%1212100%

File(s)

/home/runner/work/NostrSure/NostrSure/NostrSure.Infrastructure/Client/Implementation/WebSocketFactory.cs

#LineLine coverage
 1using System.Net.WebSockets;
 2using System.Text;
 3using Microsoft.Extensions.Logging;
 4using Microsoft.Extensions.ObjectPool;
 5using NostrSure.Infrastructure.Client.Abstractions;
 6
 7namespace NostrSure.Infrastructure.Client.Implementation;
 8
 9/// <summary>
 10/// Factory for creating refactored WebSocket connections with proper dependency injection
 11/// </summary>
 12public class WebSocketFactory : IWebSocketFactory
 13{
 14    private readonly ILoggerFactory? _loggerFactory;
 15    private readonly ObjectPool<StringBuilder> _stringBuilderPool;
 16
 717    public WebSocketFactory(
 718        ILoggerFactory? loggerFactory,
 719        ObjectPool<StringBuilder> stringBuilderPool)
 720    {
 721        _loggerFactory = loggerFactory;
 722        _stringBuilderPool = stringBuilderPool ?? throw new ArgumentNullException(nameof(stringBuilderPool));
 723    }
 24
 25    public IWebSocketConnection Create()
 126    {
 27        // Create shared WebSocket instance
 128        var webSocket = new ClientWebSocket();
 129        var webSocketWrapper = new ClientWebSocketWrapper(webSocket);
 30
 31        // Create component implementations
 132        var stateManager = new ConnectionStateManager(_loggerFactory?.CreateLogger<ConnectionStateManager>());
 133        var errorHandler = new ConnectionErrorHandler(_loggerFactory?.CreateLogger<ConnectionErrorHandler>());
 134        var connectionManager = new ConnectionManager(webSocketWrapper, stateManager, errorHandler, _loggerFactory?.Crea
 135        var messageReceiver = new MessageReceiver(webSocket, errorHandler, stateManager, _stringBuilderPool, _loggerFact
 136        var messageSender = new MessageSender(webSocket, errorHandler, stateManager, _loggerFactory?.CreateLogger<Messag
 37
 38        // Create fa�ade
 139        return new WebSocketConnection(
 140            connectionManager,
 141            messageReceiver,
 142            messageSender,
 143            errorHandler,
 144            stateManager,
 145            _loggerFactory?.CreateLogger<WebSocketConnection>());
 146    }
 47}