< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.FreezableCollection<T>
Assembly: CoreWCF.WebHttp
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.WebHttp/src/CoreWCF/FreezableCollection.cs
Line coverage
43%
Covered lines: 10
Uncovered lines: 13
Coverable lines: 23
Total lines: 77
Line coverage: 43.4%
Branch coverage
50%
Covered branches: 1
Total branches: 2
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
.ctor()100%11100%
.ctor(...)100%110%
Freeze()100%11100%
ClearItems()100%110%
InsertItem(...)100%11100%
RemoveItem(...)100%110%
SetItem(...)100%110%
ThrowIfFrozen()50%2266.66%

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.WebHttp/src/CoreWCF/FreezableCollection.cs

#LineLine coverage
 1// Licensed to the .NET Foundation under one or more agreements.
 2// The .NET Foundation licenses this file to you under the MIT license.
 3
 4using System;
 5using System.Collections.Generic;
 6using System.Collections.ObjectModel;
 7
 8namespace CoreWCF
 9{
 10    internal class FreezableCollection<T> : Collection<T>, ICollection<T>
 11    {
 12        private bool _frozen;
 13
 14        public FreezableCollection()
 27715            : base()
 16        {
 27717        }
 18
 19        public FreezableCollection(IList<T> list)
 020            : base(list)
 21        {
 022        }
 23
 24        public bool IsFrozen
 25        {
 26            get
 27            {
 8328                return _frozen;
 29            }
 30        }
 31
 32        bool ICollection<T>.IsReadOnly
 33        {
 34            get
 35            {
 036                return _frozen;
 37            }
 38        }
 39
 40        public void Freeze()
 41        {
 27742            _frozen = true;
 27743        }
 44
 45        protected override void ClearItems()
 46        {
 047            ThrowIfFrozen();
 048            base.ClearItems();
 049        }
 50
 51        protected override void InsertItem(int index, T item)
 52        {
 39753            ThrowIfFrozen();
 39754            base.InsertItem(index, item);
 39755        }
 56
 57        protected override void RemoveItem(int index)
 58        {
 059            ThrowIfFrozen();
 060            base.RemoveItem(index);
 061        }
 62
 63        protected override void SetItem(int index, T item)
 64        {
 065            ThrowIfFrozen();
 066            base.SetItem(index, item);
 067        }
 68
 69        private void ThrowIfFrozen()
 70        {
 39771            if (_frozen)
 72            {
 073                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.ObjectIsReadO
 74            }
 39775        }
 76    }
 77}