public void SameInstanceReusedOnSameThreadForOnePerThreadTypes()
        {
            using (var kernel = new StandardKernel())
            {
                ObjectWithOnePerThreadBehavior mock1 = kernel.Get <ObjectWithOnePerThreadBehavior>();
                ObjectWithOnePerThreadBehavior mock2 = kernel.Get <ObjectWithOnePerThreadBehavior>();

                Assert.That(mock1, Is.Not.Null);
                Assert.That(mock2, Is.Not.Null);
                Assert.That(mock1, Is.SameAs(mock2));
            }
        }
        public void NewInstanceCreatedOnDifferentThreadForOnePerThreadTypes()
        {
            using (var kernel = new StandardKernel())
            {
                ObjectWithOnePerThreadBehavior mock1 = kernel.Get <ObjectWithOnePerThreadBehavior>();
                ObjectWithOnePerThreadBehavior mock2 = null;

                Thread thread = new Thread(delegate(object state) { mock2 = kernel.Get <ObjectWithOnePerThreadBehavior>(); });

                thread.Start();
                thread.Join();

                Assert.That(mock1, Is.Not.Null);
                Assert.That(mock2, Is.Not.Null);
                Assert.That(mock1, Is.Not.SameAs(mock2));
            }
        }