public void InstanceCounter_TestUsage() { Assert.AreEqual(0, TypeCreatedCounter <AClass> .Count); Assert.AreEqual(0, ActiveInstanceCounter <AClass> .GlobalActiveCount); using (var i1 = new AClass(this.Logger)) { Assert.AreEqual(1, TypeCreatedCounter <AClass> .Count); Assert.AreEqual(1, ActiveInstanceCounter <AClass> .GlobalActiveCount); Assert.AreEqual(i1.InstanceId, 0); using (var i2 = new AClass(this.Logger)) using (var i3 = new AClass(this.Logger)) { Assert.AreEqual(1, i2.InstanceId); Assert.AreEqual(3, TypeCreatedCounter <AClass> .Count); Assert.AreEqual(3, ActiveInstanceCounter <AClass> .GlobalActiveCount); using (var tracker = new ActiveInstanceCounter <AClass>(this.Logger)) { Assert.AreEqual(4, ActiveInstanceCounter <AClass> .GlobalActiveCount); Assert.AreEqual(4, TypeCreatedCounter <AClass> .Count); Assert.AreEqual(4, tracker.ActiveCount); } Assert.AreEqual(3, ActiveInstanceCounter <AClass> .GlobalActiveCount); Assert.AreEqual(4, TypeCreatedCounter <AClass> .Count); } Assert.AreEqual(4, TypeCreatedCounter <AClass> .Count); Assert.AreEqual(1, ActiveInstanceCounter <AClass> .GlobalActiveCount); } Assert.AreEqual(4, TypeCreatedCounter <AClass> .Count); Assert.AreEqual(0, ActiveInstanceCounter <AClass> .GlobalActiveCount); var c = new TypeCreatedCounter <AClass>(); Assert.AreEqual(5, TypeCreatedCounter <AClass> .Count); Assert.AreEqual(TypeCreatedCounter <AClass> .Count, c.CreatedCount); }
public AClass(ILogger logger) : base(logger) { this.counter = new ActiveInstanceCounter <AClass>(logger); }