public void CannotResolveAbstractClass()
        {
            var container = new InjectContainer();
            container.Register<IInterface1, AbstractClass1>();

            Assert.That(() => container.Resolve<AbstractClass1>(), Throws.InstanceOf<ResolutionFailedException>());
        }
        public void CannotResolveInterface()
        {
            var container = new InjectContainer();
            container.Register<IInterface1, IInherited1>();

            Assert.That(() => container.Resolve<IInterface1>(), Throws.InstanceOf<ResolutionFailedException>());
        }
예제 #3
0
        static void Main()
        {
            var container = new InjectContainer();

            container.Register <IMoleculeService, MoleculeService>();
            container.Register <IMoleculeRepository, MoleculeRepository>();
            container.Register <ILogService, LogService>();
            container.Register <ILogRepository, LogRepository>();
            container.Register <IAtomService, AtomService>();
            container.Register <ILinkService, LinkService>();
            container.Register <IReplacementReactionService, ReplacementReactionService>();
            container.Register <IAddictionReactionService, AddictionReactionService>();

            var moleculeService = container.Resolve <IMoleculeService>();
            var logService      = container.Resolve <ILogService>();
            var linkService     = container.Resolve <ILinkService>();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MoleculeSearchForm(moleculeService, logService, linkService));
        }
        public void CanRegisterTypeAsSingleton()
        {
            var container = new InjectContainer();
            container.Register<IInterface1, Class1>();

            var instance1 = container.Resolve<IInterface1>();
            var instance2 = container.Resolve<IInterface1>();

            Assert.AreSame(instance1, instance2);
        }
        public void ResolvesInstanceAsSingleton()
        {
            var container = new InjectContainer();

            var instance = new Class1();

            container.Register<IInterface1>(instance);

            var instance1 = container.Resolve<IInterface1>();
            var instance2 = container.Resolve<IInterface1>();

            Assert.AreSame(instance, instance1);
            Assert.AreSame(instance, instance2);
        }
        public void ResolvesConstructorParameters()
        {
            var container = new InjectContainer();
            container.Register<IInterfaceWithProperty, Class1WithProperty>();
            container.Register<IInterface2, Class2>();

            var instance = container.Resolve<IInterfaceWithProperty>();

            Assert.IsNotNull(instance);
            Assert.IsNotNull(instance.Arg);
        }
        public void ResolveCircularReferenceThrows()
        {
            var container = new InjectContainer();
            container.Register<IInterface1, CircularReference1>();
            container.Register<IInterface2, CircularReference2>();

            Assert.That(() => container.Resolve<IInterface1>(), Throws.InstanceOf<ResolutionFailedException>());
        }
        public void RegisterTypeWithNullTypeThrows()
        {
            var container = new InjectContainer();

            Assert.That(() => container.Register(typeof(object), null), Throws.ArgumentNullException);
        }
        public void RegisterSameTypeThrows()
        {
            var container = new InjectContainer();
            container.Register<IInterface1, Class1>();

            Assert.That(() => container.Register<IInterface1, Class1>(), Throws.ArgumentException);
        }
예제 #10
0
        public void RegisterInstanceWithNullInstanceThrows()
        {
            var container = new InjectContainer();

            Assert.That(() => container.Register<object>(null), Throws.ArgumentNullException);
        }
예제 #11
0
        public void RegisterInstanceNullThrows()
        {
            var container = new InjectContainer();

            Assert.That(() => container.Register(null, new object()), Throws.ArgumentNullException);
        }
예제 #12
0
        public void RegisteredTypeDoesntInheritThrows()
        {
            var container = new InjectContainer();

            Assert.That(() => container.Register(typeof(IInterface1), typeof(Class2)), Throws.ArgumentException);
        }