public void should_instanciate_and_contain_iobjectbuilder_as_a_singleton()
        {
            var objectBoss = new ObjectBoss();
            objectBoss.Configure(x => x.Add<SimpleObjectType>());

            Assert.IsTrue(objectBoss.ContainsUsing<IObjectBuilder, ObjectBoss>());
            Assert.IsTrue(objectBoss.GetSingletonCount() > 0);
        }
 public void should_be_able_to_add_an_interface_as_a_singleton()
 {
     var objectBoss = new ObjectBoss();
     objectBoss.Configure(x => x.AddUsing<ISimpleInterface, SimpleObjectType>().Singleton());
     var simpleObject1 = objectBoss.GetInstance<ISimpleInterface>();
     var simpleObject2 = objectBoss.GetInstance<ISimpleInterface>();
     Assert.IsTrue(objectBoss.GetSingletonCount() == 2);
     Assert.IsNotNull(simpleObject1);
     Assert.IsNotNull(simpleObject2);
     Assert.IsTrue(simpleObject1.Id == simpleObject2.Id);
 }
 public void should_add_object_as_singleton_and_get_the_same_instance_whenever_it_is_retrieved()
 {
     var objectBoss = new ObjectBoss();
     objectBoss.Configure(x => x.Add<SimpleObjectType>().Singleton());
     var simpleObject1 = objectBoss.GetInstance<SimpleObjectType>();
     var simpleObject2 = objectBoss.GetInstance<SimpleObjectType>();
     Assert.IsTrue(objectBoss.GetSingletonCount() == 2);
     Assert.IsNotNull(simpleObject1);
     Assert.IsNotNull(simpleObject2);
     Assert.IsTrue(simpleObject1.Id == simpleObject2.Id);
 }