< Summary

Class: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:7
Coverable lines:17
Total lines:69
Line coverage:58.8% (10 of 17)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Populate(...)0%110100%
SetFadeout(...)0%6200%
DockContextMenu(...)0%2100%
DockHoverPanel(...)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.Chat.HUD;
 4using TMPro;
 5using UnityEngine;
 6
 7/// <summary>
 8/// Special type of entry to be used as date separator in chat conversations.
 9/// </summary>
 10public class DateSeparatorEntry : ChatEntry
 11{
 12    [SerializeField] internal TextMeshProUGUI title;
 13
 14    private DateTime timestamp;
 15    private ChatEntryModel chatEntryModel;
 16
 17    public override string DateString =>
 018        GetDateFormat(GetDateTimeFromUnixTimestampMilliseconds(Model.timestamp));
 19    public override event Action<ChatEntry> OnUserNameClicked;
 20    public override event Action<ChatEntry> OnTriggerHover;
 21    public override event Action<ChatEntry, ParcelCoordinates> OnTriggerHoverGoto;
 22    public override event Action OnCancelHover;
 23    public override event Action OnCancelGotoHover;
 024    public override ChatEntryModel Model => chatEntryModel;
 25
 26    public override void Populate(ChatEntryModel model)
 27    {
 228        chatEntryModel = model;
 229        title.text = GetDateFormat(GetDateTimeFromUnixTimestampMilliseconds(model.timestamp));
 230    }
 31
 32    public override void SetFadeout(bool enabled)
 33    {
 034        if (enabled) return;
 035        group.alpha = 1;
 036    }
 37
 38    public override void DockContextMenu(RectTransform panel)
 39    {
 040    }
 41
 42    public override void DockHoverPanel(RectTransform panel)
 43    {
 044    }
 45
 46    private string GetDateFormat(DateTime date)
 47    {
 248        string result = string.Empty;
 49
 250        if (date.Year == DateTime.Now.Year &&
 51            date.Month == DateTime.Now.Month &&
 52            date.Day == DateTime.Now.Day)
 53        {
 154            result = "Today";
 55        }
 56        else
 57        {
 158            result = date.ToString("D", DateTimeFormatInfo.InvariantInfo);
 59        }
 60
 261        return result;
 62    }
 63
 64    private DateTime GetDateTimeFromUnixTimestampMilliseconds(ulong milliseconds)
 65    {
 266        DateTime result = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
 267        return result.AddMilliseconds(milliseconds);
 68    }
 69}