Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public AClass(ILogger logger)
     : base(logger)
 {
     this.counter = new ActiveInstanceCounter <AClass>(logger);
 }