< 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:0
Uncovered lines:30
Coverable lines:30
Total lines:80
Line coverage:0% (0 of 30)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
WebSocketTransport()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
 018        public WebSocketTransport()
 19        {
 20            // TODO: refactor websocket service to avoid the need of this reference
 021            if (WebSocketCommunication.service != null)
 22            {
 023                OnWebSocketServiceAdded(WebSocketCommunication.service);
 024            }
 25            else
 26            {
 027                WebSocketCommunication.OnWebSocketServiceAdded += OnWebSocketServiceAdded;
 28            }
 029        }
 30
 31        public void SendMessage(byte[] data)
 32        {
 033            wsService?.SendBinary(data);
 034        }
 35
 36        public void Close()
 37        {
 038            WebSocketCommunication.OnWebSocketServiceAdded -= OnWebSocketServiceAdded;
 39
 040            if (wsService != null)
 41            {
 042                wsService.OnConnectEvent -= OnConnect;
 043                wsService.OnMessageEvent -= OnMessage;
 044                wsService.OnErrorEvent -= OnError;
 045                wsService.OnCloseEvent -= OnClose;
 46            }
 047        }
 48
 49        private void OnWebSocketServiceAdded(DCLWebSocketService service)
 50        {
 051            WebSocketCommunication.OnWebSocketServiceAdded -= OnWebSocketServiceAdded;
 052            wsService = service;
 53
 054            wsService.OnConnectEvent += OnConnect;
 055            wsService.OnMessageEvent += OnMessage;
 056            wsService.OnErrorEvent += OnError;
 057            wsService.OnCloseEvent += OnClose;
 058        }
 59
 60        private void OnClose()
 61        {
 062            OnCloseEvent?.Invoke();
 063        }
 64
 65        private void OnError(string error)
 66        {
 067            OnErrorEvent?.Invoke(error);
 068        }
 69
 70        private void OnMessage(byte[] message)
 71        {
 072            OnMessageEvent?.Invoke(message);
 073        }
 74
 75        private void OnConnect()
 76        {
 077            OnConnectEvent?.Invoke();
 078        }
 79    }
 80}