< Summary

Class:ChatController
Assembly:ChatController
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/ChatController/ChatController.cs
Covered lines:5
Uncovered lines:27
Coverable lines:32
Total lines:126
Line coverage:15.6% (5 of 32)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Awake()0%110100%
ChatController()0%110100%
AddMessageToChatWindow(...)0%12300%
Send(...)0%2100%
GetEntries()0%110100%
FakePublicMessage()0%2100%
FakePrivateMessage()0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/ChatController/ChatController.cs

#LineLine coverage
 1using DCL.Interface;
 2using System;
 3using System.Collections.Generic;
 4using UnityEngine;
 5
 6public interface IChatController
 7{
 8    event Action<ChatMessage> OnAddMessage;
 9    List<ChatMessage> GetEntries();
 10
 11    void AddMessageToChatWindow(string jsonMessage);
 12    void Send(ChatMessage message);
 13}
 14
 15public class ChatController : MonoBehaviour, IChatController
 16{
 8817    public static ChatController i { get; private set; }
 18
 19    public void Awake()
 20    {
 221        i = this;
 222    }
 23
 224    [NonSerialized] public List<ChatMessage> entries = new List<ChatMessage>();
 25
 26    public event Action<ChatMessage> OnAddMessage;
 27
 28    public void AddMessageToChatWindow(string jsonMessage)
 29    {
 030        ChatMessage message = JsonUtility.FromJson<ChatMessage>(jsonMessage);
 31
 032        if (message == null)
 033            return;
 34
 035        entries.Add(message);
 036        OnAddMessage?.Invoke(message);
 037    }
 38
 039    public void Send(ChatMessage message) => WebInterface.SendChatMessage(message);
 40
 141    public List<ChatMessage> GetEntries() { return new List<ChatMessage>(entries); }
 42
 43    [ContextMenu("Fake Public Message")]
 44    public void FakePublicMessage()
 45    {
 046        UserProfile ownProfile = UserProfile.GetOwnUserProfile();
 47
 048        var model = new UserProfileModel()
 49        {
 50            userId = "test user 1",
 51            name = "test user 1",
 52        };
 53
 054        UserProfileController.i.AddUserProfileToCatalog(model);
 55
 056        var model2 = new UserProfileModel()
 57        {
 58            userId = "test user 2",
 59            name = "test user 2",
 60        };
 61
 062        UserProfileController.i.AddUserProfileToCatalog(model2);
 63
 064        var msg = new ChatMessage()
 65        {
 66            body = "test message",
 67            sender = model.userId,
 68            messageType = ChatMessage.Type.PUBLIC,
 69            timestamp = (ulong) DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()
 70        };
 71
 072        var msg2 = new ChatMessage()
 73        {
 74            body = "test message 2",
 75            sender = ownProfile.userId,
 76            messageType = ChatMessage.Type.PRIVATE,
 77            timestamp = (ulong) DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()
 78        };
 79
 080        AddMessageToChatWindow(JsonUtility.ToJson(msg));
 081        AddMessageToChatWindow(JsonUtility.ToJson(msg2));
 082    }
 83
 84    [ContextMenu("Fake Private Message")]
 85    public void FakePrivateMessage()
 86    {
 087        UserProfile ownProfile = UserProfile.GetOwnUserProfile();
 88
 089        var model = new UserProfileModel()
 90        {
 91            userId = "test user 1",
 92            name = "test user 1",
 93        };
 94
 095        UserProfileController.i.AddUserProfileToCatalog(model);
 96
 097        var model2 = new UserProfileModel()
 98        {
 99            userId = "test user 2",
 100            name = "test user 2",
 101        };
 102
 0103        UserProfileController.i.AddUserProfileToCatalog(model2);
 104
 0105        var msg = new ChatMessage()
 106        {
 107            body = "test message",
 108            sender = model.userId,
 109            recipient = ownProfile.userId,
 110            messageType = ChatMessage.Type.PRIVATE,
 111            timestamp = (ulong) DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()
 112        };
 113
 0114        var msg2 = new ChatMessage()
 115        {
 116            body = "test message 2",
 117            recipient = model2.userId,
 118            sender = ownProfile.userId,
 119            messageType = ChatMessage.Type.PRIVATE,
 120            timestamp = (ulong) DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()
 121        };
 122
 0123        AddMessageToChatWindow(JsonUtility.ToJson(msg));
 0124        AddMessageToChatWindow(JsonUtility.ToJson(msg2));
 0125    }
 126}