< Summary

Class:RPC.Transports.WebSocketTransport
Assembly:RPC.Transports.WebSocketTransport
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WorldRuntime/KernelCommunication/RPC/Transports/WebSocketTransport/WebSocketTransport.cs
Covered lines:4
Uncovered lines:36
Coverable lines:40
Total lines:97
Line coverage:10% (4 of 40)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
WebSocketTransport()0%2.032080%
Dispose()0%6200%
SendMessage(...)0%6200%
Close()0%6200%
OnWebSocketServiceAdded(...)0%2100%
OnClose()0%6200%
OnError(...)0%6200%
OnMessage(...)0%6200%
OnConnect()0%6200%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WorldRuntime/KernelCommunication/RPC/Transports/WebSocketTransport/WebSocketTransport.cs

#LineLine coverage
 1using System;
 2using rpc_csharp.transport;
 3
 4namespace RPC.Transports
 5{
 6    public class WebSocketTransport : ITransport
 7    {
 8        public event Action OnCloseEvent;
 9
 10        public event Action<string> OnErrorEvent;
 11
 12        public event Action<byte[]> OnMessageEvent;
 13
 14        public event Action OnConnectEvent;
 15
 16        private DCLWebSocketService wsService;
 17
 49318        public WebSocketTransport()
 19        {
 20            // TODO: refactor websocket service to avoid the need of this reference
 49321            if (WebSocketCommunication.service != null)
 22            {
 023                OnWebSocketServiceAdded(WebSocketCommunication.service);
 24            }
 25            else
 26            {
 49327                WebSocketCommunication.OnWebSocketServiceAdded += OnWebSocketServiceAdded;
 28            }
 49329        }
 30
 31        public void Dispose()
 32        {
 033            WebSocketCommunication.OnWebSocketServiceAdded -= OnWebSocketServiceAdded;
 34
 035            if (wsService != null)
 36            {
 037                wsService.OnConnectEvent -= OnConnect;
 038                wsService.OnMessageEvent -= OnMessage;
 039                wsService.OnErrorEvent -= OnError;
 040                wsService.OnCloseEvent -= OnClose;
 41            }
 042            OnCloseEvent = null;
 043            OnErrorEvent = null;
 044            OnMessageEvent = null;
 045            OnConnectEvent = null;
 046        }
 47
 48        public void SendMessage(byte[] data)
 49        {
 050            wsService?.SendBinary(data);
 051        }
 52
 53        public void Close()
 54        {
 055            WebSocketCommunication.OnWebSocketServiceAdded -= OnWebSocketServiceAdded;
 56
 057            if (wsService != null)
 58            {
 059                wsService.OnConnectEvent -= OnConnect;
 060                wsService.OnMessageEvent -= OnMessage;
 061                wsService.OnErrorEvent -= OnError;
 062                wsService.OnCloseEvent -= OnClose;
 63            }
 064        }
 65
 66        private void OnWebSocketServiceAdded(DCLWebSocketService service)
 67        {
 068            WebSocketCommunication.OnWebSocketServiceAdded -= OnWebSocketServiceAdded;
 069            wsService = service;
 70
 071            wsService.OnConnectEvent += OnConnect;
 072            wsService.OnMessageEvent += OnMessage;
 073            wsService.OnErrorEvent += OnError;
 074            wsService.OnCloseEvent += OnClose;
 075        }
 76
 77        private void OnClose()
 78        {
 079            OnCloseEvent?.Invoke();
 080        }
 81
 82        private void OnError(string error)
 83        {
 084            OnErrorEvent?.Invoke(error);
 085        }
 86
 87        private void OnMessage(byte[] message)
 88        {
 089            OnMessageEvent?.Invoke(message);
 090        }
 91
 92        private void OnConnect()
 93        {
 094            OnConnectEvent?.Invoke();
 095        }
 96    }
 97}