Example #1
0
        public void Should_be_able_to_load_modules()
        {
            var buildManager = new Mock <IBuildManager>();

            buildManager.SetupGet(bm => bm.ConcreteTypes).Returns(new[] { typeof(DummyModule) });

            var bindingName = new Mock <IBindingNamedWithOrOnSyntax>();
            var bindingWhen = new Mock <IBindingWhenInNamedWithOrOnSyntax>();

            bindingWhen.Setup(b => b.InTransientScope()).Returns(bindingName.Object);
            bindingWhen.Setup(b => b.InSingletonScope()).Returns(bindingName.Object);

            var func = (Func <IContext, object>)Delegate.CreateDelegate(typeof(Func <IContext, object>), typeof(RequestScopeExtensionMethod).GetMethod("GetScope", BindingFlags.NonPublic | BindingFlags.Static));

            bindingWhen.Setup(b => b.InScope(func)).Returns(bindingName.Object).Verifiable();

            var bindingTo = new Mock <IBindingToSyntax>();

            bindingTo.Setup(b => b.To(It.IsAny <Type>())).Returns(bindingWhen.Object);
            bindingTo.Setup(b => b.ToConstant(It.IsAny <object>())).Returns(bindingWhen.Object);

            var kernel = new Mock <IKernel>();

            kernel.Setup(k => k.Bind(It.IsAny <Type>())).Returns(bindingTo.Object);

            kernel.Setup(k => k.Load(It.IsAny <IEnumerable <IModule> >())).Verifiable();

            var bootstrapper = new NinjectBootstrapperTestDouble(kernel.Object, buildManager.Object, new Mock <IBootstrapperTasksRegistry>().Object, new Mock <IPerRequestTasksRegistry>().Object);

            Assert.IsType <NinjectAdapter>(bootstrapper.Adapter);

            kernel.Verify();
        }
        public void Should_be_able_to_load_modules()
        {
            var buildManager = new Mock<IBuildManager>();
            buildManager.SetupGet(bm => bm.ConcreteTypes).Returns(new[] { typeof(DummyModule) });

            var bindingName = new Mock<IBindingNamedWithOrOnSyntax>();
            var bindingWhen = new Mock<IBindingWhenInNamedWithOrOnSyntax>();

            bindingWhen.Setup(b => b.InTransientScope()).Returns(bindingName.Object);
            bindingWhen.Setup(b => b.InSingletonScope()).Returns(bindingName.Object);

            var func = (Func<IContext, object>)Delegate.CreateDelegate(typeof(Func<IContext, object>), typeof(RequestScopeExtensionMethod).GetMethod("GetScope", BindingFlags.NonPublic | BindingFlags.Static));
            bindingWhen.Setup(b => b.InScope(func)).Returns(bindingName.Object).Verifiable();

            var bindingTo = new Mock<IBindingToSyntax>();
            bindingTo.Setup(b => b.To(It.IsAny<Type>())).Returns(bindingWhen.Object);
            bindingTo.Setup(b => b.ToConstant(It.IsAny<object>())).Returns(bindingWhen.Object);

            var kernel = new Mock<IKernel>();
            kernel.Setup(k => k.Bind(It.IsAny<Type>())).Returns(bindingTo.Object);

            kernel.Setup(k => k.Load(It.IsAny<IEnumerable<IModule>>())).Verifiable();

            var bootstrapper = new NinjectBootstrapperTestDouble(kernel.Object, buildManager.Object, new Mock<IBootstrapperTasksRegistry>().Object, new Mock<IPerRequestTasksRegistry>().Object);

            Assert.IsType<NinjectAdapter>(bootstrapper.Adapter);

            kernel.Verify();
        }