< Summary

Class:DCL.Social.Chat.DateSeparatorEntry
Assembly:ChatHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DateSeparatorEntry.cs
Covered lines:10
Uncovered lines:8
Coverable lines:18
Total lines:77
Line coverage:55.5% (10 of 18)
Covered branches:0
Total branches:0
Covered methods:3
Total methods:9
Method coverage:33.3% (3 of 9)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Populate(...)0%110100%
SetFadeout(...)0%6200%
DockContextMenu(...)0%2100%
DockHoverPanel(...)0%2100%
ConfigureMentionLinkDetector(...)0%2100%
GetDateFormat(...)0%440100%
GetDateTimeFromUnixTimestampMilliseconds(...)0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DateSeparatorEntry.cs

#LineLine coverage
 1using System;
 2using System.Globalization;
 3using DCL.Social.Chat;
 4using TMPro;
 5using UnityEngine;
 6
 7namespace DCL.Social.Chat
 8{
 9    /// <summary>
 10    /// Special type of entry to be used as date separator in chat conversations.
 11    /// </summary>
 12    public class DateSeparatorEntry : ChatEntry
 13    {
 14        [SerializeField] internal TextMeshProUGUI title;
 15
 16        private DateTime timestamp;
 17        private ChatEntryModel chatEntryModel;
 18
 19        public override string HoverString =>
 020            GetDateFormat(GetDateTimeFromUnixTimestampMilliseconds(Model.timestamp));
 21        public override event Action<ChatEntry> OnUserNameClicked;
 22        public override event Action<ChatEntry> OnTriggerHover;
 23        public override event Action<ChatEntry, ParcelCoordinates> OnTriggerHoverGoto;
 24        public override event Action OnCancelHover;
 25        public override event Action OnCancelGotoHover;
 26        public override event Action<ChatEntry> OnCopyClicked;
 027        public override ChatEntryModel Model => chatEntryModel;
 28
 29        public override void Populate(ChatEntryModel model)
 30        {
 231            chatEntryModel = model;
 232            title.text = GetDateFormat(GetDateTimeFromUnixTimestampMilliseconds(model.timestamp));
 233        }
 34
 35        public override void SetFadeout(bool enabled)
 36        {
 037            if (enabled) return;
 038            group.alpha = 1;
 039        }
 40
 41        public override void DockContextMenu(RectTransform panel)
 42        {
 043        }
 44
 45        public override void DockHoverPanel(RectTransform panel)
 46        {
 047        }
 48
 49        public override void ConfigureMentionLinkDetector(UserContextMenu userContextMenu)
 50        {
 051        }
 52
 53        private string GetDateFormat(DateTime date)
 54        {
 255            string result = string.Empty;
 56
 257            if (date.Year == DateTime.Now.Year &&
 58                date.Month == DateTime.Now.Month &&
 59                date.Day == DateTime.Now.Day)
 60            {
 161                result = "Today";
 62            }
 63            else
 64            {
 165                result = date.ToString("D", DateTimeFormatInfo.InvariantInfo);
 66            }
 67
 268            return result;
 69        }
 70
 71        private DateTime GetDateTimeFromUnixTimestampMilliseconds(ulong milliseconds)
 72        {
 273            DateTime result = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
 274            return result.AddMilliseconds(milliseconds);
 75        }
 76    }
 77}