< Summary

Class:PrivateChatHUDView
Assembly:PrivateChatWindowHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatHUDView.cs
Covered lines:1
Uncovered lines:19
Coverable lines:20
Total lines:44
Line coverage:5% (1 of 20)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
PrivateChatHUDView()0%110100%
AddEntry(...)0%2100%
ClearAllEntries()0%12300%
AddSeparatorEntryIfNeeded(...)0%6200%
GetDateTimeFromUnixTimestampMilliseconds(...)0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatHUDView.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using UnityEngine;
 4
 5public class PrivateChatHUDView : ChatHUDView
 6{
 7    [SerializeField] private DateSeparatorEntry separatorEntryPrefab;
 8
 139    private readonly Dictionary<DateTime, DateSeparatorEntry> dateSeparators = new Dictionary<DateTime, DateSeparatorEnt
 10
 11    public override void AddEntry(ChatEntryModel model, bool setScrollPositionToBottom = false)
 12    {
 013        AddSeparatorEntryIfNeeded(model);
 014        base.AddEntry(model, setScrollPositionToBottom);
 015    }
 16
 17    public override void ClearAllEntries()
 18    {
 019        base.ClearAllEntries();
 20
 021        foreach (var separator in dateSeparators.Values)
 022            if (separator)
 023                Destroy(separator.gameObject);
 24
 025        dateSeparators.Clear();
 026    }
 27
 28    private void AddSeparatorEntryIfNeeded(ChatEntryModel chatEntryModel)
 29    {
 030        var entryDateTime = GetDateTimeFromUnixTimestampMilliseconds(chatEntryModel.timestamp).Date;
 031        if (dateSeparators.ContainsKey(entryDateTime)) return;
 032        var dateSeparatorEntry = Instantiate(separatorEntryPrefab, chatEntriesContainer);
 033        dateSeparatorEntry.Populate(chatEntryModel);
 034        dateSeparatorEntry.SetFadeout(IsFadeoutModeEnabled);
 035        dateSeparators.Add(entryDateTime, dateSeparatorEntry);
 036        entries.Add(dateSeparatorEntry);
 037    }
 38
 39    private DateTime GetDateTimeFromUnixTimestampMilliseconds(ulong milliseconds)
 40    {
 041        DateTime result = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
 042        return result.AddMilliseconds(milliseconds);
 43    }
 44}