public void CheckObjectWithParametersResolves()
        {
            ExampleContainer container = new ExampleContainer();
            container.Register<IRepository, Repository>();
            container.Register<IRepositoryWithParams, RepositoryWithParams>();
            var instance = container.Resolve<IRepositoryWithParams>();

            Assert.That(instance, Is.InstanceOf<IRepositoryWithParams>());
        }
        public void GivenTwoInterfacesAndOneImplementationHasADependencyOnTheOther_InstanceIsCreated()
        {
            var container = new ExampleContainer();

            container.Register <ISimpleTwo, SimpleTwo>();
            container.Register <ISimpleLogger, SimpleLogger>();

            var actualInstance = container.Create <ISimpleTwo>();

            Assert.IsType <SimpleTwo>(actualInstance);
            Assert.IsType <SimpleLogger>((actualInstance as SimpleTwo).CheckLogger);
        }
        public void CheckTransientIsDefault()
        {
            ExampleContainer container = new ExampleContainer();
            container.Register<IRepository, Repository>();
            var instance = container.Resolve<IRepository>();

            Assert.That(container.Resolve<IRepository>(), Is.Not.SameAs(instance));
        }
        public void CheckSingltonIsCreated()
        {
            ExampleContainer container = new ExampleContainer();
            container.Register<IRepository, Repository>(LifestyleType.Singleton);
            var instance = container.Resolve<IRepository>();

            Assert.That(container.Resolve<IRepository>(), Is.SameAs(instance));
        }
        public void CheckResolveObject()
        {
            ExampleContainer container = new ExampleContainer();
            container.Register<IRepository, Repository>();
            var instance = container.Resolve<IRepository>();

            Assert.That(instance, Is.InstanceOf<Repository>());
        }
        public void GivenAnInteraceAndClassThatUsesIt_ContainerReturnsInstance()
        {
            var container = new ExampleContainer();

            container.Register <ISimple, Simple>();

            var actualInstance = container.Create <ISimple>();

            actualInstance.Message = "test";

            Assert.IsType <Simple>(actualInstance);
        }
 public void CheckObjectsRegistered()
 {
     ExampleContainer container = new ExampleContainer();
     container.Register<IRepository, Repository>();
     Assert.That(container.IsTypeRegistered<IRepository>());
 }