예제 #1
0
        public void TestTearDown()
        {
            foreach (var timeMeasurement in Measurements)
            {
                TestContext.Out.WriteLine($"Measure: {timeMeasurement.Key} - '{timeMeasurement.Time:c}'");
            }

            var failed = false;

            if (_dbAccess != null)
            {
                if (_dbAccess.Database.ConnectionController.InstanceCounter != 0)
                {
                    TestContext.Error.WriteLine("Invalid State Detected. Some connections are Still open. Proceed with Cleanup");
                    failed = true;
                }
            }

            if (Equals(TestContext.CurrentContext.Result.Outcome, ResultState.Failure) ||
                Equals(TestContext.CurrentContext.Result.Outcome, ResultState.Error))
            {
                Mgr?.FlushErrorData();
            }
            else
            {
                Mgr?.Clear();
            }

            Mgr      = null;
            DbAccess = null;
            //ThreadConnection.UseTransactionCurrent = false;
            Assert.That(failed, Is.False, () => "Invalid Connection State");

            //dotMemory.Check(mem =>
            //{
            //	Assert.That(mem.GetObjects(e => e.Type.Is<DbAccessLayer>()).ObjectsCount, Is.Zero);
            //	Assert.That(mem.GetObjects(e => e.LeakedOnEventHandler()).ObjectsCount, Is.Zero);
            //	Assert.That(mem.GetObjects(e => e.Interface.Is<IDbConnection>()).ObjectsCount, Is.Zero);
            //	Assert.That(mem.GetObjects(e => e.Interface.Is<IDbCommand>()).ObjectsCount, Is.Zero);
            //});
        }